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()); }