[SDFAB-705] Fix GUI for the control and data plane resiliency

Additionally, fix similar issues in GUI2 and add initial
support for ports with name in GUI/GUI2.

This is also the first step towards supporting port with name widely in ONOS

Change-Id: Ib04f780bf0b7171e82a6beb69b39c0aaeb4be957
(cherry picked from commit 178046ba11ab21d94a1e818fb893931bb015734b)
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 73dfe79..0a7516d 100644
--- a/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java
+++ b/core/api/src/test/java/org/onosproject/net/ConnectPointTest.java
@@ -71,14 +71,47 @@
     }
 
     @Test
-    public void testParseFromString() {
+    public void testParseFromStringOF() {
+        String cp = "of:0011223344556677/1";
+
+        ConnectPoint connectPoint = ConnectPoint.fromString(cp);
+        assertEquals("of:0011223344556677", connectPoint.deviceId().toString());
+        assertEquals("1", connectPoint.port().toString());
+
+        expectStringParseException("[");
+        expectStringParseException("1/[");
+        expectStringParseException("1/[aasksk");
+        expectStringParseException("1/[alksas]");
+    }
+
+    @Test
+    public void testParseFromStringNetconf() {
         String cp = "netconf:127.0.0.1/[TYPE](1)";
 
         ConnectPoint connectPoint = ConnectPoint.fromString(cp);
         assertEquals("netconf:127.0.0.1", connectPoint.deviceId().toString());
         assertEquals("[TYPE](1)", connectPoint.port().toString());
         assertEquals(connectPoint, ConnectPoint.fromString(connectPoint.toString()));
+    }
 
+    @Test
+    public void testParseFromStringBmv2() {
+        String cp = "device:leaf1/[leaf1-eth4](1)";
+
+        ConnectPoint connectPoint = ConnectPoint.fromString(cp);
+        assertEquals("device:leaf1", connectPoint.deviceId().toString());
+        assertEquals("[leaf1-eth4](1)", connectPoint.port().toString());
+        assertEquals(connectPoint, ConnectPoint.fromString(connectPoint.toString()));
+    }
+
+    @Test
+    public void testParseFromStringStratum() {
+        String cp = "device:leaf1/[3/0](1)";
+
+        ConnectPoint connectPoint = ConnectPoint.fromString(cp);
+        assertEquals("device:leaf1", connectPoint.deviceId().toString());
+        assertEquals("[3/0](1)", connectPoint.port().toString());
+        assertEquals(connectPoint, ConnectPoint.fromString(connectPoint.toString()));
     }
 
     /**
@@ -95,6 +128,20 @@
         }
     }
 
+    /**
+     * Parse a string connect point and expect an exception to be thrown.
+     *
+     * @param string string to parse
+     */
+    private static void expectStringParseException(String string) {
+        try {
+            ConnectPoint.fromString(string);
+            fail(String.format("Expected exception was not thrown for '%s'", string));
+        } catch (Exception e) {
+            assertTrue(true);
+        }
+    }
+
     @Test
     public void testParseHostConnectPoint() {
         String cp = "16:3A:BD:6E:31:E4/-1/1";