ONOS-6327: Implemented details panel for host view.
- WIP: still have to render the host details in the panel.
- YakShaving:
   * augmented ConnectPoint to implement Comparable
   * cleaned up ConnectPointTest

Change-Id: I5c901099319820e08af812807ff65bf5dac1fb23
diff --git a/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java b/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java
index ee55723..74b162e 100644
--- a/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java
+++ b/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java
@@ -21,6 +21,9 @@
 import static junit.framework.TestCase.fail;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.onosproject.net.ConnectPointTest.Relate.AFTER;
+import static org.onosproject.net.ConnectPointTest.Relate.BEFORE;
+import static org.onosproject.net.ConnectPointTest.Relate.SAME_AS;
 import static org.onosproject.net.DeviceId.deviceId;
 import static org.onosproject.net.PortNumber.portNumber;
 
@@ -34,9 +37,13 @@
     private static final PortNumber P1 = portNumber(1);
     private static final PortNumber P2 = portNumber(2);
 
+    private ConnectPoint cp(DeviceId d, PortNumber p) {
+        return new ConnectPoint(d, p);
+    }
+
     @Test
     public void basics() {
-        ConnectPoint p = new ConnectPoint(DID1, P2);
+        ConnectPoint p = cp(DID1, P2);
         assertEquals("incorrect element id", DID1, p.deviceId());
         assertEquals("incorrect element id", P2, p.port());
     }
@@ -44,9 +51,9 @@
     @Test
     public void testEquality() {
         new EqualsTester()
-                .addEqualityGroup(new ConnectPoint(DID1, P1), new ConnectPoint(DID1, P1))
-                .addEqualityGroup(new ConnectPoint(DID1, P2), new ConnectPoint(DID1, P2))
-                .addEqualityGroup(new ConnectPoint(DID2, P1), new ConnectPoint(DID2, P1))
+                .addEqualityGroup(cp(DID1, P1), cp(DID1, P1))
+                .addEqualityGroup(cp(DID1, P2), cp(DID1, P2))
+                .addEqualityGroup(cp(DID2, P1), cp(DID2, P1))
                 .testEquals();
     }
 
@@ -107,4 +114,34 @@
             assertTrue(true);
         }
     }
+
+    enum Relate { BEFORE, SAME_AS, AFTER }
+
+    private void checkComparison(ConnectPoint cpA, Relate r, ConnectPoint cpB) {
+        switch (r) {
+            case BEFORE:
+                assertTrue("Bad before", cpA.compareTo(cpB) < 0);
+                break;
+            case SAME_AS:
+                assertTrue("Bad same_as", cpA.compareTo(cpB) == 0);
+                break;
+            case AFTER:
+                assertTrue("Bad after", cpA.compareTo(cpB) > 0);
+                break;
+            default:
+                fail("Bad relation");
+        }
+    }
+
+    @Test
+    public void comparator() {
+        checkComparison(cp(DID1, P1), SAME_AS, cp(DID1, P1));
+        checkComparison(cp(DID1, P1), BEFORE, cp(DID1, P2));
+        checkComparison(cp(DID1, P2), AFTER, cp(DID1, P1));
+
+        checkComparison(cp(DID1, P1), BEFORE, cp(DID2, P1));
+        checkComparison(cp(DID1, P2), BEFORE, cp(DID2, P1));
+        checkComparison(cp(DID1, P1), BEFORE, cp(DID2, P2));
+        checkComparison(cp(DID1, P2), BEFORE, cp(DID2, P2));
+    }
 }