This is an automated email from the ASF dual-hosted git repository. reschke pushed a commit to branch SLING-12400 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resourceresolver.git
commit a9acc954026e6d07e514d6a6c027e04001f1afc6 Author: Julian Reschke <[email protected]> AuthorDate: Thu Sep 5 12:04:21 2024 +0100 SLING-12400: ResourceResolver: add test coverage for aliases on jcr:content nodes --- .../impl/mapping/MapEntriesTest.java | 49 ++++++++++++++++------ 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java b/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java index 4335efe..9f0ee20 100644 --- a/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java +++ b/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java @@ -121,7 +121,7 @@ public class MapEntriesTest extends AbstractMappingMapEntriesTest { prevPageSize = Integer.getInteger("sling.vanityPath.pageSize", 2000); System.setProperty("sling.vanityPath.pageSize", Integer.toString(pageSize)); - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); final List<VanityPathConfig> configs = new ArrayList<>(); configs.add(new VanityPathConfig("/libs/", false)); @@ -175,10 +175,8 @@ public class MapEntriesTest extends AbstractMappingMapEntriesTest { mapEntries.dispose(); } - - @Test - public void test_simple_alias_support() { - prepareMapEntriesForAlias("alias"); + private void internal_test_simple_alias_support(boolean onJcrContent) { + prepareMapEntriesForAlias(onJcrContent, "alias"); mapEntries.doInit(); Map<String, Collection<String>> aliasMap = mapEntries.getAliasMap("/parent"); assertNotNull(aliasMap); @@ -187,8 +185,17 @@ public class MapEntriesTest extends AbstractMappingMapEntriesTest { } @Test - public void test_simple_multi_alias_support() { - prepareMapEntriesForAlias("foo", "bar"); + public void test_simple_alias_support() { + internal_test_simple_alias_support(false); + } + + @Test + public void test_simple_alias_support_on_jcr_content() { + internal_test_simple_alias_support(true); + } + + private void internal_test_simple_multi_alias_support(boolean onJcrContent) { + prepareMapEntriesForAlias(onJcrContent, "foo", "bar"); mapEntries.doInit(); Map<String, Collection<String>> aliasMap = mapEntries.getAliasMap("/parent"); assertNotNull(aliasMap); @@ -196,10 +203,20 @@ public class MapEntriesTest extends AbstractMappingMapEntriesTest { assertEquals(List.of("foo", "bar"), aliasMap.get("child")); } + @Test + public void test_simple_multi_alias_support() { + internal_test_simple_multi_alias_support(false); + } + + @Test + public void test_simple_multi_alias_support_on_jcr_content() { + internal_test_simple_multi_alias_support(true); + } + @Test public void test_simple_multi_alias_support_with_blank_and_invalid() { // invalid aliases filtered out - prepareMapEntriesForAlias("", "foo", ".", "bar", "x/y", "qux", " "); + prepareMapEntriesForAlias(false, "", "foo", ".", "bar", "x/y", "qux", " "); mapEntries.doInit(); Map<String, Collection<String>> aliasMap = mapEntries.getAliasMap("/parent"); assertNotNull(aliasMap); @@ -210,29 +227,37 @@ public class MapEntriesTest extends AbstractMappingMapEntriesTest { @Test public void test_alias_support_invalid() { for (String invalidAlias : List.of(".", "..", "foo/bar", "# foo", "")) { - prepareMapEntriesForAlias(invalidAlias); + prepareMapEntriesForAlias(false, invalidAlias); mapEntries.doInit(); Map<String, Collection<String>> aliasMap = mapEntries.getAliasMap("/parent"); assertEquals(Collections.emptyMap(), aliasMap); } } - private void prepareMapEntriesForAlias(String... alias) { + private void prepareMapEntriesForAlias(boolean onJcrContent, String... alias) { Resource parent = mock(Resource.class); when(parent.getPath()).thenReturn("/parent"); final Resource result = mock(Resource.class); + final Resource content = mock(Resource.class); + final Resource aliasResource = onJcrContent ? content : result; + when(result.getParent()).thenReturn(parent); when(result.getPath()).thenReturn("/parent/child"); when(result.getName()).thenReturn("child"); - when(result.getValueMap()).thenReturn(buildValueMap(ResourceResolverImpl.PROP_ALIAS, alias)); + + when(content.getParent()).thenReturn(result); + when(content.getPath()).thenReturn("/parent/child/jcr:content"); + when(content.getName()).thenReturn("jcr:content"); + + when(aliasResource.getValueMap()).thenReturn(buildValueMap(ResourceResolverImpl.PROP_ALIAS, alias)); when(resourceResolver.findResources(anyString(), eq("JCR-SQL2"))).thenAnswer(new Answer<Iterator<Resource>>() { @Override public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable { if (invocation.getArguments()[0].toString().contains(ResourceResolverImpl.PROP_ALIAS)) { - return Collections.singleton(result).iterator(); + return Collections.singleton(aliasResource).iterator(); } else { return Collections.<Resource> emptySet().iterator(); }
