Author: asanso
Date: Tue Jul  1 16:31:06 2014
New Revision: 1607132

URL: http://svn.apache.org/r1607132
Log:
SLING-3712 - Increase code coverage for MapEntries

Modified:
    
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java

Modified: 
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java?rev=1607132&r1=1607131&r2=1607132&view=diff
==============================================================================
--- 
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java
 (original)
+++ 
sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java
 Tue Jul  1 16:31:06 2014
@@ -356,9 +356,9 @@ public class MapEntriesTest {
         method.invoke(mapEntries, "/justVanityPath");
 
         entries = mapEntries.getResolveMaps();
-
         assertEquals(2, entries.size());
         
+        //bad vanity
         Resource badVanityPath = mock(Resource.class, "badVanityPath");
         
when(resourceResolver.getResource("/badVanityPath")).thenReturn(badVanityPath);
         when(badVanityPath.getPath()).thenReturn("/badVanityPath");
@@ -373,6 +373,7 @@ public class MapEntriesTest {
         vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(1, vanityTargets.size());
         
+        //vanity under jcr:content
         Resource vanityPathOnJcrContentParent = mock(Resource.class, 
"vanityPathOnJcrContentParent");
         
when(vanityPathOnJcrContentParent.getPath()).thenReturn("/vanityPathOnJcrContent");
         
when(vanityPathOnJcrContentParent.getName()).thenReturn("vanityPathOnJcrContent");
@@ -423,18 +424,122 @@ public class MapEntriesTest {
         method.invoke(mapEntries, "/justVanityPath");
  
         assertEquals(2, resolveMapsMap.size());
-        
+        assertEquals(1, vanityTargets.size());
         assertNotNull(resolveMapsMap.get("/target/justVanityPath"));
         assertNull(resolveMapsMap.get("/target/justVanityPathUpdated"));
         assertEquals(1, vanityTargets.get("/justVanityPath").size());
         assertEquals("/target/justVanityPath", 
vanityTargets.get("/justVanityPath").get(0));
         
+        //update vanity path
         
when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath",
 "/target/justVanityPathUpdated"));
         method1.invoke(mapEntries, "/justVanityPath");
                
+        assertEquals(2, resolveMapsMap.size());
+        assertEquals(1, vanityTargets.size());
         assertNull(resolveMapsMap.get("/target/justVanityPath"));
         assertNotNull(resolveMapsMap.get("/target/justVanityPathUpdated"));
         assertEquals(1, vanityTargets.get("/justVanityPath").size());
         assertEquals("/target/justVanityPathUpdated", 
vanityTargets.get("/justVanityPath").get(0));
+        
+        //vanity under jcr:content
+        Resource vanityPathOnJcrContentParent = mock(Resource.class, 
"vanityPathOnJcrContentParent");
+        
when(vanityPathOnJcrContentParent.getPath()).thenReturn("/vanityPathOnJcrContent");
+        
when(vanityPathOnJcrContentParent.getName()).thenReturn("vanityPathOnJcrContent");
+
+        Resource vanityPathOnJcrContent = mock(Resource.class, 
"vanityPathOnJcrContent");
+        
when(resourceResolver.getResource("/vanityPathOnJcrContent/jcr:content")).thenReturn(vanityPathOnJcrContent);
+        
when(vanityPathOnJcrContent.getPath()).thenReturn("/vanityPathOnJcrContent/jcr:content");
+        when(vanityPathOnJcrContent.getName()).thenReturn("jcr:content");
+        
when(vanityPathOnJcrContent.getParent()).thenReturn(vanityPathOnJcrContentParent);
+        
when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath",
 "/target/vanityPathOnJcrContent"));
+        
+        method.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
+        
+        assertEquals(3, resolveMapsMap.size());
+        assertEquals(2, vanityTargets.size());
+        assertNotNull(resolveMapsMap.get("/target/vanityPathOnJcrContent"));
+        
assertNull(resolveMapsMap.get("/target/vanityPathOnJcrContentUpdated"));
+        assertEquals(1, vanityTargets.get("/vanityPathOnJcrContent").size());
+        assertEquals("/target/vanityPathOnJcrContent", 
vanityTargets.get("/vanityPathOnJcrContent").get(0));
+        
+        //update vanity path
+        
when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath",
 "/target/vanityPathOnJcrContentUpdated"));     
