diff --git a/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java b/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
index eb323ef..0e291f8 100644
--- a/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
+++ b/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
@@ -397,12 +397,11 @@
     /**
      * Tests the getConnectedClient method.
      */
-    @Test(expected = Exception.class)
+    @Test
     public void testGetConnectedClient() {
         OpenstackNode.Builder osNodeBuilderV2 = DefaultOpenstackNode.builder();
         OpenstackAuth.Builder osNodeAuthBuilderV2 = DefaultOpenstackAuth.builder()
                 .version("v2.0")
-                .port(35357)
                 .protocol(OpenstackAuth.Protocol.HTTP)
                 .project("admin")
                 .username("admin")
@@ -412,16 +411,14 @@
         openstackControlNodeV2 = osNodeBuilderV2.hostname("controllerv2")
                 .type(OpenstackNode.NodeType.CONTROLLER)
                 .managementIp(IpAddress.valueOf("1.1.1.1"))
-                .endPoint("1.1.1.1")
+                .endpoint("1.1.1.1")
                 .authentication(osNodeAuthBuilderV2.build())
                 .state(NodeState.COMPLETE)
                 .build();
 
-
         OpenstackNode.Builder osNodeBuilderV3 = DefaultOpenstackNode.builder();
         OpenstackAuth.Builder osNodeAuthBuilderV3 = DefaultOpenstackAuth.builder()
                 .version("v2")
-                .port(80)
                 .protocol(OpenstackAuth.Protocol.HTTP)
                 .project("admin")
                 .username("admin")
@@ -431,7 +428,7 @@
         openstackControlNodeV3 = osNodeBuilderV3.hostname("controllerv3")
                 .type(OpenstackNode.NodeType.CONTROLLER)
                 .managementIp(IpAddress.valueOf("2.2.2.2"))
-                .endPoint("2.2.2.2")
+                .endpoint("2.2.2.2")
                 .authentication(osNodeAuthBuilderV3.build())
                 .state(NodeState.COMPLETE)
                 .build();
