diff --git a/core/api/src/test/java/org/onosproject/ui/topo/BiLinkTestBase.java b/core/api/src/test/java/org/onosproject/ui/topo/BiLinkTestBase.java
index bcfd408..77b6858 100644
--- a/core/api/src/test/java/org/onosproject/ui/topo/BiLinkTestBase.java
+++ b/core/api/src/test/java/org/onosproject/ui/topo/BiLinkTestBase.java
@@ -24,11 +24,12 @@
 import org.onosproject.net.PortNumber;
 import org.onosproject.net.driver.Behaviour;
 import org.onosproject.net.provider.ProviderId;
+import org.onosproject.ui.AbstractUiTest;
 
 /**
  * Base class for unit tests of {@link BiLink} and {@link BiLinkMap}.
  */
-public abstract class BiLinkTestBase {
+public abstract class BiLinkTestBase extends AbstractUiTest {
 
     protected static class FakeLink implements Link {
         private final ConnectPoint src;
@@ -39,29 +40,43 @@
             this.dst = dst;
         }
 
-        @Override public ConnectPoint src() {
+        @Override
+        public ConnectPoint src() {
             return src;
         }
-        @Override public ConnectPoint dst() {
+
+        @Override
+        public ConnectPoint dst() {
             return dst;
         }
 
-        @Override public Type type() {
+        @Override
+        public Type type() {
             return null;
         }
-        @Override public State state() {
+
+        @Override
+        public State state() {
             return null;
         }
-        @Override public boolean isDurable() {
+
+        @Override
+        public boolean isDurable() {
             return false;
         }
-        @Override public boolean isExpected() {
+
+        @Override
+        public boolean isExpected() {
             return false;
         }
-        @Override public Annotations annotations() {
+
+        @Override
+        public Annotations annotations() {
             return null;
         }
-        @Override public ProviderId providerId() {
+
+        @Override
+        public ProviderId providerId() {
             return null;
         }
 
@@ -94,6 +109,7 @@
         public ConcreteLink(LinkKey key, Link link) {
             super(key, link);
         }
+
         @Override
         public LinkHighlight highlight(Enum<?> type) {
             return null;
@@ -107,5 +123,4 @@
         }
     }
 
-
 }
