diff --git a/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/types/NetworkLsaTest.java b/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/types/NetworkLsaTest.java
index d2f1a2c..3f25792 100644
--- a/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/types/NetworkLsaTest.java
+++ b/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/types/NetworkLsaTest.java
@@ -24,8 +24,6 @@
 import org.onosproject.ospf.controller.OspfLsaType;
 import org.onosproject.ospf.protocol.lsa.LsaHeader;
 
-
-import java.net.InetAddress;
 import java.util.Vector;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -37,6 +35,8 @@
  */
 public class NetworkLsaTest {
 
+    private static final Ip4Address LOCAL_ADDRESS = Ip4Address.valueOf("127.0.0.1");
+
     private Vector<String> attachedRouters = new Vector();
     private NetworkLsa networkLsa;
     private Ip4Address result;
@@ -112,10 +112,8 @@
      */
     @Test
     public void testAddAttachedRouter() throws Exception {
-        inetAddres = Ip4Address.valueOf(InetAddress.getLocalHost());
-        networkLsa.addAttachedRouter(inetAddres);
-        inetAddres = Ip4Address.valueOf(InetAddress.getLocalHost());
-        networkLsa.addAttachedRouter(inetAddres);
+        networkLsa.addAttachedRouter(LOCAL_ADDRESS);
+        networkLsa.addAttachedRouter(LOCAL_ADDRESS);
         assertThat(networkLsa, is(notNullValue()));
     }
 
@@ -227,4 +225,4 @@
         lsaHeader.setOptions(2);
         return lsaHeader;
     }
-}
\ No newline at end of file
+}
