ST defect fixes and review comments fixes
Change-Id: Ib8c56a88c19cd9aa23918d0f9e37c89e74cb0d13
diff --git a/src/test/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGeneratorTest.java b/src/test/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGeneratorTest.java
index 5ee059c..91a723f 100644
--- a/src/test/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGeneratorTest.java
+++ b/src/test/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGeneratorTest.java
@@ -16,18 +16,18 @@
package org.onosproject.yangutils.translator.tojava.utils;
+import org.junit.Test;
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertNotNull;
+import org.onosproject.yangutils.datamodel.YangDataTypes;
+import org.onosproject.yangutils.datamodel.YangType;
+import org.onosproject.yangutils.translator.tojava.AttributeInfo;
+import org.onosproject.yangutils.translator.tojava.ImportInfo;
+import org.onosproject.yangutils.utils.UtilConstants;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
-import org.junit.Test;
-import org.onosproject.yangutils.datamodel.YangType;
-import org.onosproject.yangutils.translator.GeneratedFileType;
-import org.onosproject.yangutils.translator.tojava.AttributeInfo;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-
/**
* Unit tests for generated methods from the file type.
*/
@@ -42,19 +42,15 @@
* @throws SecurityException if any security violation is observed
* @throws NoSuchMethodException if when the method is not found
* @throws IllegalArgumentException if there is illegal argument found
- * @throws InstantiationException if instantiation is provoked for the
- * private constructor
- * @throws IllegalAccessException if instance is provoked or a method is
- * provoked
- * @throws InvocationTargetException when an exception occurs by the method
- * or constructor
+ * @throws InstantiationException if instantiation is provoked for the private constructor
+ * @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 {
+ InstantiationException, IllegalAccessException, InvocationTargetException {
- Class<?>[] classesToConstruct = {
- MethodsGenerator.class };
+ Class<?>[] classesToConstruct = {MethodsGenerator.class };
for (Class<?> clazz : classesToConstruct) {
Constructor<?> constructor = clazz.getDeclaredConstructor();
constructor.setAccessible(true);
@@ -63,27 +59,100 @@
}
/**
- * Unit test for checking the values received from constructor, default
- * constructor and build string formation.
+ * Unit test case for checking the parse builder and typedef constructor.
+ */
+ @Test
+ public void getParseBuilderInterfaceMethodConstructorTest() {
+ ImportInfo forSetter = new ImportInfo();
+ attrType.setDataTypeName("binary");
+ attrType.getDataTypeName();
+ attrType.setDataType(YangDataTypes.BINARY);
+ attrType.getDataType();
+ testAttr.setAttributeName("attributeTest");
+ testAttr.setAttributeType(attrType);
+ forSetter.setPkgInfo("test1/test3");
+ forSetter.setClassInfo("This class contains");
+ testAttr.setImportInfo(forSetter);
+ String parseBuilderInterface = MethodsGenerator.parseBuilderInterfaceMethodString(testAttr, "newTestName");
+ assertThat(parseBuilderInterface.contains("attributeTest") && parseBuilderInterface.contains("newTestName"),
+ is(true));
+ String parseBuilderInterfaceBuild = MethodsGenerator.parseBuilderInterfaceBuildMethodString("testname7");
+ assertThat(parseBuilderInterfaceBuild.contains("Builds object of")
+ && parseBuilderInterfaceBuild.contains("testname7"), is(true));
+ String stringTypeDef = MethodsGenerator.getTypeDefConstructor(testAttr, "Testname");
+ }
+
+ /**
+ * Unit test case for checking the values received from constructor, default constructor and build string formation.
*/
@Test
public void getValuesTest() {
String stringConstructor = MethodsGenerator.getConstructorString("testname");
- assertThat(
- stringConstructor.contains("Construct the object of testnameImpl.")
- && stringConstructor.contains("@param testnameObject builder object of testname")
- && stringConstructor.contains("public testnameImpl(testnameBuilder testnameObject) {"),
- is(true));
- String stringDefaultConstructor = MethodsGenerator.getDefaultConstructorString(
- GeneratedFileType.BUILDER_CLASS_MASK,
- "testname");
- assertThat(stringDefaultConstructor.contains("Default Constructor.")
- && stringDefaultConstructor.contains("public testnameBuilder() {")
- && stringDefaultConstructor.contains("}"), is(true));
+ assertThat(stringConstructor.contains(UtilConstants.JAVA_DOC_CONSTRUCTOR)
+ && stringConstructor.contains(UtilConstants.JAVA_DOC_PARAM)
+ && stringConstructor.contains(UtilConstants.BUILDER_OBJECT), is(true));
+ String stringDefaultConstructor = MethodsGenerator.getDefaultConstructorString("testnameBuilder", "public");
+ assertThat(stringDefaultConstructor.contains(UtilConstants.JAVA_DOC_DEFAULT_CONSTRUCTOR)
+ && stringDefaultConstructor.contains(UtilConstants.BUILDER)
+ && stringDefaultConstructor.contains("testname"), is(true));
String stringBuild = MethodsGenerator.getBuildString("testname");
- assertThat(
- stringBuild.contains("public testname build() {")
- && stringBuild.contains("return new testnameImpl(this);") && stringBuild.contains("}"),
- is(true));
+ assertThat(stringBuild.contains(UtilConstants.OVERRIDE) && stringBuild.contains(UtilConstants.BUILD)
+ && stringBuild.contains(UtilConstants.RETURN), is(true));
+
}
-}
\ No newline at end of file
+
+ /**
+ * Unit test for checking the values received for class getter, class and typedef setters with list data type.
+ */
+ @Test
+ public void getGetterSetterTest() {
+
+ ImportInfo forGetterSetter = new ImportInfo();
+ attrType.setDataTypeName("int");
+ attrType.getDataTypeName();
+ attrType.setDataType(YangDataTypes.UINT8);
+ attrType.getDataType();
+ testAttr.setAttributeName("AttributeTest1");
+ testAttr.setAttributeType(attrType);
+ forGetterSetter.setPkgInfo(null);
+ forGetterSetter.setClassInfo("This class contains");
+ testAttr.setImportInfo(forGetterSetter);
+ testAttr.setListAttr(true);
+ String getterForClass = MethodsGenerator.getGetterForClass(testAttr);
+ assertThat(getterForClass.contains(UtilConstants.GET_METHOD_PREFIX) && getterForClass.contains("List<")
+ && getterForClass.contains("attributeTest1"), is(true));
+ String setterForClass = MethodsGenerator.getSetterForClass(testAttr, "TestThis");
+ assertThat(setterForClass.contains(UtilConstants.SET_METHOD_PREFIX) && setterForClass.contains("List<")
+ && setterForClass.contains("attributeTest1"), is(true));
+ String typeDefSetter = MethodsGenerator.getSetterForTypeDefClass(testAttr);
+ assertThat(typeDefSetter.contains(UtilConstants.SET_METHOD_PREFIX) && typeDefSetter.contains("List<")
+ && typeDefSetter.contains("attributeTest1") && typeDefSetter.contains("this."), is(true));
+ }
+
+ /**
+ * Unit test case for checking the parse builder and typedef constructor with list data type.
+ */
+ @Test
+ public void getConstructorWithListTypeTest() {
+ ImportInfo forSetter = new ImportInfo();
+ attrType.setDataTypeName("binary");
+ attrType.getDataTypeName();
+ attrType.setDataType(YangDataTypes.BINARY);
+ attrType.getDataType();
+ testAttr.setAttributeName("attributeTest");
+ testAttr.setAttributeType(attrType);
+ forSetter.setPkgInfo(null);
+ forSetter.setClassInfo("This class contains");
+ testAttr.setImportInfo(forSetter);
+ testAttr.setListAttr(true);
+ String parseBuilderInterface = MethodsGenerator.parseBuilderInterfaceMethodString(testAttr, "newTestName");
+ assertThat(parseBuilderInterface.contains("attributeTest") && parseBuilderInterface.contains("List<"),
+ is(true));
+ String parseBuilderInterfaceBuild = MethodsGenerator.parseBuilderInterfaceBuildMethodString("testname7");
+ assertThat(parseBuilderInterfaceBuild.contains("Builds object of")
+ && parseBuilderInterfaceBuild.contains("testname7"), is(true));
+ String stringTypeDef = MethodsGenerator.getTypeDefConstructor(testAttr, "Testname");
+ assertThat(stringTypeDef.contains("(List<") && stringTypeDef.contains("Testname")
+ && stringTypeDef.contains(UtilConstants.THIS), is(true));
+ }
+}