You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2012/04/04 17:41:54 UTC

svn commit: r1309467 - /jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java

Author: mduerig
Date: Wed Apr  4 15:41:53 2012
New Revision: 1309467

URL: http://svn.apache.org/viewvc?rev=1309467&view=rev
Log:
OAK-9: Internal tree builder
More tests for KernelNodeStateEditor

Modified:
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java?rev=1309467&r1=1309466&r2=1309467&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java Wed Apr  4 15:41:53 2012
@@ -18,11 +18,13 @@
  */
 package org.apache.jackrabbit.oak.kernel;
 
+import org.apache.jackrabbit.mk.model.NodeState;
 import org.apache.jackrabbit.mk.model.PropertyState;
 import org.apache.jackrabbit.mk.model.Scalar;
 import org.apache.jackrabbit.mk.model.Scalar.Type;
 import org.apache.jackrabbit.mk.model.ScalarImpl;
 import org.apache.jackrabbit.mk.simple.SimpleKernelImpl;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -114,4 +116,97 @@ public class KernelNodeStateEditorTest {
         assertTrue(expectedProperties.isEmpty());
     }
 
+    @Test
+    public void addNode() {
+        KernelNodeStateEditor editor = new KernelNodeStateEditor(state);
+        TransientNodeState transientState = editor.getTransientState();
+
+        assertFalse(transientState.hasNode("new"));
+        editor.addNode("new");
+        assertTrue(transientState.hasNode("new"));
+
+        NodeState newState = editor.mergeInto(microkernel, state);
+        assertNotNull(newState.getChildNode("new"));
+    }
+
+    @Test
+    public void removeNode() {
+        KernelNodeStateEditor editor = new KernelNodeStateEditor(state);
+        TransientNodeState transientState = editor.getTransientState();
+
+        assertTrue(transientState.hasNode("x"));
+        editor.removeNode("x");
+        assertFalse(transientState.hasNode("x"));
+
+        NodeState newState = editor.mergeInto(microkernel, state);
+        assertNull(newState.getChildNode("x"));
+    }
+
+    @Test
+    public void setProperty() {
+        KernelNodeStateEditor editor = new KernelNodeStateEditor(state);
+        TransientNodeState transientState = editor.getTransientState();
+
+        assertFalse(transientState.hasProperty("new"));
+        Scalar value = ScalarImpl.stringScalar("value");
+        editor.setProperty(new KernelPropertyState("new", value));
+        PropertyState property = transientState.getProperty("new");
+        assertNotNull(property);
+        assertEquals("new", property.getName());
+        assertEquals(value, property.getScalar());
+
+        NodeState newState = editor.mergeInto(microkernel, state);
+        property = newState.getProperty("new");
+        assertNotNull(property);
+        assertEquals("new", property.getName());
+        assertEquals(value, property.getScalar());
+    }
+
+    @Test
+    public void removeProperty() {
+        KernelNodeStateEditor editor = new KernelNodeStateEditor(state);
+        TransientNodeState transientState = editor.getTransientState();
+
+        assertTrue(transientState.hasProperty("a"));
+        editor.removeProperty("a");
+        assertFalse(transientState.hasProperty("a"));
+
+        NodeState newState = editor.mergeInto(microkernel, state);
+        Assert.assertNull(newState.getProperty("a"));
+    }
+
+    @Test
+    public void move() {
+        KernelNodeStateEditor editor = new KernelNodeStateEditor(state);
+        TransientNodeState transientState = editor.getTransientState();
+        TransientNodeState y = transientState.getChildNode("y");
+
+        assertTrue(transientState.hasNode("x"));
+        editor.move("x", "y/xx");
+        assertFalse(transientState.hasNode("x"));
+        assertTrue(y.hasNode("xx"));
+
+        NodeState newState = editor.mergeInto(microkernel, state);
+        assertNull(newState.getChildNode("x"));
+        assertNotNull(newState.getChildNode("y"));
+        assertNotNull(newState.getChildNode("y").getChildNode("xx"));
+    }
+
+    @Test
+    public void copy() {
+        KernelNodeStateEditor editor = new KernelNodeStateEditor(state);
+        TransientNodeState transientState = editor.getTransientState();
+        TransientNodeState y = transientState.getChildNode("y");
+
+        assertTrue(transientState.hasNode("x"));
+        editor.copy("x", "y/xx");
+        assertTrue(transientState.hasNode("x"));
+        assertTrue(y.hasNode("xx"));
+
+        NodeState newState = editor.mergeInto(microkernel, state);
+        assertNotNull(newState.getChildNode("x"));
+        assertNotNull(newState.getChildNode("y"));
+        assertNotNull(newState.getChildNode("y").getChildNode("xx"));
+    }
+
 }