diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/CaseListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/CaseListenerTest.java
index a403c5a..675a9e9 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/CaseListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/CaseListenerTest.java
@@ -70,7 +70,7 @@
         ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator();
         YangLeaf leafInfo1 = leafIterator1.next();
 
-        assertThat(leafInfo1.getLeafName(), is("pretzel"));
+        assertThat(leafInfo1.getName(), is("pretzel"));
 
         YangCase yangCase2 = (YangCase) yangCase1.getNextSibling();
         assertThat(yangCase2.getName(), is("late-night"));
@@ -79,7 +79,7 @@
         ListIterator<YangLeaf> leafIterator2 = yangCase2.getListOfLeaf().listIterator();
         YangLeaf leafInfo2 = leafIterator2.next();
 
-        assertThat(leafInfo2.getLeafName(), is("chocolate"));
+        assertThat(leafInfo2.getName(), is("chocolate"));
     }
 
     /**
@@ -140,7 +140,7 @@
         ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator();
         YangLeaf leafInfo1 = leafIterator1.next();
 
-        assertThat(leafInfo1.getLeafName(), is("pretzel"));
+        assertThat(leafInfo1.getName(), is("pretzel"));
 
         YangChoice yangChoice2 = (YangChoice) yangChoice.getNextSibling();
         assertThat(yangChoice2.getName(), is("lunch"));
@@ -152,7 +152,7 @@
         ListIterator<YangLeaf> leafIterator2 = yangCase2.getListOfLeaf().listIterator();
         YangLeaf leafInfo2 = leafIterator2.next();
 
-        assertThat(leafInfo2.getLeafName(), is("chocolate"));
+        assertThat(leafInfo2.getName(), is("chocolate"));
     }
 
     /**
@@ -186,7 +186,7 @@
         ListIterator<YangLeaf> leafIterator1 = yangCase1.getListOfLeaf().listIterator();
         YangLeaf leafInfo1 = leafIterator1.next();
 
-        assertThat(leafInfo1.getLeafName(), is("pretzel"));
+        assertThat(leafInfo1.getName(), is("pretzel"));
 
         YangCase yangCase2 = (YangCase) yangCase1.getNextSibling();
         assertThat(yangCase2.getName(), is("late-night"));
@@ -200,6 +200,6 @@
         // Check whether leaf properties as set correctly.
         ListIterator<YangLeaf> leafIterator2 = yangCase3.getListOfLeaf().listIterator();
         YangLeaf leafInfo2 = leafIterator2.next();
-        assertThat(leafInfo2.getLeafName(), is("beer"));
+        assertThat(leafInfo2.getName(), is("beer"));
     }
 }
