[ONOS-4547, ONOS-4566, ONOS-4575, ONOS-4582, ONOS-4581, ONOS-4600,
ONOS-4598, ONOS-4607, ONOS-4610, ONOS-4611] Prefix addition from config
and defect fixes.
Change-Id: Ieaab5d3e0fe9a1bfa24a2527eeec5435cf0a1b85
diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java
index cebd680..874f8ed 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java
@@ -52,4 +52,34 @@
thrown.expectMessage("YANG file error : \"anyxml\" is not supported.");
manager.getDataModel("src/test/resources/AnyxmlStatement.yang");
}
+
+ /**
+ * Checks whether exception is thrown when extra brace is added in the EOF.
+ */
+ @Test
+ public void processFileWithExtraBrace() throws IOException, ParserException {
+ thrown.expect(ParserException.class);
+ thrown.expectMessage("mismatched input '}' expecting <EOF>");
+ manager.getDataModel("src/test/resources/ProcessFileWithExtraBrace.yang");
+ }
+
+ /**
+ * Checks whether exception is thrown when leaf is given after module ends.
+ */
+ @Test
+ public void processFileWithExtraLeaf() throws IOException, ParserException {
+ thrown.expect(ParserException.class);
+ thrown.expectMessage("mismatched input 'leaf' expecting <EOF>");
+ manager.getDataModel("src/test/resources/ProcessFileWithExtraLeaf.yang");
+ }
+
+ /**
+ * Checks whether exception is thrown when extra brace is added in between the EOF.
+ */
+ @Test
+ public void processFileWithExtraBraceInBetween() throws IOException, ParserException {
+ thrown.expect(ParserException.class);
+ thrown.expectMessage("mismatched input 'container' expecting <EOF>");
+ manager.getDataModel("src/test/resources/ProcessFileWithExtraBraceInBetween.yang");
+ }
}
diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
index ae15d0c..3df9c13 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
@@ -267,4 +267,36 @@
assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(0)));
assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(100)));
}
+
+ /**
+ * Checks whether space can be allowed when length statement is present.
+ */
+ @Test
+ public void processLengthStatementWithSpace() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/LengthStatementWithSpace.yang");
+
+ assertThat((node instanceof YangModule), is(true));
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leafInfo = leafIterator.next();
+
+ assertThat(leafInfo.getName(), is("invalid-interval"));
+ assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
+ assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
+ YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo
+ .getDataType().getDataTypeExtendedInfo();
+ YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction();
+
+ ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
+ .listIterator();
+
+ YangRangeInterval rangeInterval = lengthListIterator.next();
+
+ assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(0)));
+ assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(100)));
+ }
}
diff --git a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListenerTest.java b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListenerTest.java
index 88672fd..466bb97 100644
--- a/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListenerTest.java
+++ b/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListenerTest.java
@@ -207,4 +207,33 @@
assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
}
+
+ /**
+ * Checks whether space can be allowed when range statement is present.
+ */
+ @Test
+ public void processRangeStatementWithSpace() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/RangeStatementWithSpace.yang");
+
+ assertThat((node instanceof YangModule), is(true));
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leafInfo = leafIterator.next();
+
+ assertThat(leafInfo.getName(), is("invalid-interval"));
+ assertThat(leafInfo.getDataType().getDataTypeName(), is("int32"));
+ assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
+ YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafInfo
+ .getDataType().getDataTypeExtendedInfo();
+
+ ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals()
+ .listIterator();
+ YangRangeInterval rangeInterval = rangeListIterator.next();
+ assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(1));
+ assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
+ }
}
diff --git a/src/test/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataTypeTest.java b/src/test/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataTypeTest.java
index 11a2fa2..85aac96 100644
--- a/src/test/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataTypeTest.java
+++ b/src/test/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataTypeTest.java
@@ -59,6 +59,7 @@
private static final String CLASS_INFO5 = "Integer";
private static final String TYPE_DEF_PKG = "target.test";
private static String test = "";
+ private static YangToJavaNamingConflictUtil pluginConfig = null;
/**
* Unit test for private constructor.
@@ -88,7 +89,6 @@
*/
@Test
public void testgetJavaClassInfo() {
- YangToJavaNamingConflictUtil pluginConfig = null;
test = getJavaImportClass(getStubYangType(TYPE1), false, pluginConfig);
assertThat(true, is(test.equals(CLASS_INFO1)));
@@ -125,16 +125,16 @@
*/
@Test
public void testgetJavaPkgInfo() {
- test = getJavaImportPackage(getStubYangType(TYPE1), false, CLASS_INFO1);
+ test = getJavaImportPackage(getStubYangType(TYPE1), false, CLASS_INFO1, pluginConfig);
assertThat(true, is(test.equals(JAVA_LANG)));
- test = getJavaImportPackage(getStubYangType(TYPE2), true, CLASS_INFO5);
+ test = getJavaImportPackage(getStubYangType(TYPE2), true, CLASS_INFO5, pluginConfig);
assertThat(true, is(test.equals(JAVA_LANG)));
- test = getJavaImportPackage(getStubYangType(TYPE3), false, CLASS_INFO3);
+ test = getJavaImportPackage(getStubYangType(TYPE3), false, CLASS_INFO3, pluginConfig);
assertThat(null, is(test));
- test = getJavaImportPackage(getStubYangType(TYPE4), false, CLASS_INFO4);
+ test = getJavaImportPackage(getStubYangType(TYPE4), false, CLASS_INFO4, pluginConfig);
assertThat(null, is(test));
}
@@ -145,7 +145,7 @@
*/
@Test
public void testForTypeDef() throws DataModelException {
- test = getJavaImportPackage(getStubExtendedInfo(getStubYangType(TYPE_DEF)), false, TYPE_DEF_PKG);
+ test = getJavaImportPackage(getStubExtendedInfo(getStubYangType(TYPE_DEF)), false, TYPE_DEF_PKG, pluginConfig);
assertThat(true, is(test.equals(TYPE_DEF_PKG)));
}
diff --git a/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntaxTest.java b/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntaxTest.java
index a3b9200..6b86b9c 100644
--- a/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntaxTest.java
+++ b/src/test/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntaxTest.java
@@ -19,7 +19,10 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.onosproject.yangutils.translator.exception.TranslatorException;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNot.not;
@@ -38,6 +41,9 @@
*/
public final class JavaIdentifierSyntaxTest {
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
private static final String PARENT_PACKAGE = "test5/test6/test7";
private static final String CHILD_PACKAGE = "test1:test2:test3";
private static final String DATE1 = "2000-1-5";
@@ -47,10 +53,17 @@
private static final String DATE_WITH_REV1 = "rev20000105";
private static final String DATE_WITH_REV2 = "rev19920125";
private static final String VERSION_NUMBER = "v1";
+ private static final String VALID_PREFIX = "123add-prefix";
+ private static final String INVALID_PREFIX = "-*()&^&#$%";
+ private static final String INVALID_PREFIX1 = "abc~!@#$%^&*()_+}{:<>?`1234567890-=[]''|,./SS";
+ private static final String INVALID_NAME_SPACE_FOR_INVALID_PREFIX = "try:#test3:9case3";
private static final String INVALID_NAME_SPACE1 = "byte:#test2:9test3";
private static final String INVALID_NAME_SPACE2 = "const:#test2://9test3";
- private static final String VALID_NAME_SPACE1 = "yangautoprefixbyte.test2.yangautoprefix9test3";
+ private static final String INVALID_NAME_SPACE3 = "CONST:TRY://9test3";
+ private static final String VALID_NAME_SPACE1 = "123addprefixbyte.test2.123addprefix9test3";
private static final String VALID_NAME_SPACE2 = "yangautoprefixconst.test2.yangautoprefix9test3";
+ private static final String VALID_NAME_SPACE3 = "abc1234567890ssconst.test2.abc1234567890ss9test3";
+ private static final String VALID_NAME_SPACE4 = "yangautoprefixconst.yangautoprefixtry.yangautoprefix9test3";
private static final String WITHOUT_CAMEL_CASE = "test-camel-case-identifier";
private static final String WITH_CAMEL_CASE = "testCamelCaseIdentifier";
private static final String WITHOUT_CAMEL_CASE1 = ".-_try-._-.123";
@@ -77,9 +90,16 @@
private static final String WITH_CAMEL_CASE11 = "test3Name";
private static final String WITHOUT_CAMEL_CASE12 = "TEST3name";
private static final String WITH_CAMEL_CASE12 = "test3Name";
+ private static final String WITHOUT_CAMEL_CASE13 = "t-RY";
+ private static final String WITH_CAMEL_CASE13 = "tRy";
+ private static final String WITHOUT_CAMEL_CASE14 = "TRY";
+ private static final String WITH_CAMEL_CASE14 = "yangAutoPrefixTry";
private static final String WITHOUT_CAPITAL = "test_this";
private static final String WITH_CAPITAL = "Test_this";
private static final String WITH_SMALL = "test_this";
+ private static final String WITH_CAMEL_CASE_WITH_PREFIX = "123addPrefixTry";
+ private static final String WITH_CAMEL_CASE_WITH_PREFIX1 = "abc1234567890Ss1123G123Gaa";
+ private static YangToJavaNamingConflictUtil conflictResolver = new YangToJavaNamingConflictUtil();
/**
* Unit test for private constructor.
@@ -111,22 +131,44 @@
*/
@Test
public void getRootPackageTest() {
- String rootPackage = getRootPackage((byte) 1, CHILD_PACKAGE, DATE1);
+ conflictResolver.setPrefixForIdentifier(null);
+ String rootPackage = getRootPackage((byte) 1, CHILD_PACKAGE, DATE1, conflictResolver);
assertThat(rootPackage.equals(DEFAULT_BASE_PKG + PERIOD + VERSION_NUMBER
+ PERIOD + CHILD_WITH_PERIOD + PERIOD + DATE_WITH_REV1), is(true));
}
/**
+ * Unit test for root package generation with invalid prefix.
+ */
+ @Test
+ public void getRootPackageWithInvalidPrefix() throws TranslatorException {
+ thrown.expect(TranslatorException.class);
+ thrown.expectMessage("The given prefix in pom.xml is invalid.");
+ conflictResolver.setPrefixForIdentifier(INVALID_PREFIX);
+ String rootPackage1 = getRootPackage((byte) 1, INVALID_NAME_SPACE_FOR_INVALID_PREFIX, DATE1, conflictResolver);
+ }
+
+ /**
* Unit test for root package generation with special characters presence.
*/
@Test
public void getRootPackageWithSpecialCharactersTest() {
- String rootPackage = getRootPackage((byte) 1, INVALID_NAME_SPACE1, DATE1);
+ conflictResolver.setPrefixForIdentifier(VALID_PREFIX);
+ String rootPackage = getRootPackage((byte) 1, INVALID_NAME_SPACE1, DATE1, conflictResolver);
assertThat(rootPackage.equals(DEFAULT_BASE_PKG + PERIOD + VERSION_NUMBER
+ PERIOD + VALID_NAME_SPACE1 + PERIOD + DATE_WITH_REV1), is(true));
- String rootPackage1 = getRootPackage((byte) 1, INVALID_NAME_SPACE2, DATE1);
+ conflictResolver.setPrefixForIdentifier(null);
+ String rootPackage1 = getRootPackage((byte) 1, INVALID_NAME_SPACE2, DATE1, conflictResolver);
assertThat(rootPackage1.equals(DEFAULT_BASE_PKG + PERIOD + VERSION_NUMBER
+ PERIOD + VALID_NAME_SPACE2 + PERIOD + DATE_WITH_REV1), is(true));
+ String rootPackage2 = getRootPackage((byte) 1, INVALID_NAME_SPACE3, DATE1, conflictResolver);
+ assertThat(rootPackage2.equals(DEFAULT_BASE_PKG + PERIOD + VERSION_NUMBER
+ + PERIOD + VALID_NAME_SPACE4 + PERIOD + DATE_WITH_REV1), is(true));
+ conflictResolver.setPrefixForIdentifier(INVALID_PREFIX1);
+ String rootPackage3 = getRootPackage((byte) 1, INVALID_NAME_SPACE2, DATE1, conflictResolver);
+ assertThat(rootPackage3.equals(DEFAULT_BASE_PKG + PERIOD + VERSION_NUMBER
+ + PERIOD + VALID_NAME_SPACE3 + PERIOD + DATE_WITH_REV1), is(true));
+
}
/**
@@ -134,7 +176,7 @@
*/
@Test
public void getRootPackageWithRevTest() {
- String rootPkgWithRev = getRootPackage((byte) 1, CHILD_PACKAGE, DATE2);
+ String rootPkgWithRev = getRootPackage((byte) 1, CHILD_PACKAGE, DATE2, null);
assertThat(rootPkgWithRev.equals(
DEFAULT_BASE_PKG + PERIOD + VERSION_NUMBER + PERIOD + CHILD_WITH_PERIOD + PERIOD + DATE_WITH_REV2),
is(true));
@@ -154,32 +196,63 @@
*/
@Test
public void getCamelCaseTest() {
- String camelCase = getCamelCase(WITHOUT_CAMEL_CASE, null);
+ conflictResolver.setPrefixForIdentifier(null);
+ String camelCase = getCamelCase(WITHOUT_CAMEL_CASE, conflictResolver);
assertThat(camelCase.equals(WITH_CAMEL_CASE), is(true));
- String camelCase1 = getCamelCase(WITHOUT_CAMEL_CASE1, null);
+ String camelCase1 = getCamelCase(WITHOUT_CAMEL_CASE1, conflictResolver);
assertThat(camelCase1.equals(WITH_CAMEL_CASE1), is(true));
- String camelCase2 = getCamelCase(WITHOUT_CAMEL_CASE2, null);
+ String camelCase2 = getCamelCase(WITHOUT_CAMEL_CASE2, conflictResolver);
assertThat(camelCase2.equals(WITH_CAMEL_CASE2), is(true));
- String camelCase3 = getCamelCase(WITHOUT_CAMEL_CASE3, null);
+ String camelCase3 = getCamelCase(WITHOUT_CAMEL_CASE3, conflictResolver);
assertThat(camelCase3.equals(WITH_CAMEL_CASE3), is(true));
- String camelCase4 = getCamelCase(WITHOUT_CAMEL_CASE4, null);
+ String camelCase4 = getCamelCase(WITHOUT_CAMEL_CASE4, conflictResolver);
assertThat(camelCase4.equals(WITH_CAMEL_CASE4), is(true));
- String camelCase5 = getCamelCase(WITHOUT_CAMEL_CASE5, null);
+ String camelCase5 = getCamelCase(WITHOUT_CAMEL_CASE5, conflictResolver);
assertThat(camelCase5.equals(WITH_CAMEL_CASE5), is(true));
- String camelCase6 = getCamelCase(WITHOUT_CAMEL_CASE6, null);
+ String camelCase6 = getCamelCase(WITHOUT_CAMEL_CASE6, conflictResolver);
assertThat(camelCase6.equals(WITH_CAMEL_CASE6), is(true));
- String camelCase7 = getCamelCase(WITHOUT_CAMEL_CASE7, null);
+ String camelCase7 = getCamelCase(WITHOUT_CAMEL_CASE7, conflictResolver);
assertThat(camelCase7.equals(WITH_CAMEL_CASE7), is(true));
- String camelCase8 = getCamelCase(WITHOUT_CAMEL_CASE8, null);
+ String camelCase8 = getCamelCase(WITHOUT_CAMEL_CASE8, conflictResolver);
assertThat(camelCase8.equals(WITH_CAMEL_CASE8), is(true));
- String camelCase9 = getCamelCase(WITHOUT_CAMEL_CASE9, null);
+ String camelCase9 = getCamelCase(WITHOUT_CAMEL_CASE9, conflictResolver);
assertThat(camelCase9.equals(WITH_CAMEL_CASE9), is(true));
- String camelCase10 = getCamelCase(WITHOUT_CAMEL_CASE10, null);
+ String camelCase10 = getCamelCase(WITHOUT_CAMEL_CASE10, conflictResolver);
assertThat(camelCase10.equals(WITH_CAMEL_CASE10), is(true));
- String camelCase11 = getCamelCase(WITHOUT_CAMEL_CASE11, null);
+ String camelCase11 = getCamelCase(WITHOUT_CAMEL_CASE11, conflictResolver);
assertThat(camelCase11.equals(WITH_CAMEL_CASE11), is(true));
- String camelCase12 = getCamelCase(WITHOUT_CAMEL_CASE12, null);
+ String camelCase12 = getCamelCase(WITHOUT_CAMEL_CASE12, conflictResolver);
assertThat(camelCase12.equals(WITH_CAMEL_CASE12), is(true));
+ String camelCase13 = getCamelCase(WITHOUT_CAMEL_CASE13, conflictResolver);
+ assertThat(camelCase13.equals(WITH_CAMEL_CASE13), is(true));
+ String camelCase14 = getCamelCase(WITHOUT_CAMEL_CASE14, conflictResolver);
+ assertThat(camelCase14.equals(WITH_CAMEL_CASE14), is(true));
+ }
+
+ /**
+ * Unit test for getting the camel case along with the prefix provided.
+ */
+ @Test
+ public void getCamelCaseWithPrefixTest() {
+
+ conflictResolver.setPrefixForIdentifier(VALID_PREFIX);
+ String camelCase = getCamelCase(WITHOUT_CAMEL_CASE2, conflictResolver);
+ assertThat(camelCase.equals(WITH_CAMEL_CASE_WITH_PREFIX), is(true));
+ conflictResolver.setPrefixForIdentifier(INVALID_PREFIX1);
+ String camelCase2 = getCamelCase(WITHOUT_CAMEL_CASE3, conflictResolver);
+ assertThat(camelCase2.equals(WITH_CAMEL_CASE_WITH_PREFIX1), is(true));
+ }
+
+ /**
+ * Unit test for getting the camel case along with the invalid prefix provided.
+ */
+ @Test
+ public void getCamelCaseWithInvalidPrefixTest() throws TranslatorException {
+
+ thrown.expect(TranslatorException.class);
+ thrown.expectMessage("The given prefix in pom.xml is invalid.");
+ conflictResolver.setPrefixForIdentifier(INVALID_PREFIX);
+ String camelCase = getCamelCase(WITHOUT_CAMEL_CASE3, conflictResolver);
}
/**