You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by an...@apache.org on 2007/10/05 19:17:56 UTC

svn commit: r582352 - in /jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi: HierarchyNodeTest.java TestAll.java

Author: angela
Date: Fri Oct  5 10:17:55 2007
New Revision: 582352

URL: http://svn.apache.org/viewvc?rev=582352&view=rev
Log:
test for JCR-1158

Added:
    jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/HierarchyNodeTest.java   (with props)
Modified:
    jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java

Added: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/HierarchyNodeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/HierarchyNodeTest.java?rev=582352&view=auto
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/HierarchyNodeTest.java (added)
+++ jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/HierarchyNodeTest.java Fri Oct  5 10:17:55 2007
@@ -0,0 +1,116 @@
+/*
+ * 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.jackrabbit.jcr2spi;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
+
+import javax.jcr.Node;
+import javax.jcr.PropertyIterator;
+import javax.jcr.NodeIterator;
+import javax.jcr.RepositoryException;
+import javax.jcr.Property;
+import javax.jcr.Session;
+import java.util.Calendar;
+import java.util.Set;
+import java.util.HashSet;
+
+/**
+ * <code>HierarchyNodeTest</code>...
+ */
+public class HierarchyNodeTest extends AbstractJCRTest {
+
+    private static Logger log = LoggerFactory.getLogger(HierarchyNodeTest.class);
+
+    private Set hierarchyNodeProps = new HashSet();
+    private Set resourceProps = new HashSet();
+
+    private String ntFolder;
+    private String ntFile;
+    private String ntResource;
+
+    private Node fileNode;
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        Session s = testRootNode.getSession();
+        String jcrPrefix = s.getNamespacePrefix(NS_JCR_URI);
+        String ntPrefix = s.getNamespacePrefix(NS_NT_URI);
+
+        ntFolder = ntPrefix + ":folder";
+        ntFile = ntPrefix + ":file";
+        ntResource = ntPrefix + ":resource";
+
+        hierarchyNodeProps.add(jcrPrefix+":primaryType");
+        hierarchyNodeProps.add(jcrPrefix+":created");
+
+        resourceProps.add(jcrPrefix+":primaryType");
+        resourceProps.add(jcrPrefix+":lastModified");
+        resourceProps.add(jcrPrefix+":mimeType");
+        resourceProps.add(jcrPrefix+":data");
+        resourceProps.add(jcrPrefix+":uuid");
+
+        try {
+            Node folder = testRootNode.addNode("folder", ntFolder);
+            fileNode = folder.addNode("file", ntFile);
+
+            Node content = fileNode.addNode(jcrPrefix + ":content", ntResource);
+            content.setProperty(jcrPrefix + ":lastModified", Calendar.getInstance());
+            content.setProperty(jcrPrefix + ":mimeType", "text/plain");
+            content.setProperty(jcrPrefix + ":data", "some plain text");
+
+            testRootNode.save();
+        } catch (RepositoryException e) {
+            throw new NotExecutableException("Cannot create hierarchy nodes.");
+        }
+    }
+
+    public void testGetProperties() throws RepositoryException {
+        Session readSession = helper.getReadOnlySession();
+        dump((Node) readSession.getItem(fileNode.getPath()));
+
+        System.out.println("bla");
+    }
+
+    /** Recursively outputs the contents of the given node. */
+    private void dump(Node node) throws RepositoryException {
+
+        // Then output the properties
+        PropertyIterator properties = node.getProperties();
+        Set set = new HashSet();
+        while (properties.hasNext()) {
+            Property property = properties.nextProperty();
+            set.add(property.getName());
+        }
+
+        if (node.getPrimaryNodeType().getName().equals(ntFolder)) {
+            assertTrue(hierarchyNodeProps.size() == set.size() && hierarchyNodeProps.containsAll(set));
+        } else if (node.getPrimaryNodeType().getName().equals(ntFile)) {
+            assertTrue(hierarchyNodeProps.size() == set.size() && hierarchyNodeProps.containsAll(set));
+        } else if (node.getPrimaryNodeType().getName().equals(ntResource)) {
+            assertTrue(resourceProps.size() == set.size() && resourceProps.containsAll(set));
+        }
+
+        // Finally output all the child nodes recursively
+        NodeIterator nodes = node.getNodes();
+        while (nodes.hasNext()) {
+            dump(nodes.nextNode());
+        }
+    }
+}
\ No newline at end of file

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/HierarchyNodeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/HierarchyNodeTest.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision url

Modified: jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java?rev=582352&r1=582351&r2=582352&view=diff
==============================================================================
--- jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java (original)
+++ jackrabbit/trunk/contrib/spi/client/src/test/java/org/apache/jackrabbit/jcr2spi/TestAll.java Fri Oct  5 10:17:55 2007
@@ -81,6 +81,7 @@
 
         // various
         suite.addTestSuite(ReplaceNode.class);
+        suite.addTestSuite(HierarchyNodeTest.class);
 
         return suite;
     }