X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fimpl%2FTypesResolutionTest.java;h=d88f88b19b32f8fb8e5a2724905c6af398b29a63;hb=abced3230f02588c577c17c0cc039c5707c85081;hp=53c335b874350c4f5e6b3e40d733d009a3698a41;hpb=bb6e3e59fbea94e727a73d5e740eb0a3cdd6c195;p=yangtools.git diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/TypesResolutionTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/TypesResolutionTest.java index 53c335b874..d88f88b19b 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/TypesResolutionTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/impl/TypesResolutionTest.java @@ -17,6 +17,7 @@ import java.io.File; import java.math.BigInteger; import java.net.URI; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Set; import org.junit.Before; @@ -39,6 +40,7 @@ import org.opendaylight.yangtools.yang.model.util.ExtendedType; import org.opendaylight.yangtools.yang.model.util.IdentityrefType; import org.opendaylight.yangtools.yang.model.util.InstanceIdentifierType; import org.opendaylight.yangtools.yang.model.util.UnionType; +import org.opendaylight.yangtools.yang.parser.util.YangParseException; public class TypesResolutionTest { private Set testedModules; @@ -123,20 +125,20 @@ public class TypesResolutionTest { ExtendedType ipv4 = (ExtendedType) unionTypes.get(0); assertTrue(ipv4.getBaseType() instanceof StringTypeDefinition); - String expectedPattern = "(([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}]+)?"; + String expectedPattern = "^(([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}]+)?$"; assertEquals(expectedPattern, ipv4.getPatternConstraints().get(0).getRegularExpression()); ExtendedType ipv6 = (ExtendedType) unionTypes.get(1); assertTrue(ipv6.getBaseType() instanceof StringTypeDefinition); List ipv6Patterns = ipv6.getPatternConstraints(); - expectedPattern = "((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}" + expectedPattern = "^((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}" + "((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|" + "(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}" - + "(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))" + "(%[\\p{N}\\p{L}]+)?"; + + "(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))" + "(%[\\p{N}\\p{L}]+)?$"; assertEquals(expectedPattern, ipv6Patterns.get(0).getRegularExpression()); - expectedPattern = "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|" + "((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)" - + "(%.+)?"; + expectedPattern = "^(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|" + "((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)" + + "(%.+)?$"; assertEquals(expectedPattern, ipv6Patterns.get(1).getRegularExpression()); } @@ -148,8 +150,8 @@ public class TypesResolutionTest { assertTrue(type.getBaseType() instanceof StringTypeDefinition); List patterns = type.getPatternConstraints(); assertEquals(1, patterns.size()); - String expectedPattern = "((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*" - + "([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)" + "|\\."; + String expectedPattern = "^((([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.)*" + + "([a-zA-Z0-9_]([a-zA-Z0-9\\-_]){0,61})?[a-zA-Z0-9]\\.?)" + "|\\.$"; assertEquals(expectedPattern, patterns.get(0).getRegularExpression()); List lengths = type.getLengthConstraints(); @@ -262,13 +264,12 @@ public class TypesResolutionTest { String expectedDesc = "A timezone location as defined by the IANA timezone"; assertTrue(testedType.getDescription().contains(expectedDesc)); - assertNull(testedType.getReference()); + assertTrue(testedType.getReference().isEmpty()); assertEquals(Status.CURRENT, testedType.getStatus()); QName testedTypeQName = testedType.getQName(); assertEquals(URI.create("urn:ietf:params:xml:ns:yang:iana-timezones"), testedTypeQName.getNamespace()); assertEquals(TestUtils.createDate("2012-07-09"), testedTypeQName.getRevision()); - assertEquals("ianatz", testedTypeQName.getPrefix()); assertEquals("iana-timezone", testedTypeQName.getLocalName()); EnumerationType enumType = (EnumerationType) testedType.getBaseType(); @@ -295,12 +296,11 @@ public class TypesResolutionTest { List patterns = testedType.getPatternConstraints(); assertEquals(1, patterns.size()); PatternConstraint pattern = patterns.get(0); - assertEquals("\\d*(\\.\\d*){1,127}", pattern.getRegularExpression()); + assertEquals("^\\d*(\\.\\d*){1,127}$", pattern.getRegularExpression()); QName testedTypeQName = testedType.getQName(); assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeQName.getNamespace()); assertEquals(TestUtils.createDate("2010-09-24"), testedTypeQName.getRevision()); - assertEquals("yang", testedTypeQName.getPrefix()); assertEquals("object-identifier-128", testedTypeQName.getLocalName()); ExtendedType testedTypeBase = (ExtendedType) testedType.getBaseType(); @@ -308,13 +308,12 @@ public class TypesResolutionTest { assertEquals(1, patterns.size()); pattern = patterns.get(0); - assertEquals("(([0-1](\\.[1-3]?[0-9]))|(2\\.(0|([1-9]\\d*))))(\\.(0|([1-9]\\d*)))*", + assertEquals("^(([0-1](\\.[1-3]?[0-9]))|(2\\.(0|([1-9]\\d*))))(\\.(0|([1-9]\\d*)))*$", pattern.getRegularExpression()); QName testedTypeBaseQName = testedTypeBase.getQName(); assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-yang-types"), testedTypeBaseQName.getNamespace()); assertEquals(TestUtils.createDate("2010-09-24"), testedTypeBaseQName.getRevision()); - assertEquals("yang", testedTypeBaseQName.getPrefix()); assertEquals("object-identifier", testedTypeBaseQName.getLocalName()); } @@ -327,7 +326,6 @@ public class TypesResolutionTest { QName identity = baseType.getIdentity().getQName(); assertEquals(URI.create("urn:custom.types.demo"), identity.getNamespace()); assertEquals(TestUtils.createDate("2012-04-16"), identity.getRevision()); - assertEquals("iit", identity.getPrefix()); assertEquals("service-type", identity.getLocalName()); LeafSchemaNode type = (LeafSchemaNode) tested.getDataChildByName("type"); @@ -343,4 +341,17 @@ public class TypesResolutionTest { parser.parseFiles(Arrays.asList(extdef, unionbug, inet)); } + @Test + public void testUnionWithBits() throws Exception { + File unionbits = new File(getClass().getResource("/types/union-with-bits/union-bits-model.yang").toURI()); + YangContextParser parser = new YangParserImpl(); + parser.parseFiles(Collections.singletonList(unionbits)); + } + + @Test(expected = YangParseException.class) + public void testUnionInList() throws Exception { + File unioninlist = new File(getClass().getResource("/types/union-in-list/unioninlisttest.yang").toURI()); + YangContextParser parser = new YangParserImpl(); + parser.parseFiles(Collections.singletonList(unioninlist)); + } }