+        method1.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
+        
+        assertEquals(3, resolveMapsMap.size());
+        assertEquals(2, vanityTargets.size());
+        assertNull(resolveMapsMap.get("/target/vanityPathOnJcrContent"));
+        
assertNotNull(resolveMapsMap.get("/target/vanityPathOnJcrContentUpdated"));
+        assertEquals(1, vanityTargets.get("/vanityPathOnJcrContent").size());
+        assertEquals("/target/vanityPathOnJcrContentUpdated", 
vanityTargets.get("/vanityPathOnJcrContent").get(0));
     }
+    
+    @Test
+    public void test_doRemoveVanity() throws Exception {
+        Field field0 = MapEntries.class.getDeclaredField("resolveMapsMap");
+        field0.setAccessible(true);   
+        Map<String, List<MapEntry>> resolveMapsMap = (Map<String, 
List<MapEntry>>) field0.get(mapEntries);
+        assertEquals(1, resolveMapsMap.size());
+        
+        Field field = MapEntries.class.getDeclaredField("vanityTargets");
+        field.setAccessible(true);
+        Map<String, List<String>> vanityTargets = (Map<String, List<String>>) 
field.get(mapEntries);
+        assertEquals(0, vanityTargets.size());
+        
+        Method method = MapEntries.class.getDeclaredMethod("doAddVanity", 
String.class);
+        method.setAccessible(true);
+        
+        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveVanity", 
String.class);
+        method1.setAccessible(true);
+        
+        Resource justVanityPath = mock(Resource.class, "justVanityPath");
+        
when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");          
       
+        when(justVanityPath.getName()).thenReturn("justVanityPath");
+        
when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath",
 "/target/justVanityPath"));
+        
+        method.invoke(mapEntries, "/justVanityPath");
+        
+        assertEquals(2, resolveMapsMap.size());
+        assertEquals(1, vanityTargets.size());
+        assertNotNull(resolveMapsMap.get("/target/justVanityPath"));
+        assertEquals(1, vanityTargets.get("/justVanityPath").size());
+        assertEquals("/target/justVanityPath", 
vanityTargets.get("/justVanityPath").get(0));
+        
+        //remove vanity path
+        method1.invoke(mapEntries, "/justVanityPath");
+        
+        assertEquals(1, resolveMapsMap.size());
+        assertEquals(0, vanityTargets.size());      
+        assertNull(resolveMapsMap.get("/target/justVanityPath"));
+        
+        //vanity under jcr:content
+        Resource vanityPathOnJcrContentParent = mock(Resource.class, 
"vanityPathOnJcrContentParent");
+        
when(vanityPathOnJcrContentParent.getPath()).thenReturn("/vanityPathOnJcrContent");
+        
when(vanityPathOnJcrContentParent.getName()).thenReturn("vanityPathOnJcrContent");
+
+        Resource vanityPathOnJcrContent = mock(Resource.class, 
"vanityPathOnJcrContent");
+        
when(resourceResolver.getResource("/vanityPathOnJcrContent/jcr:content")).thenReturn(vanityPathOnJcrContent);
+        
when(vanityPathOnJcrContent.getPath()).thenReturn("/vanityPathOnJcrContent/jcr:content");
+        when(vanityPathOnJcrContent.getName()).thenReturn("jcr:content");
+        
when(vanityPathOnJcrContent.getParent()).thenReturn(vanityPathOnJcrContentParent);
+        
when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath",
 "/target/vanityPathOnJcrContent"));
+        
+        method.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
+        
+        assertEquals(2, resolveMapsMap.size());
+        assertEquals(1, vanityTargets.size());
+        assertNotNull(resolveMapsMap.get("/target/vanityPathOnJcrContent"));
+        assertEquals(1,vanityTargets.get("/vanityPathOnJcrContent").size());
+        assertEquals("/target/vanityPathOnJcrContent", 
vanityTargets.get("/vanityPathOnJcrContent").get(0));
+        
+        //remove vanity path
+        method1.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
+        
+        assertEquals(1, resolveMapsMap.size());
+        assertEquals(0, vanityTargets.size());      
+        assertNull(resolveMapsMap.get("/target/vanityPathOnJcrContent"));
+        
+    }
+    
 }


Reply via email to