Defect Fix for namespace with special character support in YANG

Change-Id: I8cc5b9dce58023c5965b07ac36cc4b5858f91699
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntaxTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntaxTest.java
index bd55acb..6e89d936 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntaxTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntaxTest.java
@@ -17,6 +17,8 @@
 package org.onosproject.yangutils.translator.tojava.utils;
 
 import org.junit.Test;
+import org.onosproject.yangutils.utils.UtilConstants;
+
 import static org.junit.Assert.assertNotNull;
 import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertThat;
@@ -28,6 +30,24 @@
  */
 public final class JavaIdentifierSyntaxTest {
 
+    public static final String PARENT_PACKAGE = "test5.test6.test7";
+    public static final String CHILD_PACKAGE = "test1:test2:test3";
+    public static final String DATE1 = "2000-1-5";
+    public static final String DATE2 = "1992-01-25";
+    public static final String PARENT_WITH_PERIOD = "test5.test6.test7";
+    public static final String CHILD_WITH_PERIOD = "test1.test2.test3";
+    public static final String DATE_WITH_REV1 = "rev000105";
+    public static final String DATE_WITH_REV2 = "rev920125";
+    public static final String VERSION_NUMBER = "v1";
+    public static final String INVALID_NAME_SPACE1 = "byte:#test2:9test3";
+    public static final String INVALID_NAME_SPACE2 = "const:#test2://9test3";
+    public static final String VALID_NAME_SPACE1 = "_byte.test2._9test3";
+    public static final String VALID_NAME_SPACE2 = "_const.test2._9test3";
+    public static final String WITHOUT_CAMEL_CASE = "test-camel-case-identifier";
+    public static final String WITH_CAMEL_CASE = "testCamelCaseIdentifier";
+    public static final String WITHOUT_CAPITAL = "test_this";
+    public static final String WITH_CAPITAL = "Test_this";
+
     /**
      * Unit test for private constructor.
      *
@@ -38,6 +58,7 @@
      * @throws IllegalAccessException if instance is provoked or a method is provoked.
      * @throws InvocationTargetException when an exception occurs by the method or constructor.
      */
+    @Test
     public void callPrivateConstructors() throws SecurityException, NoSuchMethodException, IllegalArgumentException,
     InstantiationException, IllegalAccessException, InvocationTargetException {
         Class<?>[] classesToConstruct = {JavaIdentifierSyntax.class };
@@ -53,8 +74,8 @@
      */
     @Test
     public void getPackageFromParentTest() {
-        String pkgFromParent = JavaIdentifierSyntax.getPackageFromParent("test5.test6.test7", "test1:test2:test3");
-        assertThat(pkgFromParent.equals("test5.test6.test7.test1.test2.test3"), is(true));
+        String pkgFromParent = JavaIdentifierSyntax.getPackageFromParent(PARENT_PACKAGE, CHILD_PACKAGE);
+        assertThat(pkgFromParent.equals(PARENT_WITH_PERIOD + UtilConstants.PERIOD + CHILD_WITH_PERIOD), is(true));
     }
 
     /**
@@ -63,18 +84,35 @@
     @Test
     public void getRootPackageTest() {
 
-        String rootPackage = JavaIdentifierSyntax.getRootPackage((byte) 0, "test1:test2:test3", "5-1-2000");
-        assertThat(rootPackage.equals("org.onosproject.yang.gen.v0.test1.test2.test3.rev05012000"), is(true));
+        String rootPackage = JavaIdentifierSyntax.getRootPackage((byte) 1, CHILD_PACKAGE, DATE1);
+        assertThat(rootPackage.equals(UtilConstants.DEFAULT_BASE_PKG + UtilConstants.PERIOD + VERSION_NUMBER
+                + UtilConstants.PERIOD + CHILD_WITH_PERIOD + UtilConstants.PERIOD + DATE_WITH_REV1), is(true));
     }
 
     /**
-     * Unit test for root package generation without revision complexity.
+     * Unit test for root package generation with special characters presence.
+     */
+    @Test
+    public void getRootPackageWithSpecialCharactersTest() {
+
+        String rootPackage = JavaIdentifierSyntax.getRootPackage((byte) 1, INVALID_NAME_SPACE1, DATE1);
+        assertThat(rootPackage.equals(UtilConstants.DEFAULT_BASE_PKG + UtilConstants.PERIOD + VERSION_NUMBER
+                + UtilConstants.PERIOD + VALID_NAME_SPACE1 + UtilConstants.PERIOD + DATE_WITH_REV1), is(true));
+        String rootPackage1 = JavaIdentifierSyntax.getRootPackage((byte) 1, INVALID_NAME_SPACE2, DATE1);
+        assertThat(rootPackage1.equals(UtilConstants.DEFAULT_BASE_PKG + UtilConstants.PERIOD + VERSION_NUMBER
+                + UtilConstants.PERIOD + VALID_NAME_SPACE2 + UtilConstants.PERIOD + DATE_WITH_REV1), is(true));
+    }
+
+    /**
+     * Unit test for root package generation without complexity in revision.
      */
     @Test
     public void getRootPackageWithRevTest() {
 
-        String rootPkgWithRev = JavaIdentifierSyntax.getRootPackage((byte) 0, "test1:test2:test3", "25-01-1992");
-        assertThat(rootPkgWithRev.equals("org.onosproject.yang.gen.v0.test1.test2.test3.rev25011992"), is(true));
+        String rootPkgWithRev = JavaIdentifierSyntax.getRootPackage((byte) 1, CHILD_PACKAGE, DATE2);
+        assertThat(rootPkgWithRev.equals(UtilConstants.DEFAULT_BASE_PKG + UtilConstants.PERIOD
+                + VERSION_NUMBER + UtilConstants.PERIOD + CHILD_WITH_PERIOD + UtilConstants.PERIOD + DATE_WITH_REV2),
+                is(true));
     }
 
     /**
@@ -83,8 +121,8 @@
     @Test
     public void getCapitalCaseTest() {
 
-        String capitalCase = JavaIdentifierSyntax.getCaptialCase("test_this");
-        assertThat(capitalCase.equals("Test_this"), is(true));
+        String capitalCase = JavaIdentifierSyntax.getCaptialCase(WITHOUT_CAPITAL);
+        assertThat(capitalCase.equals(WITH_CAPITAL), is(true));
     }
 
     /**
@@ -92,7 +130,7 @@
      */
     @Test
     public void getCamelCaseTest() {
-        String camelCase = JavaIdentifierSyntax.getCamelCase("test-camel-case-identifier");
-        assertThat(camelCase.equals("testCamelCaseIdentifier"), is(true));
+        String camelCase = JavaIdentifierSyntax.getCamelCase(WITHOUT_CAMEL_CASE);
+        assertThat(camelCase.equals(WITH_CAMEL_CASE), is(true));
     }
 }