diff --git a/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/linksubtype/UnreservedBandwidthTest.java b/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/linksubtype/UnreservedBandwidthTest.java
index 0357ea1..cc21712 100644
--- a/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/linksubtype/UnreservedBandwidthTest.java
+++ b/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/linksubtype/UnreservedBandwidthTest.java
@@ -97,7 +97,7 @@
      * Tests getLinkSubTypeTlvBodyAsByteArray() method.
      */
     @Test
-    public void testGetLinkSubTypeTLVBodyAsByteArray() throws Exception {
+    public void testGetLinkSubTypeTlvBodyAsByteArray() throws Exception {
         result = unreservedBandwidth.getLinkSubTypeTlvBodyAsByteArray();
         assertThat(result, is(notNullValue()));
     }
diff --git a/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/tlvtypes/RouterTlvTest.java b/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/tlvtypes/RouterTlvTest.java
index 9a3d10e..e946ec0 100644
--- a/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/tlvtypes/RouterTlvTest.java
+++ b/protocols/ospf/protocol/src/test/java/org/onosproject/ospf/protocol/lsa/tlvtypes/RouterTlvTest.java
@@ -112,7 +112,7 @@
      * Tests getTlvBodyAsByteArray() method.
      */
     @Test(expected = Exception.class)
-    public void testGetTLVBodyAsByteArray() throws Exception {
+    public void testGetTlvBodyAsByteArray() throws Exception {
         result = rtlv.getTlvBodyAsByteArray();
         assertThat(result, is(notNullValue()));
     }
@@ -124,4 +124,4 @@
     public void testToString() throws Exception {
         assertThat(rtlv.toString(), is(notNullValue()));
     }
-}
+}
\ No newline at end of file
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 ecbd449..d2f1a2c 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
@@ -164,7 +164,7 @@
         networkLsa.addAttachedRouter(Ip4Address.valueOf("1.1.1.1"));
         networkLsa.addAttachedRouter(Ip4Address.valueOf("2.2.2.2"));
         networkLsa.addAttachedRouter(Ip4Address.valueOf("3.3.3.3"));
-        result1 = networkLsa.getLSABodyAsByteArray();
+        result1 = networkLsa.getLsaBodyAsByteArray();
         assertThat(result1, is(notNullValue()));
     }
 
@@ -177,7 +177,7 @@
         networkLsa.addAttachedRouter(Ip4Address.valueOf("1.1.1.1"));
         networkLsa.addAttachedRouter(Ip4Address.valueOf("2.2.2.2"));
         networkLsa.addAttachedRouter(Ip4Address.valueOf("3.3.3.3"));
-        result1 = networkLsa.getLSABodyAsByteArray();
+        result1 = networkLsa.getLsaBodyAsByteArray();
         assertThat(result1, is(notNullValue()));
     }
 
