You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by np...@apache.org on 2017/08/29 14:02:30 UTC

svn commit: r1806595 - in /sling/trunk/testing/mocks/jcr-mock/src: main/java/org/apache/sling/testing/mock/jcr/MockNode.java test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java

Author: npeltier
Date: Tue Aug 29 14:02:30 2017
New Revision: 1806595

URL: http://svn.apache.org/viewvc?rev=1806595&view=rev
Log:
SLING-7089 support for MockNode.get* with globs

Modified:
    sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java
    sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java

Modified: sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java?rev=1806595&r1=1806594&r2=1806595&view=diff
==============================================================================
--- sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java (original)
+++ sling/trunk/testing/mocks/jcr-mock/src/main/java/org/apache/sling/testing/mock/jcr/MockNode.java Tue Aug 29 14:02:30 2017
@@ -42,6 +42,7 @@ import javax.jcr.version.VersionHistory;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.jackrabbit.JcrConstants;
+import org.apache.jackrabbit.commons.ItemNameMatcher;
 import org.apache.jackrabbit.commons.iterator.NodeIteratorAdapter;
 import org.apache.jackrabbit.commons.iterator.PropertyIteratorAdapter;
 
@@ -106,6 +107,18 @@ class MockNode extends AbstractItem impl
     }
 
     @Override
+    public NodeIterator getNodes(final String[] nameGlobs) throws RepositoryException {
+        RangeIterator items = getMockedSession().listChildren(getPath(), new ItemFilter() {
+            @Override
+            public boolean accept(final ItemData item) throws RepositoryException {
+                return item.isNode() && ItemNameMatcher.matches(item.getName(), nameGlobs);
+            }
+        });
+        return new NodeIteratorAdapter(items, items.getSize());
+    }
+
+
+    @Override
     public PropertyIterator getProperties() throws RepositoryException {
         RangeIterator items = getMockedSession().listChildren(getPath(), new ItemFilter() {
             @Override
@@ -129,6 +142,17 @@ class MockNode extends AbstractItem impl
     }
 
     @Override
+    public PropertyIterator getProperties(final String[] nameGlobs) throws RepositoryException {
+        RangeIterator items = getMockedSession().listChildren(getPath(), new ItemFilter() {
+            @Override
+            public boolean accept(final ItemData item) throws RepositoryException {
+            return item.isProperty() && ItemNameMatcher.matches(item.getName(), nameGlobs);
+            }
+        });
+        return new PropertyIteratorAdapter(items, items.getSize());
+    }
+
+    @Override
     public Property getProperty(final String relPath) throws RepositoryException {
         String path = makeAbsolutePath(relPath);
         return getSession().getProperty(path);
@@ -494,16 +518,6 @@ class MockNode extends AbstractItem impl
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public NodeIterator getNodes(final String[] nameGlobs) throws RepositoryException {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public PropertyIterator getProperties(final String[] nameGlobs) throws RepositoryException {
-        throw new UnsupportedOperationException();
-    }
-
     @Override
     public PropertyIterator getReferences(final String name) throws RepositoryException {
         throw new UnsupportedOperationException();

Modified: sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java?rev=1806595&r1=1806594&r2=1806595&view=diff
==============================================================================
--- sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java (original)
+++ sling/trunk/testing/mocks/jcr-mock/src/test/java/org/apache/sling/testing/mock/jcr/MockNodeTest.java Tue Aug 29 14:02:30 2017
@@ -45,6 +45,7 @@ public class MockNodeTest {
     private Node rootNode;
     private Node node1;
     private Property prop1;
+    private Property prop2;
     private Node node11;
 
     @Before
@@ -72,6 +73,10 @@ public class MockNodeTest {
         assertEquals(1, nodes.getSize());
         assertEquals(this.node11, nodes.nextNode());
 
+        nodes = this.node1.getNodes(new String[]{"node*"});
+        assertEquals(1, nodes.getSize());
+        assertEquals(this.node11, nodes.nextNode());
+
         nodes = this.node1.getNodes("unknown?");
         assertEquals(0, nodes.getSize());
     }
@@ -90,6 +95,10 @@ public class MockNodeTest {
         assertEquals(1, properties.getSize());
         assertEquals(this.prop1, properties.next());
 
+        properties = this.node1.getProperties(new String[]{"prop*"});
+        assertEquals(1, properties.getSize());
+        assertEquals(this.prop1, properties.next());
+
         properties = this.node1.getProperties("unknown?");
         assertEquals(0, properties.getSize());
     }