You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2010/10/28 15:00:25 UTC
svn commit: r1028281 - in /jackrabbit/trunk/jackrabbit-core/src/test:
java/org/apache/jackrabbit/api/JackrabbitNodeTest.java
resources/org/apache/jackrabbit/api/
resources/org/apache/jackrabbit/api/test_mixin_nodetypes.cnd
Author: stefan
Date: Thu Oct 28 13:00:25 2010
New Revision: 1028281
URL: http://svn.apache.org/viewvc?rev=1028281&view=rev
Log:
JCR-2788 Provide a JackrabbitNode#setMixins(String[] mixinNames) method
added simple test case
Added:
jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/api/
jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/api/test_mixin_nodetypes.cnd
- copied, changed from r1026311, jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/core/nodetype/xml/test_mixin_nodetypes.cnd
Modified:
jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/api/JackrabbitNodeTest.java
Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/api/JackrabbitNodeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/api/JackrabbitNodeTest.java?rev=1028281&r1=1028280&r2=1028281&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/api/JackrabbitNodeTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/api/JackrabbitNodeTest.java Thu Oct 28 13:00:25 2010
@@ -16,11 +16,14 @@
*/
package org.apache.jackrabbit.api;
+import org.apache.jackrabbit.commons.cnd.CndImporter;
import org.apache.jackrabbit.test.AbstractJCRTest;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.RepositoryException;
+import java.io.InputStreamReader;
+import java.io.Reader;
/**
* <code>JackrabbitNodeTest</code>...
@@ -31,12 +34,18 @@ public class JackrabbitNodeTest extends
static final String SEQ_AFTER = "jackraBbit";
static final int RELPOS = 6;
+ static final String TEST_NODETYPES = "org/apache/jackrabbit/api/test_mixin_nodetypes.cnd";
+
protected void setUp() throws Exception {
super.setUp();
assertTrue(testRootNode.getPrimaryNodeType().hasOrderableChildNodes());
for (char c : SEQ_BEFORE.toCharArray()) {
testRootNode.addNode(new String(new char[]{c}));
}
+
+ Reader cnd = new InputStreamReader(getClass().getClassLoader().getResourceAsStream(TEST_NODETYPES));
+ CndImporter.registerNodeTypes(cnd, superuser);
+ cnd.close();
}
public void testRename() throws RepositoryException {
@@ -67,4 +76,43 @@ public class JackrabbitNodeTest extends
pos++;
}
}
+
+ public void testSetMixins() throws RepositoryException {
+ // create node with mixin test:AA
+ Node n = testRootNode.addNode("foo", "nt:folder");
+ n.addMixin("test:AA");
+ n.setProperty("test:propAA", "AA");
+ n.setProperty("test:propA", "A");
+ superuser.save();
+
+ // 'downgrade' from test:AA to test:A
+ ((JackrabbitNode) n).setMixins(new String[]{"test:A"});
+ superuser.save();
+
+ assertTrue(n.hasProperty("test:propA"));
+ assertFalse(n.hasProperty("test:propAA"));
+
+ // 'upgrade' from test:A to test:AA
+ ((JackrabbitNode) n).setMixins(new String[]{"test:AA"});
+ n.setProperty("test:propAA", "AA");
+ superuser.save();
+
+ assertTrue(n.hasProperty("test:propA"));
+ assertTrue(n.hasProperty("test:propAA"));
+
+ // replace test:AA with mix:title
+ ((JackrabbitNode) n).setMixins(new String[]{"mix:title"});
+ n.setProperty("jcr:title", "...");
+ n.setProperty("jcr:description", "blah blah");
+ superuser.save();
+
+ assertTrue(n.hasProperty("jcr:title"));
+ assertTrue(n.hasProperty("jcr:description"));
+ assertFalse(n.hasProperty("test:propA"));
+ assertFalse(n.hasProperty("test:propAA"));
+
+ // clean up
+ n.remove();
+ superuser.save();
+ }
}
Copied: jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/api/test_mixin_nodetypes.cnd (from r1026311, jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/core/nodetype/xml/test_mixin_nodetypes.cnd)
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/api/test_mixin_nodetypes.cnd?p2=jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/api/test_mixin_nodetypes.cnd&p1=jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/core/nodetype/xml/test_mixin_nodetypes.cnd&r1=1026311&r2=1028281&rev=1028281&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/core/nodetype/xml/test_mixin_nodetypes.cnd (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/api/test_mixin_nodetypes.cnd Thu Oct 28 13:00:25 2010
@@ -16,5 +16,9 @@
*/
<test = "http://www.apache.org/jackrabbit/test">
-[test:mixinNode_protectedchild] mixin
- + test:protectedchild (nt:unstructured) = nt:unstructured protected autocreated
+[test:A] mixin
+ - test:propA (STRING)
+
+[test:AA] > test:A
+ mixin
+ - test:propAA (STRING)