Update ChoiceSchemaNode design
[yangtools.git] / yang / yang-parser-impl / src / test / java / org / opendaylight / yangtools / yang / stmt / YangParserTest.java
index 55e9421039c074b427f1fbf98820bc438efc07ca..a17845e518dd978c7e5b084cd7e47c386eff5624 100644 (file)
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Optional;
 import java.util.Set;
+import java.util.SortedMap;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -33,7 +34,7 @@ import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.common.YangVersion;
-import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
@@ -70,12 +71,12 @@ import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementR
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
 
 public class YangParserTest {
-    private static final QNameModule FOO = QNameModule.create(
-        URI.create("urn:opendaylight.foo"), Revision.valueOf("2013-02-27"));
-    private static final QNameModule BAR = QNameModule.create(
-        URI.create("urn:opendaylight.bar"), Revision.valueOf("2013-07-03"));
-    private static final QNameModule BAZ = QNameModule.create(
-        URI.create("urn:opendaylight.baz"), Revision.valueOf("2013-02-27"));
+    private static final QNameModule FOO = QNameModule.create(URI.create("urn:opendaylight.foo"),
+        Revision.of("2013-02-27"));
+    private static final QNameModule BAR = QNameModule.create(URI.create("urn:opendaylight.bar"),
+        Revision.of("2013-07-03"));
+    private static final QNameModule BAZ = QNameModule.create(URI.create("urn:opendaylight.baz"),
+        Revision.of("2013-02-27"));
 
     private SchemaContext context;
     private Module foo;
@@ -108,10 +109,10 @@ public class YangParserTest {
         assertEquals("baz", import3.getModuleName());
         assertEquals(BAZ.getRevision(), import3.getRevision());
 
-        assertEquals("opendaylight", foo.getOrganization());
-        assertEquals("http://www.opendaylight.org/", foo.getContact());
-        assertEquals(Optional.of(Revision.valueOf("2013-02-27")), foo.getRevision());
-        assertNull(foo.getReference());
+        assertEquals(Optional.of("opendaylight"), foo.getOrganization());
+        assertEquals(Optional.of("http://www.opendaylight.org/"), foo.getContact());
+        assertEquals(Revision.ofNullable("2013-02-27"), foo.getRevision());
+        assertFalse(foo.getReference().isPresent());
     }
 
     @Test
@@ -126,8 +127,8 @@ public class YangParserTest {
 
         final SchemaPath expectedPath = TestUtils.createPath(true, BAR, "interfaces", "ifEntry");
         assertEquals(expectedPath, ifEntry.getPath());
-        assertNull(ifEntry.getDescription());
-        assertNull(ifEntry.getReference());
+        assertFalse(ifEntry.getDescription().isPresent());
+        assertFalse(ifEntry.getReference().isPresent());
         assertEquals(Status.CURRENT, ifEntry.getStatus());
         assertEquals(0, ifEntry.getUnknownSchemaNodes().size());
         // test DataSchemaNode args
@@ -142,7 +143,7 @@ public class YangParserTest {
         assertEquals(1, (int) constraints.getMinElements());
         assertEquals(11, (int) constraints.getMaxElements());
         // test AugmentationTarget args
-        final Set<AugmentationSchema> availableAugmentations = ifEntry.getAvailableAugmentations();
+        final Set<AugmentationSchemaNode> availableAugmentations = ifEntry.getAvailableAugmentations();
         assertEquals(2, availableAugmentations.size());
         // test ListSchemaNode args
         final List<QName> expectedKey = new ArrayList<>();
@@ -159,7 +160,7 @@ public class YangParserTest {
             "ifIndex"));
         assertEquals(ifEntry.getKeyDefinition().get(0), ifIndex.getQName());
         assertTrue(ifIndex.getType() instanceof UnsignedIntegerTypeDefinition);
-        assertEquals("minutes", ifIndex.getUnits());
+        assertEquals("minutes", ifIndex.getType().getUnits());
         final LeafSchemaNode ifMtu = (LeafSchemaNode) ifEntry.getDataChildByName(QName.create(bar.getQNameModule(),
             "ifMtu"));
         assertEquals(BaseTypes.int32Type(), ifMtu.getType());
@@ -226,7 +227,7 @@ public class YangParserTest {
         List<PatternConstraint> patterns = type.getPatternConstraints();
         assertEquals(1, patterns.size());
         PatternConstraint pattern = patterns.iterator().next();
-        assertEquals("^[e-z]*$", pattern.getRegularExpression());
+        assertEquals("^[e-z]*$", pattern.getJavaPatternString());
         assertEquals(1, type.getLengthConstraint().get().getAllowedRanges().asRanges().size());
 
         final StringTypeDefinition baseType1 = type.getBaseType();
@@ -238,7 +239,7 @@ public class YangParserTest {
         patterns = baseType1.getPatternConstraints();
         assertEquals(1, patterns.size());
         pattern = patterns.iterator().next();
-        assertEquals("^[b-u]*$", pattern.getRegularExpression());
+        assertEquals("^[b-u]*$", pattern.getJavaPatternString());
         assertEquals(1, baseType1.getLengthConstraint().get().getAllowedRanges().asRanges().size());
 
         final StringTypeDefinition baseType2 = baseType1.getBaseType();
@@ -261,7 +262,7 @@ public class YangParserTest {
         patterns = baseType3.getPatternConstraints();
         assertEquals(1, patterns.size());
         pattern = patterns.iterator().next();
-        assertEquals("^[a-k]*$", pattern.getRegularExpression());
+        assertEquals("^[a-k]*$", pattern.getJavaPatternString());
         final RangeSet<Integer> baseType3Lengths = baseType3.getLengthConstraint().get().getAllowedRanges();
         assertEquals(1, baseType3Lengths.asRanges().size());
         length = baseType3Lengths.span();
@@ -302,7 +303,7 @@ public class YangParserTest {
         assertTrue(!patterns.isEmpty());
         assertEquals(1, patterns.size());
         final PatternConstraint pattern = patterns.iterator().next();
-        assertEquals("^[e-z]*$", pattern.getRegularExpression());
+        assertEquals("^[e-z]*$", pattern.getJavaPatternString());
         assertEquals(1, type.getLengthConstraint().get().getAllowedRanges().asRanges().size());
 
         final LeafSchemaNode multiplePatternDirectStringDefLeaf = (LeafSchemaNode) foo
@@ -318,9 +319,9 @@ public class YangParserTest {
         boolean isEZPattern = false;
         boolean isADPattern = false;
         for (final PatternConstraint patternConstraint : patterns) {
-            if (patternConstraint.getRegularExpression().equals("^[e-z]*$")) {
+            if (patternConstraint.getJavaPatternString().equals("^[e-z]*$")) {
                 isEZPattern = true;
-            } else if (patternConstraint.getRegularExpression().equals("^[a-d]*$")) {
+            } else if (patternConstraint.getJavaPatternString().equals("^[a-d]*$")) {
                 isADPattern = true;
             }
         }
@@ -362,7 +363,7 @@ public class YangParserTest {
         final List<PatternConstraint> patterns = baseType2.getPatternConstraints();
         assertEquals(1, patterns.size());
         final PatternConstraint pattern = patterns.iterator().next();
-        assertEquals("^[a-k]*$", pattern.getRegularExpression());
+        assertEquals("^[a-k]*$", pattern.getJavaPatternString());
         final RangeSet<Integer> baseType3Lengths = baseType2.getLengthConstraint().get().getAllowedRanges();
         assertEquals(1, baseType3Lengths.asRanges().size());
         length = baseType3Lengths.span();
@@ -516,11 +517,11 @@ public class YangParserTest {
             QName.create(foo.getQNameModule(), "transfer"));
         final ChoiceSchemaNode how = (ChoiceSchemaNode) transfer.getDataChildByName(
             QName.create(foo.getQNameModule(), "how"));
-        final Set<ChoiceCaseNode> cases = how.getCases();
+        final SortedMap<QName, ChoiceCaseNode> cases = how.getCases();
         assertEquals(5, cases.size());
         ChoiceCaseNode input = null;
         ChoiceCaseNode output = null;
-        for (final ChoiceCaseNode caseNode : cases) {
+        for (final ChoiceCaseNode caseNode : cases.values()) {
             if ("input".equals(caseNode.getQName().getLocalName())) {
                 input = caseNode;
             } else if ("output".equals(caseNode.getQName().getLocalName())) {
@@ -538,7 +539,7 @@ public class YangParserTest {
         final Set<Deviation> deviations = foo.getDeviations();
         assertEquals(1, deviations.size());
         final Deviation dev = deviations.iterator().next();
-        assertEquals("system/user ref", dev.getReference());
+        assertEquals(Optional.of("system/user ref"), dev.getReference());
 
         final SchemaPath expectedPath = SchemaPath.create(true,
             QName.create(BAR, "interfaces"),
@@ -571,7 +572,8 @@ public class YangParserTest {
         assertEquals(1, extensions.size());
         final ExtensionDefinition extension = extensions.get(0);
         assertEquals("name", extension.getArgument());
-        assertEquals("Takes as argument a name string. Makes the code generator use the given name in the #define.",
+        assertEquals(
+            Optional.of("Takes as argument a name string. Makes the code generator use the given name in the #define."),
                 extension.getDescription());
         assertTrue(extension.isYinElement());
     }
@@ -586,8 +588,8 @@ public class YangParserTest {
         assertEquals(QName.create(BAZ, "event"), notification.getQName());
         final SchemaPath expectedPath = SchemaPath.create(true,  QName.create(BAZ, "event"));
         assertEquals(expectedPath, notification.getPath());
-        assertNull(notification.getDescription());
-        assertNull(notification.getReference());
+        assertFalse(notification.getDescription().isPresent());
+        assertFalse(notification.getReference().isPresent());
         assertEquals(Status.CURRENT, notification.getStatus());
         assertEquals(0, notification.getUnknownSchemaNodes().size());
         // test DataNodeContainer args
@@ -610,8 +612,8 @@ public class YangParserTest {
         assertEquals(1, rpcs.size());
 
         final RpcDefinition rpc = rpcs.iterator().next();
-        assertEquals("Retrieve all or part of a specified configuration.", rpc.getDescription());
-        assertEquals("RFC 6241, Section 7.1", rpc.getReference());
+        assertEquals(Optional.of("Retrieve all or part of a specified configuration."), rpc.getDescription());
+        assertEquals(Optional.of("RFC 6241, Section 7.1"), rpc.getReference());
     }
 
     @Test