[
https://issues.apache.org/jira/browse/SLING-11823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17713585#comment-17713585
]
Stefan Seifert commented on SLING-11823:
----------------------------------------
registerAdapter is a convenience method which currently registers adapters with
highest-possible ranking, see
https://github.com/apache/sling-org-apache-sling-testing-sling-mock/blob/acb57ff81631e7a7f9ef9e9bd0b5332b62e06c91/core/src/main/java/org/apache/sling/testing/mock/sling/context/SlingContextImpl.java#L552-L554
usually this is what you want if you register a custom adapter factory for a
single unit test. if you need more control, you can register the adapter
factory manually with whatever service ranking desired.
that it's not working in your example has probably a different reason: if the
class you call adapTo() on directly implements the adaption, the adapter
manager and adapter factories are never called.
> Sling Mocks: Allow specifying service ranking (or additional properties) when
> calling registerAdapter()
> -------------------------------------------------------------------------------------------------------
>
> Key: SLING-11823
> URL: https://issues.apache.org/jira/browse/SLING-11823
> Project: Sling
> Issue Type: Improvement
> Components: Testing
> Affects Versions: Testing Sling Mock 3.4.4
> Reporter: Henry Kuijpers
> Priority: Major
>
> {code:java}
> final Session mockedSession = mock(Session.class);
> doThrow(new
> RepositoryException("Failure")).when(mockedSession).move("/content/test",
> "/content/test2");
> context.registerAdapter(ResourceResolver.class, Session.class, mockedSession);
> // Call implementation that uses the ResourceResolver and adapts it to
> Session to call move
> underTest.doSomething();
> {code}
> The consequence of this is that an adapterfactory is registered etc, however,
> it will not be called, since it has a lower service ranking than existing
> adapters (in case of JCR/OAK ResourceResolverType).
> It would be nice to be able to specify additional properties, or at least be
> able to specify the service ranking, so that one of those adapters could be
> forced to be the first in the list.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)