[ONOS-3908] YANG container translator.

Change-Id: I4e239509df747238905ca0995f41019679093627
diff --git a/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGenTest.java b/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGenTest.java
new file mode 100644
index 0000000..bf73689
--- /dev/null
+++ b/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGenTest.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.translator.tojava.utils;
+
+import org.junit.Test;
+import org.onosproject.yangutils.datamodel.YangDataTypes;
+import org.onosproject.yangutils.datamodel.YangType;
+import org.onosproject.yangutils.translator.GeneratedFileType;
+import org.onosproject.yangutils.translator.tojava.GeneratedMethodTypes;
+import org.onosproject.yangutils.translator.tojava.ImportInfo;
+import org.onosproject.yangutils.utils.UtilConstants;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+
+/**
+ * Unit test cases for java code snippet generator.
+ */
+public class JavaCodeSnippetGenTest {
+
+    private static final String PKG_INFO = "org.onosproject.unittest";
+    private static final String CLASS_INFO = "JavaCodeSnippetGenTest";
+    private static final GeneratedFileType FILE_GEN_TYPE = GeneratedFileType.INTERFACE;
+    private static final GeneratedMethodTypes METHOD_GEN_TYPE = GeneratedMethodTypes.GETTER;
+    private static final String YANG_NAME = "Test";
+    private static final String STRING = "String";
+
+    /**
+     * Unit test case for import text.
+     */
+    @Test
+    public void testForImportText() {
+        ImportInfo importInfo = new ImportInfo();
+        importInfo.setPkgInfo(PKG_INFO);
+        importInfo.setClassInfo(CLASS_INFO);
+
+        String imports = JavaCodeSnippetGen.getImportText(importInfo);
+
+        assertThat(true, is(imports.equals(UtilConstants.IMPORT + PKG_INFO + UtilConstants.PERIOD + CLASS_INFO
+                + UtilConstants.SEMI_COLAN + UtilConstants.NEW_LINE)));
+    }
+
+    /**
+     * Unit test case for java class definition start.
+     */
+    @Test
+    public void testForJavaClassDefStart() {
+        String classDef = JavaCodeSnippetGen.getJavaClassDefStart(FILE_GEN_TYPE, YANG_NAME);
+        assertThat(true,
+                is(classDef.equals(UtilConstants.PUBLIC + UtilConstants.SPACE + UtilConstants.INTERFACE
+                        + UtilConstants.SPACE + YANG_NAME + UtilConstants.SPACE + UtilConstants.OPEN_CURLY_BRACKET
+                        + UtilConstants.NEW_LINE)));
+    }
+
+    /**
+     * Unit test case for java attribute info.
+     */
+    @SuppressWarnings("rawtypes")
+    @Test
+    public void testForJavaAttributeInfo() {
+
+        String attributeWithType = JavaCodeSnippetGen.getJavaAttributeInfo(FILE_GEN_TYPE, YANG_NAME, getType());
+        assertThat(true, is(attributeWithType.equals(UtilConstants.PRIVATE + UtilConstants.SPACE
+                + getType().getDataTypeName() + UtilConstants.SPACE + YANG_NAME + UtilConstants.SEMI_COLAN)));
+
+        String attributeWithoutType = JavaCodeSnippetGen.getJavaAttributeInfo(FILE_GEN_TYPE, YANG_NAME, null);
+        assertThat(true,
+                is(attributeWithoutType.equals(
+                        UtilConstants.PRIVATE + UtilConstants.SPACE + JavaIdentifierSyntax.getCaptialCase(YANG_NAME)
+                        + UtilConstants.SPACE + YANG_NAME + UtilConstants.SEMI_COLAN)));
+
+    }
+
+    /**
+     * Unit test case for list attribute.
+     */
+    @Test
+    public void testForListAttribute() {
+        String listAttribute = JavaCodeSnippetGen.getListAttribute(STRING);
+        assertThat(true, is(listAttribute.equals(UtilConstants.LIST + UtilConstants.DIAMOND_OPEN_BRACKET + STRING
+                + UtilConstants.DIAMOND_CLOSE_BRACKET)));
+    }
+
+    /**
+     * Unit test case for java method info.
+     */
+    @Test
+    public void testForJavaMethodInfo() {
+
+        String method = JavaCodeSnippetGen.getJavaMethodInfo(FILE_GEN_TYPE, YANG_NAME, METHOD_GEN_TYPE, getType());
+        assertThat(true,
+                is(method.equals(UtilConstants.FOUR_SPACE_INDENTATION
+                        + JavaIdentifierSyntax.getCaptialCase(getType().getDataTypeName()) + UtilConstants.SPACE
+                        + UtilConstants.GET_METHOD_PREFIX + JavaIdentifierSyntax.getCaptialCase(YANG_NAME)
+                        + UtilConstants.OPEN_PARENTHESIS + UtilConstants.CLOSE_PARENTHESIS
+                        + UtilConstants.SEMI_COLAN)));
+    }
+
+    /**
+     * Unit test case for java class definition close.
+     */
+    @Test
+    public void testForJavaClassDefClose() {
+        String classDef = JavaCodeSnippetGen.getJavaClassDefClose(FILE_GEN_TYPE, YANG_NAME);
+        assertThat(true, is(classDef.equals(UtilConstants.CLOSE_CURLY_BRACKET)));
+    }
+
+    /**
+     * Returns YANG type.
+     *
+     * @return type
+     */
+    @SuppressWarnings("rawtypes")
+    private YangType<?> getType() {
+        YangType<?> type = new YangType();
+        type.setDataTypeName(STRING);
+        type.setDataType(YangDataTypes.STRING);
+        return type;
+    }
+}