[ONOS-6677] Description in pattern statement
Change-Id: Iacdd3ac0cafe6b39eaa4ba463d5c25a72aa50549
diff --git a/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/Decimal64ListenerTest.java b/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/Decimal64ListenerTest.java
index 8a54a51..3498273 100644
--- a/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/Decimal64ListenerTest.java
+++ b/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/Decimal64ListenerTest.java
@@ -563,13 +563,15 @@
public void processDecimal64MultiTypedefMultiInvalidRangeStatement() throws IOException, LinkerException {
thrown.expect(LinkerException.class);
thrown.expectMessage(
- "Range interval doesn't fall within the referred restriction ranges" +
- " restriction ranges. in 0 at 0 in src/test/resources/decimal64/" +
- "Decimal64MultiTypedefMultiInvalidRangeStatement.yang\"type." +
- " in 19 at 12 in src/test/resources/decimal64/Decimal64MultiTypedef" +
- "MultiInvalidRangeStatement.yang");
+ "Range interval doesn't fall within the referred restriction" +
+ " ranges restriction ranges. in 9 at 12 in src/test/" +
+ "resources/decimal64/Decimal64MultiTypedefMultiInval" +
+ "idRangeStatement.yang\"type. in 19 at 12 in src/tes" +
+ "t/resources/decimal64/Decimal64MultiTypedefMultiInv" +
+ "alidRangeStatement.yang");
- manager.getDataModel("src/test/resources/decimal64/Decimal64MultiTypedefMultiInvalidRangeStatement.yang");
+ manager.getDataModel("src/test/resources/decimal64/Decimal64MultiTyp" +
+ "edefMultiInvalidRangeStatement.yang");
}
/**
diff --git a/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/LengthRestrictionListenerTest.java b/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/LengthRestrictionListenerTest.java
index af9572f..bae9399 100644
--- a/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/LengthRestrictionListenerTest.java
+++ b/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/LengthRestrictionListenerTest.java
@@ -27,8 +27,8 @@
import org.onosproject.yang.compiler.datamodel.YangRangeInterval;
import org.onosproject.yang.compiler.datamodel.YangRangeRestriction;
import org.onosproject.yang.compiler.datamodel.YangStringRestriction;
+import org.onosproject.yang.compiler.datamodel.YangType;
import org.onosproject.yang.compiler.datamodel.YangTypeDef;
-import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangDataTypes;
import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangUint64;
import org.onosproject.yang.compiler.parser.exceptions.ParserException;
import org.onosproject.yang.compiler.parser.impl.YangUtilsParserManager;
@@ -37,49 +37,55 @@
import java.math.BigInteger;
import java.util.ListIterator;
+import static java.math.BigInteger.valueOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
+import static org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangDataTypes.BINARY;
+import static org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangDataTypes.STRING;
/**
* Test cases for length restriction listener.
*/
public class LengthRestrictionListenerTest {
+ private final YangUtilsParserManager manager = new YangUtilsParserManager();
@Rule
public ExpectedException thrown = ExpectedException.none();
- private final YangUtilsParserManager manager = new YangUtilsParserManager();
-
/**
* Checks valid length statement as sub-statement of leaf statement.
*/
@Test
public void processValidLengthStatement() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/ValidLengthStatement.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/ValidLengthStatement.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();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.next();
+ YangType<?> type = leaf.getDataType();
- 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();
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("string"));
+ assertThat(type.getDataType(), is(STRING));
+ YangStringRestriction strRes = (YangStringRestriction) type
+ .getDataTypeExtendedInfo();
+ YangRangeRestriction lenRes = strRes.getLengthRestriction();
- ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
- .listIterator();
+ ListIterator<YangRangeInterval> lenIt = lenRes
+ .getAscendingRangeIntervals().listIterator();
- YangRangeInterval rangeInterval = lengthListIterator.next();
+ YangRangeInterval range = lenIt.next();
- assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(0)));
- assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(100)));
+ assertThat(((YangUint64) range.getStartValue()).getValue(),
+ is(valueOf(0)));
+ assertThat(((YangUint64) range.getEndValue()).getValue(),
+ is(valueOf(100)));
}
/**
@@ -88,29 +94,33 @@
@Test
public void processLengthStatementInsideLeafList() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/LengthStatementInsideLeafList.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/LengthStatementInsideLeafList.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
-
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
- .getDataType().getDataTypeExtendedInfo();
- YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction();
-
- ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
.listIterator();
+ YangLeafList ll = it.next();
+ YangType<?> type = ll.getDataType();
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("string"));
+ assertThat(type.getDataType(), is(STRING));
+ YangStringRestriction strRes = (YangStringRestriction) type
+ .getDataTypeExtendedInfo();
+ YangRangeRestriction lenRes = strRes.getLengthRestriction();
- YangRangeInterval rangeInterval = lengthListIterator.next();
- assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(1)));
- assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(100)));
+ ListIterator<YangRangeInterval> llIt = lenRes
+ .getAscendingRangeIntervals().listIterator();
+
+ YangRangeInterval range = llIt.next();
+ assertThat(((YangUint64) range.getStartValue()).getValue(),
+ is(valueOf(1)));
+ assertThat(((YangUint64) range.getEndValue()).getValue(),
+ is(valueOf(100)));
}
/**
@@ -119,7 +129,8 @@
@Test
public void processLengthStatementInsideTypeDef() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/LengthStatementInsideTypeDef.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/LengthStatementInsideTypeDef.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
@@ -127,15 +138,20 @@
assertThat(yangNode.getName(), is("Test"));
YangTypeDef typedef = (YangTypeDef) yangNode.getChild();
- YangStringRestriction stringRestriction = (YangStringRestriction) typedef.getTypeDefBaseType()
- .getDataTypeExtendedInfo();
+ YangStringRestriction strRes = (YangStringRestriction) typedef
+ .getTypeDefBaseType().getDataTypeExtendedInfo();
- YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction();
- ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
+ YangRangeRestriction lenRes = strRes.getLengthRestriction();
+ assertThat(lenRes.getDescription(),
+ is("\"length-description typedef\""));
+ assertThat(lenRes.getReference(), is("\"reference typedef\""));
+ ListIterator<YangRangeInterval> it = lenRes.getAscendingRangeIntervals()
.listIterator();
- YangRangeInterval rangeInterval = lengthListIterator.next();
- assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(1)));
- assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(100)));
+ YangRangeInterval rangeInterval = it.next();
+ assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(),
+ is(valueOf(1)));
+ assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(),
+ is(valueOf(100)));
}
/**
@@ -144,29 +160,36 @@
@Test
public void processValidBinaryLengthStatement() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/ValidBinaryLengthStatement.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/ValidBinaryLengthStatement.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();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.next();
+ YangType<?> type = leaf.getDataType();
- assertThat(leafInfo.getName(), is("message"));
- assertThat(leafInfo.getDataType().getDataTypeName(), is("binary"));
- assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.BINARY));
- YangRangeRestriction lengthRestriction = (YangRangeRestriction) leafInfo
- .getDataType().getDataTypeExtendedInfo();
+ assertThat(leaf.getName(), is("message"));
+ assertThat(type.getDataTypeName(), is("binary"));
+ assertThat(type.getDataType(), is(BINARY));
+ YangRangeRestriction lenRes = (YangRangeRestriction) type
+ .getDataTypeExtendedInfo();
- ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
- .listIterator();
+ assertThat(lenRes.getDescription(), is("\"binary description\""));
+ assertThat(lenRes.getReference(), is("\"binary reference\""));
- YangRangeInterval rangeInterval = lengthListIterator.next();
+ ListIterator<YangRangeInterval> llIt = lenRes
+ .getAscendingRangeIntervals().listIterator();
- assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(4)));
- assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(4)));
+ YangRangeInterval range = llIt.next();
+
+ assertThat(((YangUint64) range.getStartValue()).getValue(),
+ is(valueOf(4)));
+ assertThat(((YangUint64) range.getEndValue()).getValue(),
+ is(valueOf(4)));
}
/**
@@ -175,9 +198,11 @@
@Test
public void processLengthWithInvalidType() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("YANG file error : length name \"1..100\" can be used to restrict the built-in type" +
- " string/binary or types derived from string/binary.");
- YangNode node = manager.getDataModel("src/test/resources/LengthWithInvalidType.yang");
+ thrown.expectMessage("YANG file error : Length can only be used to" +
+ " restrict the built-in type string/" +
+ "binary or types derived from string/" +
+ "binary");
+ manager.getDataModel("src/test/resources/LengthWithInvalidType.yang");
}
/**
@@ -187,29 +212,34 @@
public void processLengthWithOneInterval() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/LengthWithOneInterval.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/LengthWithOneInterval.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
-
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
- .getDataType().getDataTypeExtendedInfo();
- YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction();
-
- ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
.listIterator();
+ YangLeafList ll = it.next();
+ YangType<?> type = ll.getDataType();
- YangRangeInterval rangeInterval = lengthListIterator.next();
- assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(1)));
- assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(1)));
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("string"));
+ assertThat(type.getDataType(), is(STRING));
+ YangStringRestriction strRes = (YangStringRestriction) type
+ .getDataTypeExtendedInfo();
+ YangRangeRestriction lenRes = strRes.getLengthRestriction();
+
+ ListIterator<YangRangeInterval> llIt = lenRes
+ .getAscendingRangeIntervals().listIterator();
+
+ YangRangeInterval range = llIt.next();
+ assertThat(((YangUint64) range.getStartValue()).getValue(),
+ is(valueOf(1)));
+ assertThat(((YangUint64) range.getEndValue()).getValue(),
+ is(valueOf(1)));
}
/**
@@ -219,29 +249,34 @@
public void processLengthWithMinMax() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/LengthWithMinMax.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/LengthWithMinMax.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
-
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
- .getDataType().getDataTypeExtendedInfo();
- YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction();
-
- ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
.listIterator();
+ YangLeafList ll = it.next();
+ YangType<?> type = ll.getDataType();
- YangRangeInterval rangeInterval = lengthListIterator.next();
- assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(0)));
- assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(new BigInteger("18446744073709551615")));
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("string"));
+ assertThat(type.getDataType(), is(STRING));
+ YangStringRestriction strRes = (YangStringRestriction) type
+ .getDataTypeExtendedInfo();
+ YangRangeRestriction lenRes = strRes.getLengthRestriction();
+
+ ListIterator<YangRangeInterval> llIt = lenRes
+ .getAscendingRangeIntervals().listIterator();
+
+ YangRangeInterval range = llIt.next();
+ assertThat(((YangUint64) range.getStartValue()).getValue(),
+ is(valueOf(0)));
+ assertThat(((YangUint64) range.getEndValue()).getValue(),
+ is(new BigInteger("18446744073709551615")));
}
/**
@@ -250,8 +285,10 @@
@Test
public void processLengthWithInvalidIntegerPattern() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("YANG file error : Input value \"a\" is not a valid uint64.");
- YangNode node = manager.getDataModel("src/test/resources/LengthWithInvalidIntegerPattern.yang");
+ thrown.expectMessage("YANG file error : Input value \"a\" is not a" +
+ " valid uint64.");
+ manager.getDataModel("src/test/resources/LengthWithInvalidI" +
+ "ntegerPattern.yang");
}
/**
@@ -260,44 +297,50 @@
@Test
public void processLengthWithInvalidInterval() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("YANG file error : 18446744073709551617 is greater than maximum value" +
- " 18446744073709551615.");
- YangNode node = manager.getDataModel("src/test/resources/LengthWithInvalidInterval.yang");
+ thrown.expectMessage("YANG file error : 18446744073709551617 is gre" +
+ "ater than maximum value " +
+ "18446744073709551615.");
+ manager.getDataModel("src/test/resources/LengthWithInvalidInter" +
+ "val.yang");
}
/**
- * Checks valid length substatements.
+ * Checks valid length sub-statements.
*/
@Test
public void processLengthSubStatements() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/LengthSubStatements.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/LengthSubStatements.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();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.next();
+ YangType<?> type = leaf.getDataType();
- 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();
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("string"));
+ assertThat(type.getDataType(), is(STRING));
+ YangStringRestriction strRes = (YangStringRestriction) type
+ .getDataTypeExtendedInfo();
+ YangRangeRestriction lenRes = strRes.getLengthRestriction();
- assertThat(lengthRestriction.getDescription(), is("\"length description\""));
- assertThat(lengthRestriction.getReference(), is("\"length reference\""));
+ assertThat(lenRes.getDescription(), is("\"length description\""));
+ assertThat(lenRes.getReference(), is("\"length reference\""));
- ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
- .listIterator();
+ ListIterator<YangRangeInterval> llIt = lenRes
+ .getAscendingRangeIntervals().listIterator();
- YangRangeInterval rangeInterval = lengthListIterator.next();
+ YangRangeInterval range = llIt.next();
- assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(0)));
- assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(100)));
+ assertThat(((YangUint64) range.getStartValue()).getValue(),
+ is(valueOf(0)));
+ assertThat(((YangUint64) range.getEndValue()).getValue(),
+ is(valueOf(100)));
}
/**
@@ -306,29 +349,33 @@
@Test
public void processLengthStatementWithSpace() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/LengthStatementWithSpace.yang");
+ 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();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.next();
+ YangType<?> type = leaf.getDataType();
- 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();
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("string"));
+ assertThat(type.getDataType(), is(STRING));
+ YangStringRestriction strRes = (YangStringRestriction) type
+ .getDataTypeExtendedInfo();
+ YangRangeRestriction lenRes = strRes.getLengthRestriction();
- ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
- .listIterator();
+ ListIterator<YangRangeInterval> llIt = lenRes
+ .getAscendingRangeIntervals().listIterator();
- YangRangeInterval rangeInterval = lengthListIterator.next();
+ YangRangeInterval range = llIt.next();
- assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(0)));
- assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(100)));
+ assertThat(((YangUint64) range.getStartValue()).getValue(),
+ is(valueOf(0)));
+ assertThat(((YangUint64) range.getEndValue()).getValue(),
+ is(valueOf(100)));
}
}
diff --git a/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/PatternRestrictionListenerTest.java b/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/PatternRestrictionListenerTest.java
index ce63ef2..c0f0c5b 100644
--- a/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/PatternRestrictionListenerTest.java
+++ b/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/PatternRestrictionListenerTest.java
@@ -31,6 +31,7 @@
import org.onosproject.yang.compiler.parser.impl.YangUtilsParserManager;
import java.io.IOException;
+import java.util.List;
import java.util.ListIterator;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -49,35 +50,35 @@
@Test
public void processValidPatternStatement() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/ValidPatternStatement.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/ValidPatternStatement.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), Is.is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
- YangLeaf leafInfo = leafIterator.next();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.next();
- assertThat(leafInfo.getName(), is("invalid-interval"));
- assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(leaf.getDataType().getDataTypeName(), is("string"));
+ assertThat(leaf.getDataType().getDataType(), is(YangDataTypes.STRING));
+ YangStringRestriction strRes = (YangStringRestriction) leaf
.getDataType().getDataTypeExtendedInfo();
- ListIterator<String> patternListIterator = stringRestriction.getPatternRestriction()
- .getPatternList().listIterator();
- assertThat(patternListIterator.next(), is("[a-zA-Z]"));
+ ListIterator<YangPatternRestriction> patIt = strRes
+ .getPatternResList().listIterator();
+ assertThat(patIt.next().getPattern(), is("[a-zA-Z]"));
- leafInfo = leafIterator.next();
+ leaf = it.next();
- assertThat(leafInfo.getName(), is("ipv4-address"));
- assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- stringRestriction = (YangStringRestriction) leafInfo
- .getDataType().getDataTypeExtendedInfo();
- patternListIterator = stringRestriction.getPatternRestriction()
- .getPatternList().listIterator();
- assertThat(patternListIterator.next(), is(
+ assertThat(leaf.getName(), is("ipv4-address"));
+ assertThat(leaf.getDataType().getDataTypeName(), is("string"));
+ assertThat(leaf.getDataType().getDataType(), is(YangDataTypes.STRING));
+ strRes = (YangStringRestriction) leaf.getDataType()
+ .getDataTypeExtendedInfo();
+ patIt = strRes.getPatternResList().listIterator();
+ assertThat(patIt.next().getPattern(), is(
"(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}" +
"([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])" +
"(%[\\p{N}\\p{L}]+)?"));
@@ -89,24 +90,26 @@
@Test
public void processPatternStatementInsideLeafList() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/PatternStatementInsideLeafList.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/PatternStatementInsideLeafList.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
+ .listIterator();
+ YangLeafList ll = it.next();
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(ll.getDataType().getDataTypeName(), is("string"));
+ assertThat(ll.getDataType().getDataType(), is(YangDataTypes.STRING));
+ YangStringRestriction strRes = (YangStringRestriction) ll
.getDataType().getDataTypeExtendedInfo();
- ListIterator<String> patternListIterator = stringRestriction.getPatternRestriction()
- .getPatternList().listIterator();
- assertThat(patternListIterator.next(), is("[a-zA-Z]"));
+ ListIterator<YangPatternRestriction> patIt = strRes.getPatternResList()
+ .listIterator();
+ assertThat(patIt.next().getPattern(), is("[a-zA-Z]"));
}
/**
@@ -115,7 +118,8 @@
@Test
public void processPatternStatementInsideTypeDef() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/PatternStatementInsideTypeDef.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/PatternStatementInsideTypeDef.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
@@ -123,11 +127,11 @@
assertThat(yangNode.getName(), is("Test"));
YangTypeDef typedef = (YangTypeDef) yangNode.getChild();
- YangStringRestriction stringRestriction = (YangStringRestriction) typedef.getTypeDefBaseType()
- .getDataTypeExtendedInfo();
+ YangStringRestriction strRes = (YangStringRestriction) typedef
+ .getTypeDefBaseType().getDataTypeExtendedInfo();
- YangPatternRestriction yangPatternRestriction = stringRestriction.getPatternRestriction();
- assertThat(yangPatternRestriction.getPatternList().listIterator().next(), is("[a-zA-Z]"));
+ List<YangPatternRestriction> patRes = strRes.getPatternResList();
+ assertThat(patRes.listIterator().next().getPattern(), is("[a-zA-Z]"));
}
/**
@@ -136,24 +140,26 @@
@Test
public void processMultiplePatternStatement() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/MultiplePatternStatement.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/MultiplePatternStatement.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
+ .listIterator();
+ YangLeafList ll = it.next();
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
- .getDataType().getDataTypeExtendedInfo();
- ListIterator<String> patternListIterator = stringRestriction.getPatternRestriction()
- .getPatternList().listIterator();
- assertThat(patternListIterator.next(), is("[a-zA-Z]"));
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(ll.getDataType().getDataTypeName(), is("string"));
+ assertThat(ll.getDataType().getDataType(), is(YangDataTypes.STRING));
+ YangStringRestriction strRes = (YangStringRestriction) ll.getDataType()
+ .getDataTypeExtendedInfo();
+ ListIterator<YangPatternRestriction> patIt = strRes.getPatternResList()
+ .listIterator();
+ assertThat(patIt.next().getPattern(), is("[a-zA-Z]"));
}
/**
@@ -162,23 +168,25 @@
@Test
public void processPatternStatementWithPlus() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/PatternStatementWithPlus.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/PatternStatementWithPlus.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
+ .listIterator();
+ YangLeafList ll = it.next();
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- YangStringRestriction stringRestriction = (YangStringRestriction) leafListInfo
- .getDataType().getDataTypeExtendedInfo();
- ListIterator<String> patternListIterator = stringRestriction.getPatternRestriction()
- .getPatternList().listIterator();
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(ll.getDataType().getDataTypeName(), is("string"));
+ assertThat(ll.getDataType().getDataType(), is(YangDataTypes.STRING));
+ YangStringRestriction strRes = (YangStringRestriction) ll.getDataType()
+ .getDataTypeExtendedInfo();
+ ListIterator<YangPatternRestriction> patIt = strRes.getPatternResList()
+ .listIterator();
//FIXME: + should not be remove from the end.
//assertThat(patternListIterator.next(), is("-[0-9]+|[0-9]+"));
}
@@ -189,26 +197,28 @@
@Test
public void processPatternSubStatements() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/PatternSubStatements.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/PatternSubStatements.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();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.next();
- assertThat(leafInfo.getName(), is("invalid-interval"));
- assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
- assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
- YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(leaf.getDataType().getDataTypeName(), is("string"));
+ assertThat(leaf.getDataType().getDataType(), is(YangDataTypes.STRING));
+ YangStringRestriction strRes = (YangStringRestriction) leaf
.getDataType().getDataTypeExtendedInfo();
- assertThat(stringRestriction.getDescription(), is("\"pattern description\""));
- assertThat(stringRestriction.getReference(), is("\"pattern reference\""));
- ListIterator<String> patternListIterator = stringRestriction.getPatternRestriction()
- .getPatternList().listIterator();
- assertThat(patternListIterator.next(), is("[a-zA-Z]"));
+ ListIterator<YangPatternRestriction> patIt = strRes.getPatternResList()
+ .listIterator();
+ YangPatternRestriction pat = patIt.next();
+ assertThat(pat.getDescription(), is("\"pattern description\""));
+ assertThat(pat.getReference(), is("\"pattern reference\""));
+ assertThat(pat.getPattern(), is("[a-zA-Z]"));
}
/**
@@ -216,6 +226,7 @@
*/
@Test(expected = ParserException.class)
public void processInvalidPatternSubStatements() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/InvalidPatternSubStatements.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/InvalidPatternSubStatements.yang");
}
}
diff --git a/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/RangeRestrictionListenerTest.java b/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/RangeRestrictionListenerTest.java
index ab3cc4c..370514d 100644
--- a/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/RangeRestrictionListenerTest.java
+++ b/compiler/base/parser/src/test/java/org/onosproject/yang/compiler/parser/impl/listeners/RangeRestrictionListenerTest.java
@@ -19,6 +19,7 @@
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.onosproject.yang.compiler.datamodel.YangDerivedInfo;
import org.onosproject.yang.compiler.datamodel.YangLeaf;
import org.onosproject.yang.compiler.datamodel.YangLeafList;
import org.onosproject.yang.compiler.datamodel.YangModule;
@@ -26,8 +27,10 @@
import org.onosproject.yang.compiler.datamodel.YangNodeType;
import org.onosproject.yang.compiler.datamodel.YangRangeInterval;
import org.onosproject.yang.compiler.datamodel.YangRangeRestriction;
-import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangDataTypes;
+import org.onosproject.yang.compiler.datamodel.YangType;
+import org.onosproject.yang.compiler.datamodel.YangTypeDef;
import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangInt32;
+import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangUint8;
import org.onosproject.yang.compiler.parser.exceptions.ParserException;
import org.onosproject.yang.compiler.parser.impl.YangUtilsParserManager;
@@ -36,44 +39,48 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
+import static org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangDataTypes.DERIVED;
+import static org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangDataTypes.INT32;
/**
* Test cases for range restriction listener.
*/
public class RangeRestrictionListenerTest {
+ private final YangUtilsParserManager manager = new YangUtilsParserManager();
@Rule
public ExpectedException thrown = ExpectedException.none();
- private final YangUtilsParserManager manager = new YangUtilsParserManager();
-
/**
* Checks valid range statement as sub-statement of leaf statement.
*/
@Test
public void processValidRangeStatement() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/ValidRangeStatement.yang");
+ YangNode node = manager.getDataModel("src/test/resources/ValidRange" +
+ "Statement.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();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.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();
+ YangType<?> type = leaf.getDataType();
- ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals()
- .listIterator();
- YangRangeInterval rangeInterval = rangeListIterator.next();
- assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(1));
- assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("int32"));
+ assertThat(type.getDataType(), is(INT32));
+ YangRangeRestriction ranRes = (YangRangeRestriction) type
+ .getDataTypeExtendedInfo();
+
+ ListIterator<YangRangeInterval> rlIt = ranRes
+ .getAscendingRangeIntervals().listIterator();
+ YangRangeInterval range = rlIt.next();
+ assertThat(((YangInt32) range.getStartValue()).getValue(), is(1));
+ assertThat(((YangInt32) range.getEndValue()).getValue(), is(4));
}
/**
@@ -82,28 +89,32 @@
@Test
public void processRangeStatementInsideLeafList() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/RangeStatementInsideLeafList.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/RangeStatementInsideLeafList.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
-
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
- YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo
- .getDataType().getDataTypeExtendedInfo();
-
- ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals()
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
.listIterator();
- YangRangeInterval rangeInterval = rangeListIterator.next();
+ YangLeafList ll = it.next();
- assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(1));
- assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
+ YangType<?> type = ll.getDataType();
+
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("int32"));
+ assertThat(type.getDataType(), is(INT32));
+ YangRangeRestriction ranRes = (YangRangeRestriction) type
+ .getDataTypeExtendedInfo();
+
+ ListIterator<YangRangeInterval> rlIt = ranRes
+ .getAscendingRangeIntervals().listIterator();
+ YangRangeInterval range = rlIt.next();
+
+ assertThat(((YangInt32) range.getStartValue()).getValue(), is(1));
+ assertThat(((YangInt32) range.getEndValue()).getValue(), is(4));
}
/**
@@ -112,28 +123,32 @@
@Test
public void processRangeWithOneInterval() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/RangeWithOneInterval.yang");
+ YangNode node = manager.getDataModel(
+ "src/test/resources/RangeWithOneInterval.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
-
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
- YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo
- .getDataType().getDataTypeExtendedInfo();
-
- ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals()
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
.listIterator();
- YangRangeInterval rangeInterval = rangeListIterator.next();
+ YangLeafList ll = it.next();
- assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(1));
- assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(1));
+ YangType<?> type = ll.getDataType();
+
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("int32"));
+ assertThat(type.getDataType(), is(INT32));
+ YangRangeRestriction ranRes = (YangRangeRestriction) type
+ .getDataTypeExtendedInfo();
+
+ ListIterator<YangRangeInterval> rlIt = ranRes
+ .getAscendingRangeIntervals().listIterator();
+ YangRangeInterval range = rlIt.next();
+
+ assertThat(((YangInt32) range.getStartValue()).getValue(), is(1));
+ assertThat(((YangInt32) range.getEndValue()).getValue(), is(1));
}
/**
@@ -142,28 +157,34 @@
@Test
public void processRangeWithMinMax() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/RangeWithMinMax.yang");
+ YangNode node = manager.getDataModel("src/test/resources/RangeWithM" +
+ "inMax.yang");
assertThat((node instanceof YangModule), is(true));
assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
YangModule yangNode = (YangModule) node;
assertThat(yangNode.getName(), is("Test"));
- ListIterator<YangLeafList> leafListIterator = yangNode.getListOfLeafList().listIterator();
- YangLeafList leafListInfo = leafListIterator.next();
-
- assertThat(leafListInfo.getName(), is("invalid-interval"));
- assertThat(leafListInfo.getDataType().getDataTypeName(), is("int32"));
- assertThat(leafListInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
- YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafListInfo
- .getDataType().getDataTypeExtendedInfo();
-
- ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals()
+ ListIterator<YangLeafList> it = yangNode.getListOfLeafList()
.listIterator();
- YangRangeInterval rangeInterval = rangeListIterator.next();
+ YangLeafList ll = it.next();
- assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(-2147483648));
- assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(2147483647));
+ YangType<?> type = ll.getDataType();
+
+ assertThat(ll.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("int32"));
+ assertThat(type.getDataType(), is(INT32));
+ YangRangeRestriction ranRes = (YangRangeRestriction) type
+ .getDataTypeExtendedInfo();
+
+ ListIterator<YangRangeInterval> rlIt = ranRes
+ .getAscendingRangeIntervals().listIterator();
+ YangRangeInterval range = rlIt.next();
+
+ assertThat(((YangInt32) range.getStartValue()).getValue(),
+ is(-2147483648));
+ assertThat(((YangInt32) range.getEndValue()).getValue(),
+ is(2147483647));
}
/**
@@ -172,8 +193,10 @@
@Test
public void processRangeWithInvalidIntegerPattern() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("YANG file error : Input value \"a\" is not a valid int32.");
- YangNode node = manager.getDataModel("src/test/resources/RangeWithInvalidIntegerPattern.yang");
+ thrown.expectMessage("YANG file error : Input value \"a\" is not " +
+ "a valid int32.");
+ manager.getDataModel("src/test/resources/RangeWithInval" +
+ "idIntegerPattern.yang");
}
/**
@@ -182,31 +205,34 @@
@Test
public void processRangeSubStatements() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/RangeSubStatements.yang");
+ YangNode node = manager.getDataModel("src/test/resources/" +
+ "RangeSubStatements.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();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.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();
+ YangType<?> type = leaf.getDataType();
- assertThat(rangeRestriction.getDescription(), is("\"range description\""));
- assertThat(rangeRestriction.getReference(), is("\"range reference\""));
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("int32"));
+ assertThat(type.getDataType(), is(INT32));
+ YangRangeRestriction ranRes = (YangRangeRestriction) type
+ .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));
- assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
+ assertThat(ranRes.getDescription(), is("\"range description\""));
+ assertThat(ranRes.getReference(), is("\"range reference\""));
+
+ ListIterator<YangRangeInterval> rlIt = ranRes
+ .getAscendingRangeIntervals().listIterator();
+ YangRangeInterval range = rlIt.next();
+ assertThat(((YangInt32) range.getStartValue()).getValue(), is(1));
+ assertThat(((YangInt32) range.getEndValue()).getValue(), is(4));
+ assertThat(((YangInt32) range.getEndValue()).getValue(), is(4));
}
/**
@@ -215,26 +241,84 @@
@Test
public void processRangeStatementWithSpace() throws IOException, ParserException {
- YangNode node = manager.getDataModel("src/test/resources/RangeStatementWithSpace.yang");
+ YangNode node = manager.getDataModel("src/test/resources/RangeSta" +
+ "tementWithSpace.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();
+ ListIterator<YangLeaf> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.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();
+ YangType<?> type = leaf.getDataType();
- ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals()
- .listIterator();
- YangRangeInterval rangeInterval = rangeListIterator.next();
- assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(1));
- assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(type.getDataTypeName(), is("int32"));
+ assertThat(type.getDataType(), is(INT32));
+ YangRangeRestriction ranRes = (YangRangeRestriction) type
+ .getDataTypeExtendedInfo();
+
+ ListIterator<YangRangeInterval> rlIt = ranRes
+ .getAscendingRangeIntervals().listIterator();
+ YangRangeInterval range = rlIt.next();
+ assertThat(((YangInt32) range.getStartValue()).getValue(), is(1));
+ assertThat(((YangInt32) range.getEndValue()).getValue(), is(4));
}
+
+ /**
+ * Checks range statement in typedef with description and reference.
+ *
+ * @throws IOException when IO operation fails
+ * @throws ParserException when parsing fails
+ */
+ @Test
+ public void processRangeStatementInTypeDef() throws IOException, ParserException {
+ YangNode node = manager.getDataModel("src/test/resources/Range" +
+ "WithTypedef.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> it = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leaf = it.next();
+
+ YangType<?> type = leaf.getDataType();
+
+ assertThat(leaf.getName(), is("invalid-interval"));
+ assertThat(type.getDataType(), is(DERIVED));
+ YangDerivedInfo info = (YangDerivedInfo) type
+ .getDataTypeExtendedInfo();
+
+ YangRangeRestriction ranRes1 = info.getRangeRes();
+
+ assertThat(ranRes1.getDescription(), is("\"range description\""));
+ assertThat(ranRes1.getReference(), is("\"range reference\""));
+
+ ListIterator<YangRangeInterval> rlIt1 = ranRes1
+ .getAscendingRangeIntervals().listIterator();
+ YangRangeInterval range1 = rlIt1.next();
+ assertThat(((YangUint8) range1.getStartValue()).getValue(),
+ is((short) 2));
+ assertThat(((YangUint8) range1.getEndValue()).getValue(),
+ is((short) 100));
+
+ YangTypeDef typeDef = (YangTypeDef) yangNode.getChild();
+ YangRangeRestriction ranRes = (YangRangeRestriction) typeDef
+ .getTypeDefBaseType().getDataTypeExtendedInfo();
+ assertThat(ranRes.getDescription(),
+ is("\"typedef description\""));
+ assertThat(ranRes.getReference(), is("\"typedef reference\""));
+
+ ListIterator<YangRangeInterval> rlIt2 = ranRes
+ .getAscendingRangeIntervals().listIterator();
+ YangRangeInterval range2 = rlIt2.next();
+ assertThat(((YangUint8) range2.getStartValue()).getValue(),
+ is((short) 1));
+ assertThat(((YangUint8) range2.getEndValue()).getValue(),
+ is((short) (100)));
+ }
+
}
diff --git a/compiler/base/parser/src/test/resources/LengthStatementInsideTypeDef.yang b/compiler/base/parser/src/test/resources/LengthStatementInsideTypeDef.yang
index c1195dc..ad59080 100644
--- a/compiler/base/parser/src/test/resources/LengthStatementInsideTypeDef.yang
+++ b/compiler/base/parser/src/test/resources/LengthStatementInsideTypeDef.yang
@@ -4,12 +4,18 @@
prefix Ant;
typedef invalid-interval {
type string {
- length "1..100";
+ length "1..100" {
+ description "length-description typedef";
+ reference "reference typedef";
+ }
}
}
leaf xyz {
type invalid-interval {
- length "2..100";
+ length "2..100"{
+ description "length-description type";
+ reference "reference type";
+ }
}
}
}
diff --git a/compiler/base/parser/src/test/resources/RangeWithTypedef.yang b/compiler/base/parser/src/test/resources/RangeWithTypedef.yang
new file mode 100644
index 0000000..d885d8c
--- /dev/null
+++ b/compiler/base/parser/src/test/resources/RangeWithTypedef.yang
@@ -0,0 +1,22 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+
+ typedef value {
+ type uint8 {
+ range "1..100" {
+ description "typedef description";
+ reference "typedef reference";
+ }
+ }
+ }
+ leaf invalid-interval {
+ type value {
+ range "2..100" {
+ description "range description";
+ reference "range reference";
+ }
+ }
+ }
+}
diff --git a/compiler/base/parser/src/test/resources/ValidBinaryLengthStatement.yang b/compiler/base/parser/src/test/resources/ValidBinaryLengthStatement.yang
index 7182eb3..349181a 100644
--- a/compiler/base/parser/src/test/resources/ValidBinaryLengthStatement.yang
+++ b/compiler/base/parser/src/test/resources/ValidBinaryLengthStatement.yang
@@ -4,7 +4,10 @@
prefix Ant;
leaf message {
type binary {
- length "4";
+ length "4" {
+ description "binary description";
+ reference "binary reference";
+ }
}
}
}