addition of union & enum for data validation.
Change-Id: I82b94e5c934097f233da3a9b05449a8737c5c575
diff --git a/compiler/base/datamodel/src/test/java/org/onosproject/yang/compiler/datamodel/CheckValidationTest.java b/compiler/base/datamodel/src/test/java/org/onosproject/yang/compiler/datamodel/CheckValidationTest.java
index 1827aba..a442189 100644
--- a/compiler/base/datamodel/src/test/java/org/onosproject/yang/compiler/datamodel/CheckValidationTest.java
+++ b/compiler/base/datamodel/src/test/java/org/onosproject/yang/compiler/datamodel/CheckValidationTest.java
@@ -21,13 +21,12 @@
import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangUint16;
import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangUint32;
import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangUint64;
+import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangUint8;
import java.math.BigDecimal;
import java.math.BigInteger;
import static org.junit.Assert.assertEquals;
-import static org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangInt8.MAX_VALUE;
-import static org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangInt8.MIN_VALUE;
/**
* Utility class to check error messages.
@@ -35,8 +34,6 @@
final class CheckValidationTest {
private static final String E_MESS = "Exception has not occurred for " +
"invalid value with type ";
- private static boolean expOccurred;
-
private CheckValidationTest() {
}
@@ -48,6 +45,7 @@
*/
static void dataValidation(YangType node, String value)
throws DataModelException {
+ boolean expOccurred = false;
YangDataTypes type = node.getDataType();
try {
node.isValidValue(value);
@@ -66,6 +64,7 @@
*/
static void rangeCheck(YangType node, String value)
throws DataModelException {
+ boolean expOccurred = false;
YangDataTypes type = node.getDataType();
try {
node.isValidValue(value);
@@ -88,16 +87,16 @@
StringBuilder msg = new StringBuilder();
switch (type) {
case UINT8:
- if (Integer.valueOf(value) < MIN_VALUE) {
+ if (Integer.valueOf(value) < YangUint8.MIN_VALUE) {
msg.append("YANG file error : ")
.append(value)
.append(" is lesser than minimum value ")
- .append(MIN_VALUE).append(".");
- } else if (Integer.valueOf(value) > MAX_VALUE) {
+ .append(YangUint8.MIN_VALUE).append(".");
+ } else if (Integer.valueOf(value) > YangUint8.MAX_VALUE) {
msg.append("YANG file error : ")
.append(value)
.append(" is greater than maximum value ")
- .append(MAX_VALUE).append(".");
+ .append(YangUint8.MAX_VALUE).append(".");
}
break;
case UINT16:
@@ -194,6 +193,7 @@
case BINARY:
case STRING:
case BOOLEAN:
+ case UNION:
msg.append("YANG file error : Input value ").append("\"")
.append(value).append("\"")
.append(" is not a valid ").append(dataType);
diff --git a/compiler/base/datamodel/src/test/java/org/onosproject/yang/compiler/datamodel/DataValidator.java b/compiler/base/datamodel/src/test/java/org/onosproject/yang/compiler/datamodel/DataValidator.java
index 5d6ac49..2fe012b 100644
--- a/compiler/base/datamodel/src/test/java/org/onosproject/yang/compiler/datamodel/DataValidator.java
+++ b/compiler/base/datamodel/src/test/java/org/onosproject/yang/compiler/datamodel/DataValidator.java
@@ -17,6 +17,8 @@
import org.junit.Test;
import org.onosproject.yang.compiler.datamodel.exceptions.DataModelException;
+import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangDataTypes;
+import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangInt8;
import static org.onosproject.yang.compiler.datamodel.CheckValidationTest.dataValidation;
import static org.onosproject.yang.compiler.datamodel.CheckValidationTest.rangeCheck;
@@ -207,10 +209,12 @@
YangType<?> newNode = new YangType<>();
newNode.setDataType(BINARY);
- dataValidation(newNode, " ");
+ dataValidation(newNode, "");
}
- /* TODO: need to verify .
+ /**
+ * Creating nodes of type ENUMERATION and testing the data validation.
+ */
@Test
public void negativeEnum() throws DataModelException {
@@ -218,12 +222,11 @@
newNode.setDataType(YangDataTypes.ENUMERATION);
YangEnum enum1 = new YangEnum();
enum1.setNamedValue("sample1");
-
+ enum1.setValue(10);
YangEnum enum2 = new YangEnum();
enum2.setNamedValue("sample2");
enum2.setValue(20);
-
- YangEnumeration YEnumeration = new YangEnumeration() {
+ YangEnumeration yEnumeration = new YangEnumeration() {
@Override
public String getJavaPackage() {
return null;
@@ -239,19 +242,21 @@
return null;
}
};
- YEnumeration.addEnumInfo(enum1);
- YEnumeration.addEnumInfo(enum2);
- newNode.setDataTypeExtendedInfo(YEnumeration);
- dataValidation(newNode," ");
- dataValidation(newNode,"123");
- dataValidation(newNode,"sample1");
+ yEnumeration.addEnumInfo(enum1);
+ yEnumeration.addEnumInfo(enum2);
+ newNode.setDataTypeExtendedInfo(yEnumeration);
+ dataValidation(newNode, " ");
+ dataValidation(newNode, "123");
}
+ /**
+ * Creating nodes of type UNION and testing the data validation.
+ */
@Test
public void negativeUnion() throws DataModelException {
- YangType<?> newNode = new YangType<>();
+
+ YangType<YangUnion> newNode = new YangType<>();
newNode.setDataType(YangDataTypes.UNION);
- List<YangType<?>> list = new LinkedList<>();
YangUnion union = new YangUnion() {
@Override
public String getJavaPackage() {
@@ -268,13 +273,14 @@
return null;
}
};
- YangUnion YUnion = union;
YangType<YangInt8> typeInt1 = new YangType<>();
+ typeInt1.setDataType(INT8);
YangType<YangDecimal64> typeInt2 = new YangType<>();
- YUnion.addType(typeInt1);
- YUnion.addType(typeInt2);
- // newNode.setDataTypeExtendedInfo(YUnion);
- dataValidation(newNode,"INT8");
+ typeInt2.setDataType(BOOLEAN);
+ union.addType(typeInt1);
+ union.addType(typeInt2);
+ newNode.setDataTypeExtendedInfo(union);
+ dataValidation(newNode, "abcd");
+ dataValidation(newNode, "-129");
}
- */
}