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/11/19 16:12:10 UTC

svn commit: r1543448 - /jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java

Author: mduerig
Date: Tue Nov 19 15:12:10 2013
New Revision: 1543448

URL: http://svn.apache.org/r1543448
Log:
OAK-144: Implement observation
Stricter tests

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java?rev=1543448&r1=1543447&r2=1543448&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/observation/ObservationTest.java Tue Nov 19 15:12:10 2013
@@ -89,7 +89,7 @@ public class ObservationTest extends Abs
         ntMgr.registerNodeType(mixTest, false);
 
         Node n = session.getRootNode().addNode(TEST_NODE);
-        n.addMixin("mix:test");
+        n.addMixin(TEST_TYPE);
 
         session.save();
 
@@ -177,6 +177,9 @@ public class ObservationTest extends Abs
             Node n = getNode(TEST_PATH);
             Property p = n.setProperty("p", "v");
             listener.expectAdd(p);
+            Node n1 = n.addNode("n1");
+            listener.expect(n1.getPath(), NODE_ADDED);
+            n1.addNode("n2");
             getAdminSession().save();
 
             List<Expectation> missing = listener.getMissing(2, TimeUnit.SECONDS);
@@ -254,27 +257,32 @@ public class ObservationTest extends Abs
     @Test
     public void pathFilter() throws Exception {
         final String path = "/events/only/here";
-        ExpectationListener listener = new ExpectationListener();
-        listener.expect(new Expectation(path){
-            @Override
-            public boolean onEvent(Event event) throws Exception {
-                return PathUtils.isAncestor(path, event.getPath());
-            }
-        });
 
-        observationManager.addEventListener(listener, NODE_ADDED, path, true, null, null, false);
-        try {
+        for (boolean deep : new boolean[]{false, true}) {
             Node root = getNode("/");
-            root.addNode("events").addNode("only").addNode("here").addNode("at");
-            root.getSession().save();
+            if (root.hasNode("events")) {
+                root.getNode("events").remove();
+                root.getSession().save();
+            }
 
-            List<Expectation> missing = listener.getMissing(2, TimeUnit.SECONDS);
-            assertTrue("Missing events: " + missing, missing.isEmpty());
-            List<Event> unexpected = listener.getUnexpected();
-            assertTrue("Unexpected events: " + unexpected, unexpected.isEmpty());
-        }
-        finally {
-            observationManager.removeEventListener(listener);
+            ExpectationListener listener = new ExpectationListener();
+            observationManager.addEventListener(listener, NODE_ADDED, path, deep, null, null, false);
+            try {
+                root.addNode("events").addNode("only").addNode("here").addNode("below").addNode("this");
+                listener.expect("/events/only/here/below", NODE_ADDED);
+                if (deep) {
+                    listener.expect("/events/only/here/below/this", NODE_ADDED);
+                }
+                root.getSession().save();
+
+                List<Expectation> missing = listener.getMissing(2, TimeUnit.SECONDS);
+                assertTrue("Missing events: " + missing, missing.isEmpty());
+                List<Event> unexpected = listener.getUnexpected();
+                assertTrue("Unexpected events: " + unexpected, unexpected.isEmpty());
+            }
+            finally {
+                observationManager.removeEventListener(listener);
+            }
         }
     }