diff --git a/core/api/src/test/java/org/onosproject/ui/topo/TopoUtilsTest.java b/core/api/src/test/java/org/onosproject/ui/topo/TopoUtilsTest.java
index f7b56eb..e8712dc 100644
--- a/core/api/src/test/java/org/onosproject/ui/topo/TopoUtilsTest.java
+++ b/core/api/src/test/java/org/onosproject/ui/topo/TopoUtilsTest.java
@@ -22,6 +22,7 @@
 import org.onosproject.net.Link;
 import org.onosproject.net.LinkKey;
 import org.onosproject.net.provider.ProviderId;
+import org.onosproject.ui.AbstractUiTest;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -31,7 +32,7 @@
 /**
  * Unit tests for {@link TopoUtils}.
  */
-public class TopoUtilsTest {
+public class TopoUtilsTest extends AbstractUiTest {
     private static final String AM_WL = "wrong label";
     private static final String AM_WM = "wrong magnitude";
     private static final String AM_CL = "clipped?";
@@ -54,6 +55,21 @@
             .providerId(ProviderId.NONE)
             .build();
 
+    private static final Link LINK_7_TO_3 = DefaultLink.builder()
+            .src(deviceConnectPoint("of:0000000000000007/2"))
+            .dst(deviceConnectPoint("of:0000000000000003/2"))
+            .type(Link.Type.DIRECT)
+            .providerId(ProviderId.NONE)
+            .build();
+
+    private static final Link LINK_3_TO_7 = DefaultLink.builder()
+            .src(deviceConnectPoint("of:0000000000000003/2"))
+            .dst(deviceConnectPoint("of:0000000000000007/2"))
+            .type(Link.Type.DIRECT)
+            .providerId(ProviderId.NONE)
+            .build();
+
+
     private TopoUtils.ValueLabel vl;
 
     @Test
@@ -76,6 +92,15 @@
     }
 
     @Test
+    public void canon723() {
+        LinkKey lk1 = TopoUtils.canonicalLinkKey(LINK_7_TO_3);
+        print(lk1);
+        LinkKey lk2 = TopoUtils.canonicalLinkKey(LINK_3_TO_7);
+        print(lk2);
+        assertEquals("not canonical 3/7", lk1, lk2);
+    }
+
+    @Test
     public void formatSmallBytes() {
         vl = TopoUtils.formatBytes(1_000L);
         assertEquals(AM_WM, TopoUtils.Magnitude.ONE, vl.magnitude());
