X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fbinding-generator-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fyang%2Ftypes%2Ftest%2FGeneratedTypesTest.java;h=94e61892fd20da2fdd2e8380b2203deeb8224669;hb=2f3199b3a037b532cffe917451205e948be1697b;hp=095208d9779ec10ee38411f14de89dd555507e16;hpb=ca85a6f3a39b406ab122fe985ee010a41489f658;p=controller.git diff --git a/opendaylight/sal/yang-prototype/code-generator/binding-generator-impl/src/test/java/org/opendaylight/controller/sal/binding/yang/types/test/GeneratedTypesTest.java b/opendaylight/sal/yang-prototype/code-generator/binding-generator-impl/src/test/java/org/opendaylight/controller/sal/binding/yang/types/test/GeneratedTypesTest.java index 095208d977..94e61892fd 100644 --- a/opendaylight/sal/yang-prototype/code-generator/binding-generator-impl/src/test/java/org/opendaylight/controller/sal/binding/yang/types/test/GeneratedTypesTest.java +++ b/opendaylight/sal/yang-prototype/code-generator/binding-generator-impl/src/test/java/org/opendaylight/controller/sal/binding/yang/types/test/GeneratedTypesTest.java @@ -7,15 +7,16 @@ */ package org.opendaylight.controller.sal.binding.yang.types.test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import java.util.List; import java.util.Set; +import org.junit.Ignore; import org.junit.Test; import org.opendaylight.controller.sal.binding.generator.api.BindingGenerator; import org.opendaylight.controller.sal.binding.generator.impl.BindingGeneratorImpl; +import org.opendaylight.controller.sal.binding.model.api.Enumeration; import org.opendaylight.controller.sal.binding.model.api.GeneratedProperty; import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject; import org.opendaylight.controller.sal.binding.model.api.GeneratedType; @@ -36,9 +37,222 @@ public class GeneratedTypesTest { return parser.resolveSchemaContext(modules); } + @Ignore + @Test + public void testLeafEnumResolving() { + final String ietfInterfacesPath = getClass().getResource( + "/enum-test-models/ietf-interfaces@2012-11-15.yang").getPath(); + final String ifTypePath = getClass().getResource( + "/enum-test-models/iana-if-type@2012-06-05.yang").getPath(); + final String yangTypesPath = getClass().getResource( + "/enum-test-models/ietf-yang-types@2010-09-24.yang").getPath(); + + final SchemaContext context = resolveSchemaContextFromFiles( + ietfInterfacesPath, ifTypePath, yangTypesPath); + assertTrue(context != null); + + final BindingGenerator bindingGen = new BindingGeneratorImpl(); + final List genTypes = bindingGen.generateTypes(context); + assertTrue(genTypes != null); + } + + @Test + public void testTypedefEnumResolving() { + final String ianaIfTypePath = getClass().getResource( + "/leafref-test-models/iana-if-type@2012-06-05.yang").getPath(); + + final SchemaContext context = resolveSchemaContextFromFiles(ianaIfTypePath); + assertTrue(context != null); + + final BindingGenerator bindingGen = new BindingGeneratorImpl(); + final List genTypes = bindingGen.generateTypes(context); + assertTrue(genTypes != null); + assertEquals(1, genTypes.size()); + + final Type type = genTypes.get(0); + assertTrue(type instanceof GeneratedType); + + final GeneratedType genType = (GeneratedType) type; + assertEquals(1, genType.getEnumDefintions().size()); + + final Enumeration enumer = genType.getEnumDefintions().get(0); + assertEquals(272, enumer.getValues().size()); + } + + @Test + public void testMultipleModulesResolving() { + final String topologyPath = getClass().getResource( + "/abstract-topology.yang").getPath(); + final String typesPath = getClass().getResource( + "/ietf-inet-types@2010-09-24.yang").getPath(); + final SchemaContext context = resolveSchemaContextFromFiles( + topologyPath, typesPath); + assertTrue(context != null); + + final BindingGenerator bindingGen = new BindingGeneratorImpl(); + final List genTypes = bindingGen.generateTypes(context); + + assertTrue(genTypes != null); + assertEquals(13, genTypes.size()); + } + + @Test + public void testLeafrefResolving() { + final String topologyPath = getClass().getResource( + "/leafref-test-models/abstract-topology@2013-02-08.yang") + .getPath(); + final String interfacesPath = getClass().getResource( + "/leafref-test-models/ietf-interfaces@2012-11-15.yang") + .getPath(); + // final String ifTypePath = getClass().getResource( + // "/leafref-test-models/iana-if-type@2012-06-05.yang").getPath(); + final String inetTypesPath = getClass().getResource( + "/leafref-test-models/ietf-inet-types@2010-09-24.yang") + .getPath(); + final String yangTypesPath = getClass().getResource( + "/leafref-test-models/ietf-yang-types@2010-09-24.yang") + .getPath(); + + assertTrue(topologyPath != null); + assertTrue(interfacesPath != null); + // assertTrue(ifTypePath != null); + assertTrue(inetTypesPath != null); + assertTrue(yangTypesPath != null); + + // final SchemaContext context = resolveSchemaContextFromFiles( + // topologyPath, interfacesPath, ifTypePath, inetTypesPath, + // yangTypesPath); + final SchemaContext context = resolveSchemaContextFromFiles( + topologyPath, interfacesPath, inetTypesPath, yangTypesPath); + assertTrue(context != null); + assertEquals(4, context.getModules().size()); + + final BindingGenerator bindingGen = new BindingGeneratorImpl(); + final List genTypes = bindingGen.generateTypes(context); + + assertEquals(25, genTypes.size()); + assertTrue(genTypes != null); + + int resolvedLeafrefCount = 0; + for (final Type type : genTypes) { + if (type.getName().equals("InterfaceKey") + && type instanceof GeneratedTransferObject) { + final GeneratedTransferObject genTO = (GeneratedTransferObject) type; + final List properties = genTO + .getProperties(); + + assertTrue(properties != null); + for (final GeneratedProperty property : properties) { + if (property.getName().equals("InterfaceId")) { + assertTrue(property.getReturnType() != null); + assertFalse(property.getReturnType().equals( + "java.lang.Void")); + assertTrue(property.getReturnType().getName() + .equals("String")); + resolvedLeafrefCount++; + } + } + + } else if (type.getName().equals("Interface") + && type instanceof GeneratedType) { + final GeneratedType genType = (GeneratedType) type; + final List methods = genType + .getMethodDefinitions(); + + assertTrue(methods != null); + for (final MethodSignature method : methods) { + if (method.getName().equals("getInterfaceKey")) { + assertTrue(method.getReturnType() != null); + assertFalse(method.getReturnType().equals( + "java.lang.Void")); + assertTrue(method.getReturnType().getName() + .equals("InterfaceKey")); + resolvedLeafrefCount++; + } else if (method.getName().equals("getHigherLayerIf")) { + assertTrue(method.getReturnType() != null); + assertFalse(method.getReturnType().equals( + "java.lang.Void")); + assertTrue(method.getReturnType().getName() + .equals("List")); + resolvedLeafrefCount++; + } + } + } else if (type.getName().equals("NetworkLink") + && type instanceof GeneratedType) { + final GeneratedType genType = (GeneratedType) type; + final List methods = genType + .getMethodDefinitions(); + assertTrue(methods != null); + for (MethodSignature method : methods) { + if (method.getName().equals("getInterface")) { + assertTrue(method.getReturnType() != null); + assertFalse(method.getReturnType().equals( + "java.lang.Void")); + assertTrue(method.getReturnType().getName() + .equals("String")); + resolvedLeafrefCount++; + } + } + } else if ((type.getName().equals("SourceNode") || type.getName() + .equals("DestinationNode")) + && type instanceof GeneratedType) { + final GeneratedType genType = (GeneratedType) type; + final List methods = genType + .getMethodDefinitions(); + assertTrue(methods != null); + for (MethodSignature method : methods) { + if (method.getName().equals("getId")) { + assertTrue(method.getReturnType() != null); + assertFalse(method.getReturnType().equals( + "java.lang.Void")); + assertTrue(method.getReturnType().getName() + .equals("String")); + resolvedLeafrefCount++; + } + } + } else if (type.getName().equals("Tunnel") + && type instanceof GeneratedType) { + final GeneratedType genType = (GeneratedType) type; + final List methods = genType + .getMethodDefinitions(); + assertTrue(methods != null); + for (MethodSignature method : methods) { + if (method.getName().equals("getTunnelKey")) { + assertTrue(method.getReturnType() != null); + assertFalse(method.getReturnType().equals( + "java.lang.Void")); + assertTrue(method.getReturnType().getName() + .equals("TunnelKey")); + resolvedLeafrefCount++; + } + } + } else if (type.getName().equals("TunnelKey") + && type instanceof GeneratedTransferObject) { + final GeneratedTransferObject genTO = (GeneratedTransferObject) type; + final List properties = genTO + .getProperties(); + + assertTrue(properties != null); + for (final GeneratedProperty property : properties) { + if (property.getName().equals("TunnelId")) { + assertTrue(property.getReturnType() != null); + assertFalse(property.getReturnType().equals( + "java.lang.Void")); + assertTrue(property.getReturnType().getName() + .equals("String")); + resolvedLeafrefCount++; + } + } + } + } + assertEquals(10, resolvedLeafrefCount); + } + + @Ignore @Test public void testContainerResolving() { - final String filePath = getClass().getResource("/simple-container-demo.yang").getPath(); + final String filePath = getClass().getResource( + "/simple-container-demo.yang").getPath(); final SchemaContext context = resolveSchemaContextFromFiles(filePath); assertTrue(context != null); @@ -46,7 +260,7 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(2, genTypes.size()); + assertEquals(3, genTypes.size()); final GeneratedType simpleContainer = (GeneratedType) genTypes.get(0); final GeneratedType nestedContainer = (GeneratedType) genTypes.get(1); @@ -113,9 +327,11 @@ public class GeneratedTypesTest { assertEquals(4, methodsCount); } + @Ignore @Test public void testLeafListResolving() { - final String filePath = getClass().getResource("/simple-leaf-list-demo.yang").getPath(); + final String filePath = getClass().getResource( + "/simple-leaf-list-demo.yang").getPath(); final SchemaContext context = resolveSchemaContextFromFiles(filePath); assertTrue(context != null); @@ -123,7 +339,7 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(2, genTypes.size()); + assertEquals(3, genTypes.size()); final GeneratedType simpleContainer = (GeneratedType) genTypes.get(0); final GeneratedType nestedContainer = (GeneratedType) genTypes.get(1); @@ -185,9 +401,11 @@ public class GeneratedTypesTest { assertEquals(3, methodsCount); } + @Ignore @Test public void testListResolving() { - final String filePath = getClass().getResource("/simple-list-demo.yang").getPath(); + final String filePath = getClass() + .getResource("/simple-list-demo.yang").getPath(); final SchemaContext context = resolveSchemaContextFromFiles(filePath); assertTrue(context != null); @@ -195,7 +413,7 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(4, genTypes.size()); + assertEquals(5, genTypes.size()); int genTypesCount = 0; int genTOsCount = 0; @@ -268,7 +486,8 @@ public class GeneratedTypesTest { @Test public void testListCompositeKeyResolving() { - final String filePath = getClass().getResource("/list-composite-key.yang").getPath(); + final String filePath = getClass().getResource( + "/list-composite-key.yang").getPath(); final SchemaContext context = resolveSchemaContextFromFiles(filePath); assertTrue(context != null); @@ -277,7 +496,7 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(6, genTypes.size()); + assertEquals(7, genTypes.size()); int genTypesCount = 0; int genTOsCount = 0; @@ -309,13 +528,14 @@ public class GeneratedTypesTest { } } - assertEquals(4, genTypesCount); + assertEquals(5, genTypesCount); assertEquals(2, genTOsCount); } @Test public void testGeneratedTypes() { - final String filePath = getClass().getResource("/demo-topology.yang").getPath(); + final String filePath = getClass().getResource("/demo-topology.yang") + .getPath(); final SchemaContext context = resolveSchemaContextFromFiles(filePath); assertTrue(context != null); @@ -323,7 +543,7 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(13, genTypes.size()); + assertEquals(14, genTypes.size()); int genTypesCount = 0; int genTOsCount = 0; @@ -335,7 +555,7 @@ public class GeneratedTypesTest { } } - assertEquals(10, genTypesCount); + assertEquals(11, genTypesCount); assertEquals(3, genTOsCount); } }