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
FieldsModifier and TypeFieldDescriptionprotected ContentBuilder
Content builderprotected ContentLoader
Content loaderprotected ContentLoader
Content loader with auto commit after loading contentprotected MockSlingHttpServletRequest
Sling requestprotected org.apache.sling.resourcebuilder.api.ResourceBuilder
Resource builderprotected org.apache.sling.api.resource.ResourceResolver
Resource resolverprotected org.apache.sling.api.resource.ResourceResolverFactory
Resource resolver factoryprotected ResourceResolverType
Resource resolver typeprotected MockSlingHttpServletResponse
Sling responseprotected org.apache.sling.api.scripting.SlingScriptHelper
Sling script helperprotected UniqueRoot
Unique root helperFields inherited from class org.apache.sling.testing.mock.osgi.context.OsgiContextImpl
componentContext
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal void
addModelsForClasses
(@NotNull Class @NotNull ... classes) Search classpath for given class names to scan for and register all classes with @Model annotation.final void
addModelsForClasses
(@NotNull String @NotNull ... classNames) Search classpath for given class names to scan for and register all classes with @Model annotation.final 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.final 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.final @Nullable org.apache.sling.api.resource.Resource
final @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
Initialize mocked resource resolver factory.final <T1,
T2> void registerAdapter
(@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.final <T1,
T2> void registerAdapter
(@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
Default services that should be available for every unit testfinal @NotNull MockSlingHttpServletRequest
request()
final @NotNull MockRequestPathInfo
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
.final @NotNull org.apache.sling.api.resource.ResourceResolver
Returns the singleton resource resolver bound to this context.final @NotNull ResourceResolverType
final @NotNull MockSlingHttpServletResponse
response()
final void
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 executionfinal @NotNull org.apache.sling.api.scripting.SlingScriptHelper
protected void
tearDown()
Teardown actions after test method execution@NotNull 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, registerInjectActivateService, registerInjectActivateService, registerInjectActivateService, registerService, registerService, registerService, registerService
-
Field Details
-
resourceResolverFactory
protected org.apache.sling.api.resource.ResourceResolverFactory resourceResolverFactoryResource resolver factory -
resourceResolverType
Resource resolver type -
resourceResolver
protected org.apache.sling.api.resource.ResourceResolver resourceResolverResource resolver -
request
Sling request -
response
Sling response -
slingScriptHelper
protected org.apache.sling.api.scripting.SlingScriptHelper slingScriptHelperSling script helper -
contentLoader
Content loader -
contentLoaderAutoCommit
Content loader with auto commit after loading content -
contentBuilder
Content builder -
resourceBuilder
protected org.apache.sling.resourcebuilder.api.ResourceBuilder resourceBuilderResource builder -
uniqueRoot
Unique root helper
-
-
Constructor Details
-
SlingContextImpl
public SlingContextImpl()
-
-
Method Details
-
setResourceResolverType
protected void setResourceResolverType(@Nullable @Nullable ResourceResolverType resourceResolverType) - Parameters:
resourceResolverType
- Resource resolver type
-
setResourceResolverFactoryActivatorProps
protected void setResourceResolverFactoryActivatorProps(@Nullable @Nullable Map<String, Object> props) - Parameters:
props
- Resolver resolver factory activator properties
-
setRegisterSlingModelsFromClassPath
protected void setRegisterSlingModelsFromClassPath(boolean registerSlingModelsFromClassPath) - Parameters:
registerSlingModelsFromClassPath
- Register sling models from classpath
-
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
- 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
- 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
- Returns:
- Request path info
-
response
- Returns:
- Sling response
-
slingScriptHelper
@NotNull public final @NotNull org.apache.sling.api.scripting.SlingScriptHelper slingScriptHelper()- Returns:
- Sling script helper
-
load
- Returns:
- Content loader
-
load
- Parameters:
autoCommit
- Automatically commit changes after loading content (default: true)- Returns:
- Content loader
-
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
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
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
Search classpath for given class names to scan for and register all classes with @Model annotation.- Parameters:
classNames
- Java class names
-
addModelsForClasses
Search classpath for given class names to scan for and register all classes with @Model annotation.- Parameters:
classes
- Java classes
-
runMode
Set current run mode(s).- Parameters:
runModes
- Run mode(s).
-
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
-
resolveSlingBindingProperty(String, SlingHttpServletRequest)