Class SlingContextImpl
- java.lang.Object
-
- org.apache.sling.testing.mock.osgi.context.OsgiContextImpl
-
- org.apache.sling.testing.mock.sling.context.SlingContextImpl
-
@ConsumerType public class SlingContextImpl extends org.apache.sling.testing.mock.osgi.context.OsgiContextImpl
Defines Sling context objects with lazy initialization. Should not be used directly but via the SlingContext JUnit rule or extension.
-
-
Field Summary
Fields Modifier and Type Field Description protected ContentBuilder
contentBuilder
protected ContentLoader
contentLoader
protected ContentLoader
contentLoaderAutoCommit
protected MockSlingHttpServletRequest
request
protected org.apache.sling.resourcebuilder.api.ResourceBuilder
resourceBuilder
protected org.apache.sling.api.resource.ResourceResolver
resourceResolver
protected org.apache.sling.api.resource.ResourceResolverFactory
resourceResolverFactory
protected ResourceResolverType
resourceResolverType
protected MockSlingHttpServletResponse
response
protected org.apache.sling.api.scripting.SlingScriptHelper
slingScriptHelper
protected UniqueRoot
uniqueRoot
-
Constructor Summary
Constructors Constructor Description SlingContextImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addModelsForClasses(@NotNull Class @NotNull ... classes)
Search classpath for given class names to scan for and register all classes with @Model annotation.void
addModelsForClasses(@NotNull String @NotNull ... classNames)
Search classpath for given class names to scan for and register all classes with @Model annotation.void
addModelsForPackage(@NotNull String packageName)
Search classpath for given java package names (and sub packages) to scan for and register all classes with @Model annotation.void
addModelsForPackage(@NotNull String @NotNull ... packageNames)
Search classpath for given java package names (and sub packages) to scan for and register all classes with @Model annotation.@NotNull org.apache.sling.resourcebuilder.api.ResourceBuilder
build()
Creates aResourceBuilder
object for easily creating test content.@NotNull ContentBuilder
create()
Creates aContentBuilder
object for easily creating test content.@Nullable org.apache.sling.api.resource.Resource
currentResource()
@Nullable org.apache.sling.api.resource.Resource
currentResource(@Nullable String resourcePath)
Set current resource in request.@Nullable org.apache.sling.api.resource.Resource
currentResource(@Nullable org.apache.sling.api.resource.Resource resource)
Set current resource in request.@NotNull ContentLoader
load()
@NotNull ContentLoader
load(boolean autoCommit)
protected @NotNull org.apache.sling.api.resource.ResourceResolverFactory
newResourceResolverFactory()
Initialize mocked resource resolver factory.<T1,T2>
voidregisterAdapter(@NotNull Class<T1> adaptableClass, @NotNull Class<T2> adapterClass, @NotNull Function<T1,T2> adaptHandler)
Create a Sling AdapterFactory on the fly which can adapt fromadaptableClass
toadapterClass
and delegates the adapter mapping to the givenadaptHandler
function.<T1,T2>
voidregisterAdapter(@NotNull Class<T1> adaptableClass, @NotNull Class<T2> adapterClass, T2 adapter)
Create a Sling AdapterFactory on the fly which can adapt fromadaptableClass
toadapterClass
and just returns the given value as result.protected void
registerDefaultServices()
Default services that should be available for every unit test@NotNull MockSlingHttpServletRequest
request()
@NotNull MockRequestPathInfo
requestPathInfo()
protected @Nullable Object
resolveSlingBindingProperty(@NotNull String property)
Deprecated.protected @Nullable Object
resolveSlingBindingProperty(@NotNull String property, @NotNull org.apache.sling.api.SlingHttpServletRequest request)
Dynamically resolve property request for current requestSlingBindings
.@NotNull org.apache.sling.api.resource.ResourceResolver
resourceResolver()
Returns the singleton resource resolver bound to this context.@NotNull ResourceResolverType
resourceResolverType()
@NotNull MockSlingHttpServletResponse
response()
void
runMode(@NotNull String @NotNull ... runModes)
Set current run mode(s).protected void
setRegisterSlingModelsFromClassPath(boolean registerSlingModelsFromClassPath)
protected void
setResourceResolverFactoryActivatorProps(@Nullable Map<String,Object> props)
protected void
setResourceResolverType(@Nullable ResourceResolverType resourceResolverType)
protected void
setUp()
Setup actions before test method execution@NotNull org.apache.sling.api.scripting.SlingScriptHelper
slingScriptHelper()
protected void
tearDown()
Teardown actions after test method execution@NotNull UniqueRoot
uniqueRoot()
Create unique root paths for unit tests (and clean them up after the test run automatically).-
Methods inherited from class org.apache.sling.testing.mock.osgi.context.OsgiContextImpl
bundleContext, componentContext, getService, getServices, registerInjectActivateService, registerInjectActivateService, registerInjectActivateService, registerService, registerService, registerService, registerService
-
-
-
-
Field Detail
-
resourceResolverFactory
protected org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactory
-
resourceResolverType
protected ResourceResolverType resourceResolverType
-
resourceResolver
protected org.apache.sling.api.resource.ResourceResolver resourceResolver
-
request
protected MockSlingHttpServletRequest request
-
response
protected MockSlingHttpServletResponse response
-
slingScriptHelper
protected org.apache.sling.api.scripting.SlingScriptHelper slingScriptHelper
-
contentLoader
protected ContentLoader contentLoader
-
contentLoaderAutoCommit
protected ContentLoader contentLoaderAutoCommit
-
contentBuilder
protected ContentBuilder contentBuilder
-
resourceBuilder
protected org.apache.sling.resourcebuilder.api.ResourceBuilder resourceBuilder
-
uniqueRoot
protected UniqueRoot uniqueRoot
-
-
Method Detail
-
setResourceResolverType
protected void setResourceResolverType(@Nullable @Nullable ResourceResolverType resourceResolverType)
- Parameters:
resourceResolverType
- Resource resolver type
-
setResourceResolverFactoryActivatorProps
protected void setResourceResolverFactoryActivatorProps(@Nullable @Nullable Map<String,Object> props)
-
setRegisterSlingModelsFromClassPath
protected void setRegisterSlingModelsFromClassPath(boolean registerSlingModelsFromClassPath)
-
setUp
protected void setUp()
Setup actions before test method execution- Overrides:
setUp
in classorg.apache.sling.testing.mock.osgi.context.OsgiContextImpl
-
newResourceResolverFactory
@NotNull protected @NotNull org.apache.sling.api.resource.ResourceResolverFactory newResourceResolverFactory()
Initialize mocked resource resolver factory.- Returns:
- Resource resolver factory
-
registerDefaultServices
protected void registerDefaultServices()
Default services that should be available for every unit test
-
tearDown
protected void tearDown()
Teardown actions after test method execution- Overrides:
tearDown
in classorg.apache.sling.testing.mock.osgi.context.OsgiContextImpl
-
resourceResolverType
@NotNull public final @NotNull ResourceResolverType resourceResolverType()
- Returns:
- Resource resolver type
-
resourceResolver
@NotNull public final @NotNull org.apache.sling.api.resource.ResourceResolver resourceResolver()
Returns the singleton resource resolver bound to this context. It is automatically closed after the test.- Returns:
- Resource resolver
-
request
@NotNull public final @NotNull MockSlingHttpServletRequest request()
- Returns:
- Sling request
-
resolveSlingBindingProperty
@Nullable protected @Nullable Object resolveSlingBindingProperty(@NotNull @NotNull String property, @NotNull @NotNull org.apache.sling.api.SlingHttpServletRequest request)
Dynamically resolve property request for current requestSlingBindings
.- Parameters:
property
- Property keyrequest
- Context request- Returns:
- Resolved object or null if no result found
-
resolveSlingBindingProperty
@Deprecated @Nullable protected @Nullable Object resolveSlingBindingProperty(@NotNull @NotNull String property)
Deprecated.Dynamically resolve property request for current requestSlingBindings
.- Parameters:
property
- Property key- Returns:
- Resolved object or null if no result found
-
requestPathInfo
@NotNull public final @NotNull MockRequestPathInfo requestPathInfo()
- Returns:
- Request path info
-
response
@NotNull public final @NotNull MockSlingHttpServletResponse response()
- Returns:
- Sling response
-
slingScriptHelper
@NotNull public final @NotNull org.apache.sling.api.scripting.SlingScriptHelper slingScriptHelper()
- Returns:
- Sling script helper
-
load
@NotNull public @NotNull ContentLoader load()
- Returns:
- Content loader
-
load
@NotNull public @NotNull ContentLoader load(boolean autoCommit)
- Parameters:
autoCommit
- Automatically commit changes after loading content (default: true)- Returns:
- Content loader
-
create
@NotNull public @NotNull ContentBuilder create()
Creates aContentBuilder
object for easily creating test content. This API was part of Sling Mocks since version 1.x. You can use alternatively thebuild()
method and use theResourceBuilder
API.- Returns:
- Content builder for building test content
-
build
@NotNull public @NotNull org.apache.sling.resourcebuilder.api.ResourceBuilder build()
Creates aResourceBuilder
object for easily creating test content. This is a separate API which can be used inside sling mocks or in a running instance. You can use alternatively thecreate()
method to use theContentBuilder
API.- Returns:
- Resource builder for building test content.
-
currentResource
@Nullable public final @Nullable org.apache.sling.api.resource.Resource currentResource()
- Returns:
- Current resource
-
currentResource
@Nullable public final @Nullable org.apache.sling.api.resource.Resource currentResource(@Nullable @Nullable String resourcePath)
Set current resource in request.- Parameters:
resourcePath
- Resource path- Returns:
- Current resource
-
currentResource
@Nullable public @Nullable org.apache.sling.api.resource.Resource currentResource(@Nullable @Nullable org.apache.sling.api.resource.Resource resource)
Set current resource in request.- Parameters:
resource
- Resource- Returns:
- Current resource
-
addModelsForPackage
public final void addModelsForPackage(@NotNull @NotNull String packageName)
Search classpath for given java package names (and sub packages) to scan for and register all classes with @Model annotation.- Parameters:
packageName
- Java package name
-
addModelsForPackage
public final void addModelsForPackage(@NotNull @NotNull String @NotNull ... packageNames)
Search classpath for given java package names (and sub packages) to scan for and register all classes with @Model annotation.- Parameters:
packageNames
- Java package names
-
addModelsForClasses
public final void addModelsForClasses(@NotNull @NotNull String @NotNull ... classNames)
Search classpath for given class names to scan for and register all classes with @Model annotation.- Parameters:
classNames
- Java class names
-
addModelsForClasses
public final void addModelsForClasses(@NotNull @NotNull Class @NotNull ... classes)
Search classpath for given class names to scan for and register all classes with @Model annotation.- Parameters:
classes
- Java classes
-
runMode
public final void runMode(@NotNull @NotNull String @NotNull ... runModes)
Set current run mode(s).- Parameters:
runModes
- Run mode(s).
-
uniqueRoot
@NotNull public @NotNull UniqueRoot uniqueRoot()
Create unique root paths for unit tests (and clean them up after the test run automatically).- Returns:
- Unique root path helper
-
registerAdapter
public final <T1,T2> void registerAdapter(@NotNull @NotNull Class<T1> adaptableClass, @NotNull @NotNull Class<T2> adapterClass, @NotNull T2 adapter)
Create a Sling AdapterFactory on the fly which can adapt fromadaptableClass
toadapterClass
and just returns the given value as result.- Type Parameters:
T1
- Adaptable typeT2
- Adapter type- Parameters:
adaptableClass
- Class to adapt fromadapterClass
- Class to adapt toadapter
- Object which is always returned for this adaption.
-
registerAdapter
public final <T1,T2> void registerAdapter(@NotNull @NotNull Class<T1> adaptableClass, @NotNull @NotNull Class<T2> adapterClass, @NotNull @NotNull Function<T1,T2> adaptHandler)
Create a Sling AdapterFactory on the fly which can adapt fromadaptableClass
toadapterClass
and delegates the adapter mapping to the givenadaptHandler
function.- Type Parameters:
T1
- Adaptable typeT2
- Adapter type- Parameters:
adaptableClass
- Class to adapt fromadapterClass
- Class to adapt toadaptHandler
- Function to handle the adaption
-
-