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%2Fgenerator%2Fimpl%2FGeneratedTypesTest.java;h=b226252eaea7a635cace166cb3721f307725058a;hb=ff1b4a79cca00743a00c3b0b1100bd0ab2b2fb31;hp=39afc37de73ce9cef26eeff5346d788351f512d8;hpb=9fab620d933bab1ddf7eef39087fa515e6d0c988;p=controller.git diff --git a/opendaylight/sal/yang-prototype/code-generator/binding-generator-impl/src/test/java/org/opendaylight/controller/sal/binding/generator/impl/GeneratedTypesTest.java b/opendaylight/sal/yang-prototype/code-generator/binding-generator-impl/src/test/java/org/opendaylight/controller/sal/binding/generator/impl/GeneratedTypesTest.java index 39afc37de7..b226252eae 100644 --- a/opendaylight/sal/yang-prototype/code-generator/binding-generator-impl/src/test/java/org/opendaylight/controller/sal/binding/generator/impl/GeneratedTypesTest.java +++ b/opendaylight/sal/yang-prototype/code-generator/binding-generator-impl/src/test/java/org/opendaylight/controller/sal/binding/generator/impl/GeneratedTypesTest.java @@ -9,13 +9,13 @@ package org.opendaylight.controller.sal.binding.generator.impl; import static org.junit.Assert.*; +import java.io.File; +import java.util.ArrayList; 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; @@ -25,57 +25,21 @@ import org.opendaylight.controller.sal.binding.model.api.Type; import org.opendaylight.controller.yang.model.api.Module; import org.opendaylight.controller.yang.model.api.SchemaContext; import org.opendaylight.controller.yang.model.parser.api.YangModelParser; -import org.opendaylight.controller.yang.model.parser.impl.YangModelParserImpl; +import org.opendaylight.controller.yang.parser.impl.YangParserImpl; public class GeneratedTypesTest { private SchemaContext resolveSchemaContextFromFiles( final String... yangFiles) { - final YangModelParser parser = new YangModelParserImpl(); - final Set modules = parser.parseYangModels(yangFiles); + final YangModelParser parser = new YangParserImpl(); - return parser.resolveSchemaContext(modules); - } - - @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 List inputFiles = new ArrayList(); + for (int i = 0; i < yangFiles.length; ++i) { + inputFiles.add(new File(yangFiles[i])); + } - final Enumeration enumer = genType.getEnumDefintions().get(0); - assertEquals(272, enumer.getValues().size()); + final Set modules = parser.parseYangModels(inputFiles); + return parser.resolveSchemaContext(modules); } @Test @@ -92,7 +56,7 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(13, genTypes.size()); + assertEquals(29, genTypes.size()); } @Test @@ -129,125 +93,163 @@ public class GeneratedTypesTest { final BindingGenerator bindingGen = new BindingGeneratorImpl(); final List genTypes = bindingGen.generateTypes(context); - assertEquals(25, genTypes.size()); + assertEquals(57, genTypes.size()); assertTrue(genTypes != null); - int resolvedLeafrefCount = 0; + GeneratedTransferObject gtIfcKey = null; + GeneratedType gtIfc = null; + GeneratedType gtNetworkLink = null; + GeneratedType gtSource = null; + GeneratedType gtDest = null; + GeneratedType gtTunnel = null; + GeneratedTransferObject gtTunnelKey = null; 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(); + String name = type.getName(); + if ("InterfaceKey".equals(name)) { + gtIfcKey = (GeneratedTransferObject) type; + } else if ("Interface".equals(name)) { + gtIfc = (GeneratedType) type; + } else if ("NetworkLink".equals(name)) { + gtNetworkLink = (GeneratedType) type; + } else if ("SourceNode".equals(name)) { + gtSource = (GeneratedType) type; + } else if ("DestinationNode".equals(name)) { + gtDest = (GeneratedType) type; + } else if ("Tunnel".equals(name)) { + gtTunnel = (GeneratedType) type; + } else if ("TunnelKey".equals(name)) { + gtTunnelKey = (GeneratedTransferObject) type; + } + } - 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++; - } - } + assertNotNull(gtIfcKey); + assertNotNull(gtIfc); + assertNotNull(gtNetworkLink); + assertNotNull(gtSource); + assertNotNull(gtDest); + assertNotNull(gtTunnel); + assertNotNull(gtTunnelKey); + + // InterfaceId + final List gtIfcKeyProps = gtIfcKey.getProperties(); + assertNotNull(gtIfcKeyProps); + GeneratedProperty ifcIdProp = null; + for (final GeneratedProperty property : gtIfcKeyProps) { + if (property.getName().equals("InterfaceId")) { + ifcIdProp = property; + } + } + assertNotNull(ifcIdProp); + Type ifcIdPropType = ifcIdProp.getReturnType(); + assertNotNull(ifcIdPropType); + assertFalse(ifcIdPropType.equals("java.lang.Void")); + assertTrue(ifcIdPropType.getName().equals("String")); + + // Interface + final List gtIfcMethods = gtIfc.getMethodDefinitions(); + assertNotNull(gtIfcMethods); + MethodSignature getIfcKey = null; + MethodSignature getHigherLayerIf = null; + for (final MethodSignature method : gtIfcMethods) { + if (method.getName().equals("getInterfaceKey")) { + getIfcKey = method; + } else if (method.getName().equals("getHigherLayerIf")) { + getHigherLayerIf = method; + } + } + assertNotNull(getIfcKey); + Type getIfcKeyType = getIfcKey.getReturnType(); + assertNotNull(getIfcKeyType); + assertFalse(getIfcKeyType.equals("java.lang.Void")); + assertTrue(getIfcKeyType.getName().equals("InterfaceKey")); + + assertNotNull(getHigherLayerIf); + Type getHigherLayerIfType = getHigherLayerIf.getReturnType(); + assertNotNull(getHigherLayerIfType); + assertFalse(getHigherLayerIfType.equals("java.lang.Void")); + assertTrue(getHigherLayerIfType.getName().equals("List")); + + // NetworkLink + final List gtNetworkLinkMethods = gtNetworkLink + .getMethodDefinitions(); + assertNotNull(gtNetworkLinkMethods); + MethodSignature getIfc = null; + for (MethodSignature method : gtNetworkLinkMethods) { + if (method.getName().equals("getInterface")) { + getIfc = method; + } + } + assertNotNull(getIfc); + Type getIfcType = getIfc.getReturnType(); + assertNotNull(getIfcType); + assertFalse(getIfcType.equals("java.lang.Void")); + assertTrue(getIfcType.getName().equals("String")); + + // SourceNode + final List gtSourceMethods = gtSource + .getMethodDefinitions(); + assertNotNull(gtSourceMethods); + MethodSignature getIdSource = null; + for (MethodSignature method : gtSourceMethods) { + if (method.getName().equals("getId")) { + getIdSource = method; + } + } + assertNotNull(getIdSource); + Type getIdType = getIdSource.getReturnType(); + assertNotNull(getIdType); + assertFalse(getIdType.equals("java.lang.Void")); + assertTrue(getIdType.getName().equals("Uri")); + + // DestinationNode + final List gtDestMethods = gtDest + .getMethodDefinitions(); + assertNotNull(gtDestMethods); + MethodSignature getIdDest = null; + for (MethodSignature method : gtDestMethods) { + if (method.getName().equals("getId")) { + getIdDest = method; + } + } + assertNotNull(getIdDest); + Type getIdDestType = getIdDest.getReturnType(); + assertNotNull(getIdDestType); + assertFalse(getIdDestType.equals("java.lang.Void")); + assertTrue(getIdDestType.getName().equals("Uri")); + + // Tunnel + final List gtTunnelMethods = gtTunnel + .getMethodDefinitions(); + assertNotNull(gtTunnelMethods); + MethodSignature getTunnelKey = null; + for (MethodSignature method : gtTunnelMethods) { + if (method.getName().equals("getTunnelKey")) { + getTunnelKey = method; + } + } + assertNotNull(getTunnelKey); + Type getTunnelKeyType = getTunnelKey.getReturnType(); + assertNotNull(getTunnelKeyType); + assertFalse(getTunnelKeyType.equals("java.lang.Void")); + assertTrue(getTunnelKeyType.getName().equals("TunnelKey")); + + // TunnelKey + final List gtTunnelKeyProps = gtTunnelKey + .getProperties(); + assertNotNull(gtTunnelKeyProps); + GeneratedProperty tunnelId = null; + for (final GeneratedProperty property : gtTunnelKeyProps) { + if (property.getName().equals("TunnelId")) { + tunnelId = property; } } - assertEquals(10, resolvedLeafrefCount); + assertNotNull(tunnelId); + Type tunnelIdType = tunnelId.getReturnType(); + assertNotNull(tunnelIdType); + assertFalse(tunnelIdType.equals("java.lang.Void")); + assertTrue(tunnelIdType.getName().equals("Uri")); } - @Ignore @Test public void testContainerResolving() { final String filePath = getClass().getResource( @@ -259,14 +261,14 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(3, genTypes.size()); + assertEquals(4, genTypes.size()); - final GeneratedType simpleContainer = (GeneratedType) genTypes.get(0); - final GeneratedType nestedContainer = (GeneratedType) genTypes.get(1); + final GeneratedType simpleContainer = (GeneratedType) genTypes.get(1); + final GeneratedType nestedContainer = (GeneratedType) genTypes.get(2); assertEquals("SimpleContainer", simpleContainer.getName()); assertEquals("NestedContainer", nestedContainer.getName()); - assertEquals(4, simpleContainer.getMethodDefinitions().size()); + assertEquals(5, simpleContainer.getMethodDefinitions().size()); assertEquals(4, nestedContainer.getMethodDefinitions().size()); int methodsCount = 0; @@ -326,7 +328,6 @@ public class GeneratedTypesTest { assertEquals(4, methodsCount); } - @Ignore @Test public void testLeafListResolving() { final String filePath = getClass().getResource( @@ -338,14 +339,14 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(3, genTypes.size()); + assertEquals(4, genTypes.size()); - final GeneratedType simpleContainer = (GeneratedType) genTypes.get(0); - final GeneratedType nestedContainer = (GeneratedType) genTypes.get(1); + final GeneratedType simpleContainer = (GeneratedType) genTypes.get(1); + final GeneratedType nestedContainer = (GeneratedType) genTypes.get(2); assertEquals("SimpleContainer", simpleContainer.getName()); assertEquals("NestedContainer", nestedContainer.getName()); - assertEquals(4, simpleContainer.getMethodDefinitions().size()); + assertEquals(5, simpleContainer.getMethodDefinitions().size()); assertEquals(3, nestedContainer.getMethodDefinitions().size()); int methodsCount = 0; @@ -400,7 +401,6 @@ public class GeneratedTypesTest { assertEquals(3, methodsCount); } - @Ignore @Test public void testListResolving() { final String filePath = getClass() @@ -412,18 +412,19 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(5, genTypes.size()); + assertEquals(6, genTypes.size()); int genTypesCount = 0; int genTOsCount = 0; for (final Type type : genTypes) { - if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) { + if (type instanceof GeneratedType + && !(type instanceof GeneratedTransferObject)) { final GeneratedType genType = (GeneratedType) type; if (genType.getName().equals("ListParentContainer")) { assertEquals(2, genType.getMethodDefinitions().size()); genTypesCount++; } else if (genType.getName().equals("SimpleList")) { - assertEquals(7, genType.getMethodDefinitions().size()); + assertEquals(8, genType.getMethodDefinitions().size()); final List methods = genType .getMethodDefinitions(); int methodsCount = 0; @@ -495,12 +496,13 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(7, genTypes.size()); + assertEquals(8, genTypes.size()); int genTypesCount = 0; int genTOsCount = 0; for (final Type type : genTypes) { - if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) { + if (type instanceof GeneratedType + && !(type instanceof GeneratedTransferObject)) { genTypesCount++; } else if (type instanceof GeneratedTransferObject) { final GeneratedTransferObject genTO = (GeneratedTransferObject) type; @@ -527,7 +529,7 @@ public class GeneratedTypesTest { } } - assertEquals(5, genTypesCount); + assertEquals(6, genTypesCount); assertEquals(2, genTOsCount); } @@ -542,19 +544,20 @@ public class GeneratedTypesTest { final List genTypes = bindingGen.generateTypes(context); assertTrue(genTypes != null); - assertEquals(14, genTypes.size()); + assertEquals(15, genTypes.size()); int genTypesCount = 0; int genTOsCount = 0; for (final Type type : genTypes) { - if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) { + if (type instanceof GeneratedType + && !(type instanceof GeneratedTransferObject)) { genTypesCount++; } else if (type instanceof GeneratedTransferObject) { genTOsCount++; } } - assertEquals(11, genTypesCount); + assertEquals(12, genTypesCount); assertEquals(3, genTOsCount); } }