You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2014/05/12 17:35:10 UTC

svn commit: r1594002 - in /sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr: ChildrenNameMatcher.java JcrMatchers.java

Author: rombert
Date: Mon May 12 15:35:09 2014
New Revision: 1594002

URL: http://svn.apache.org/r1594002
Log:
SLING-3117 - Node order changes made in .content.xml files are not
persisted

Added ChildrenNameMatcher

Added:
    sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java   (with props)
Modified:
    sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java

Added: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java?rev=1594002&view=auto
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java (added)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java Mon May 12 15:35:09 2014
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.ide.test.impl.helpers.jcr;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.jcr.Node;
+import javax.jcr.NodeIterator;
+import javax.jcr.RepositoryException;
+
+import org.hamcrest.Description;
+import org.junit.internal.matchers.TypeSafeMatcher;
+
+/**
+ * The <tt>ChildrenCountMatcher</tt> matches the node's children count
+ *
+ */
+public class ChildrenNameMatcher extends TypeSafeMatcher<Node> {
+
+    private final String[] childrenNames;
+
+    public ChildrenNameMatcher(String... childrenNames) {
+        this.childrenNames = childrenNames;
+    }
+
+    @Override
+    public void describeTo(Description description) {
+        description.appendText("node with children named " + Arrays.toString(childrenNames));
+    }
+
+    @Override
+    public boolean matchesSafely(Node item) {
+        try {
+            
+            return item != null && childrenNames(item.getNodes()).equals(Arrays.asList(childrenNames));
+        } catch (RepositoryException e) {
+            return false;
+        }
+    }
+
+    private List<String> childrenNames(NodeIterator nodes) throws RepositoryException {
+
+        List<String> names = new ArrayList<String>();
+        while (nodes.hasNext()) {
+            names.add(nodes.nextNode().getName());
+        }
+        return names;
+    }
+
+}

Propchange: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/ChildrenNameMatcher.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision Rev URL

Modified: sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java?rev=1594002&r1=1594001&r2=1594002&view=diff
==============================================================================
--- sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java (original)
+++ sling/trunk/tooling/ide/eclipse-test/src/org/apache/sling/ide/test/impl/helpers/jcr/JcrMatchers.java Mon May 12 15:35:09 2014
@@ -38,6 +38,10 @@ public final class JcrMatchers {
         return new ChildrenCountMatcher(childrenCount);
     }
 
+    public static Matcher<Node> hasChildrenNames(String... childrenNames) {
+        return new ChildrenNameMatcher(childrenNames);
+    }
+
     private JcrMatchers() {
 
     }