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 2013/04/18 17:18:46 UTC
svn commit: r1469367 -
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java
Author: mduerig
Date: Thu Apr 18 15:18:46 2013
New Revision: 1469367
URL: http://svn.apache.org/r1469367
Log:
OAK-781: Clarify / fix effects of MISSING_NODE as base state of NodeBuilder
test cases for child(), addChild(), getChild()
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java?rev=1469367&r1=1469366&r2=1469367&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilderTest.java Thu Apr 18 15:18:46 2013
@@ -253,6 +253,73 @@ public class MemoryNodeBuilderTest {
assertTrue(c.exists());
assertTrue(c.hasProperty("c"));
+ rootBuilder.child("a").getChild("b").child("c").setProperty("c2", "c2Value");
+
+ r = rootBuilder.getNodeState();
+ a = r.getChildNode("a");
+ b = a.getChildNode("b");
+ c = b.getChildNode("c");
+
+ assertTrue(a.exists());
+ assertFalse(b.exists());
+ assertTrue(c.exists());
+
+ // Node c is modified
+ assertTrue(c.hasProperty("c"));
+ assertTrue(c.hasProperty("c2"));
+ }
+
+ @Test
+ public void shadowNonExistingNode1() {
+ MemoryNodeBuilder rootBuilder = new MemoryNodeBuilder(EmptyNodeState.EMPTY_NODE);
+
+ // +"/a":{"b":{"c":{"c":"cValue"}}} where b.exists() == false
+ rootBuilder.child("a").setNode("b", createBC(false));
+
+ NodeState r = rootBuilder.getNodeState();
+ NodeState a = r.getChildNode("a");
+ NodeState b = a.getChildNode("b");
+ NodeState c = b.getChildNode("c");
+
+ assertTrue(a.exists());
+ assertFalse(b.exists());
+ assertTrue(c.exists());
+ assertTrue(c.hasProperty("c"));
+
+ rootBuilder.child("a").addChild("b").child("c").setProperty("c2", "c2Value");
+
+ r = rootBuilder.getNodeState();
+ a = r.getChildNode("a");
+ b = a.getChildNode("b");
+ c = b.getChildNode("c");
+
+ assertTrue(a.exists());
+ assertTrue(b.exists()); // node b is shadowed by above child("b")
+ assertTrue(c.exists());
+
+ // node c is shadowed by subtree b
+ assertFalse(c.hasProperty("c"));
+ assertTrue(c.hasProperty("c2"));
+ }
+
+ @Test
+ @Ignore("OAK-781")
+ public void shadowNonExistingNode2() {
+ MemoryNodeBuilder rootBuilder = new MemoryNodeBuilder(EmptyNodeState.EMPTY_NODE);
+
+ // +"/a":{"b":{"c":{"c":"cValue"}}} where b.exists() == false
+ rootBuilder.child("a").setNode("b", createBC(false));
+
+ NodeState r = rootBuilder.getNodeState();
+ NodeState a = r.getChildNode("a");
+ NodeState b = a.getChildNode("b");
+ NodeState c = b.getChildNode("c");
+
+ assertTrue(a.exists());
+ assertFalse(b.exists());
+ assertTrue(c.exists());
+ assertTrue(c.hasProperty("c"));
+
rootBuilder.child("a").child("b").child("c").setProperty("c2", "c2Value");
r = rootBuilder.getNodeState();
@@ -261,10 +328,11 @@ public class MemoryNodeBuilderTest {
c = b.getChildNode("c");
assertTrue(a.exists());
- assertTrue(b.exists()); // shadowed by above child("b")
+ assertTrue(b.exists()); // node b is shadowed by above child("b")
assertTrue(c.exists());
- assertFalse(c.hasProperty("c")); // shadowed by subtree b
+ // node c is shadowed by subtree b
+ assertFalse(c.hasProperty("c"));
assertTrue(c.hasProperty("c2"));
}