Test enhancements for DocumentPath, UiTopology, DistributedClusterStore

Change-Id: Ib4fb1e72555bde20237eef036efa24072c1ce41b
diff --git a/core/api/src/test/java/org/onosproject/store/service/DocumentPathTest.java b/core/api/src/test/java/org/onosproject/store/service/DocumentPathTest.java
index 71b274f..d267814 100644
--- a/core/api/src/test/java/org/onosproject/store/service/DocumentPathTest.java
+++ b/core/api/src/test/java/org/onosproject/store/service/DocumentPathTest.java
@@ -22,7 +22,9 @@
 
 import java.util.Arrays;
 
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 
 /**
  * Unit tests for {@link DocumentPath}.
@@ -34,10 +36,13 @@
         DocumentPath path = path("root.a.b");
         assertEquals(path.pathElements(), Arrays.asList("root", "a", "b"));
         assertEquals(path("root.a"), path.parent());
+        assertEquals(path("b"), path.childPath());
     }
 
     @Test
     public void testAncestry() {
+        DocumentPath path = path("root");
+        assertEquals(path.childPath(), null);
         DocumentPath path1 = path("root.a.b");
         DocumentPath path2 = path("root.a.d");
         DocumentPath path3 = path("root.a.b.c");
@@ -50,6 +55,32 @@
         assertFalse(path3.isDescendentOf(path2));
     }
 
+    @Rule
+    public final ExpectedException exception = ExpectedException.none();
+
+    @Test
+    public void testExceptions() {
+        DocumentPath parentPath = path("root.a.b");
+        DocumentPath path2 = exceptions("nodeName", parentPath);
+        exception.expect(IllegalDocumentNameException.class);
+        DocumentPath path1 = exceptions("node|name", parentPath);
+    }
+
+    @Test
+    public void comparePaths() {
+        DocumentPath one = path("root");
+        DocumentPath four = path("root.a.b.c.d");
+        DocumentPath difFour = path("root.e.c.b.a");
+        assertEquals(-1, one.compareTo(four));
+        assertEquals(1, four.compareTo(one));
+        assertEquals(4, difFour.compareTo(four));
+        assertEquals(0, difFour.compareTo(difFour));
+    }
+
+    private static DocumentPath exceptions(String nodeName, DocumentPath path) {
+        return new DocumentPath(nodeName, path);
+    }
+
     private static DocumentPath path(String path) {
         return DocumentPath.from(path.replace(".", DocumentPath.DEFAULT_SEPARATOR));
     }