-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.binding.yang.types.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-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.GeneratedProperty;
-import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;
-import org.opendaylight.controller.sal.binding.model.api.GeneratedType;
-import org.opendaylight.controller.sal.binding.model.api.MethodSignature;
-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;
-
-public class GeneratedTypesTest {
-
- private SchemaContext resolveSchemaContextFromFiles(
- final String... yangFiles) {
- final YangModelParser parser = new YangModelParserImpl();
- final Set<Module> modules = parser.parseYangModels(yangFiles);
-
- return parser.resolveSchemaContext(modules);
- }
-
- @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<Type> genTypes = bindingGen.generateTypes(context);
-
- assertTrue(genTypes != null);
- assertEquals(11, genTypes.size());
-
-
- }
-
- @Ignore
- @Test
- public void testContainerResolving() {
- final String filePath = getClass().getResource("/simple-container-demo.yang").getPath();
- final SchemaContext context = resolveSchemaContextFromFiles(filePath);
- assertTrue(context != null);
-
- final BindingGenerator bindingGen = new BindingGeneratorImpl();
- final List<Type> genTypes = bindingGen.generateTypes(context);
-
- assertTrue(genTypes != null);
- assertEquals(2, genTypes.size());
-
- final GeneratedType simpleContainer = (GeneratedType) genTypes.get(0);
- final GeneratedType nestedContainer = (GeneratedType) genTypes.get(1);
-
- assertEquals("SimpleContainer", simpleContainer.getName());
- assertEquals("NestedContainer", nestedContainer.getName());
- assertEquals(4, simpleContainer.getMethodDefinitions().size());
- assertEquals(4, nestedContainer.getMethodDefinitions().size());
-
- int methodsCount = 0;
- for (final MethodSignature method : simpleContainer
- .getMethodDefinitions()) {
- if (method.getName().equals("getFoo")) {
- method.getReturnType().getName().equals("Integer");
- methodsCount++;
- }
-
- if (method.getName().equals("setFoo")) {
- methodsCount++;
- final MethodSignature.Parameter param = method.getParameters()
- .get(0);
- assertEquals("foo", param.getName());
- assertEquals("Integer", param.getType().getName());
- }
-
- if (method.getName().equals("getBar")) {
- method.getReturnType().getName().equals("String");
- methodsCount++;
- }
-
- if (method.getName().equals("getNestedContainer")) {
- method.getReturnType().getName().equals("NestedContainer");
- methodsCount++;
- }
- }
- assertEquals(4, methodsCount);
-
- methodsCount = 0;
- for (final MethodSignature method : nestedContainer
- .getMethodDefinitions()) {
- if (method.getName().equals("getFoo")) {
- method.getReturnType().getName().equals("Short");
- methodsCount++;
- }
-
- if (method.getName().equals("setFoo")) {
- methodsCount++;
- final MethodSignature.Parameter param = method.getParameters()
- .get(0);
- assertEquals("foo", param.getName());
- assertEquals("Short", param.getType().getName());
- }
-
- if (method.getName().equals("getBar")) {
- method.getReturnType().getName().equals("String");
- methodsCount++;
- }
-
- if (method.getName().equals("setBar")) {
- method.getReturnType().getName().equals("String");
- methodsCount++;
- }
- }
- assertEquals(4, methodsCount);
- }
-
- @Ignore
- @Test
- public void testLeafListResolving() {
- final String filePath = getClass().getResource("/simple-leaf-list-demo.yang").getPath();
- final SchemaContext context = resolveSchemaContextFromFiles(filePath);
- assertTrue(context != null);
-
- final BindingGenerator bindingGen = new BindingGeneratorImpl();
- final List<Type> genTypes = bindingGen.generateTypes(context);
-
- assertTrue(genTypes != null);
- assertEquals(2, genTypes.size());
-
- final GeneratedType simpleContainer = (GeneratedType) genTypes.get(0);
- final GeneratedType nestedContainer = (GeneratedType) genTypes.get(1);
-
- assertEquals("SimpleContainer", simpleContainer.getName());
- assertEquals("NestedContainer", nestedContainer.getName());
- assertEquals(4, simpleContainer.getMethodDefinitions().size());
- assertEquals(3, nestedContainer.getMethodDefinitions().size());
-
- int methodsCount = 0;
- for (final MethodSignature method : simpleContainer
- .getMethodDefinitions()) {
- if (method.getName().equals("getFoo")) {
- method.getReturnType().getName().equals("List");
- methodsCount++;
- }
-
- if (method.getName().equals("setFoo")) {
- methodsCount++;
- final MethodSignature.Parameter param = method.getParameters()
- .get(0);
- assertEquals("foo", param.getName());
- assertEquals("List", param.getType().getName());
- }
-
- if (method.getName().equals("getBar")) {
- method.getReturnType().getName().equals("String");
- methodsCount++;
- }
-
- if (method.getName().equals("getNestedContainer")) {
- method.getReturnType().getName().equals("NestedContainer");
- methodsCount++;
- }
- }
- assertEquals(4, methodsCount);
-
- methodsCount = 0;
- for (final MethodSignature method : nestedContainer
- .getMethodDefinitions()) {
- if (method.getName().equals("getFoo")) {
- method.getReturnType().getName().equals("Short");
- methodsCount++;
- }
-
- if (method.getName().equals("setFoo")) {
- methodsCount++;
- final MethodSignature.Parameter param = method.getParameters()
- .get(0);
- assertEquals("foo", param.getName());
- assertEquals("Short", param.getType().getName());
- }
-
- if (method.getName().equals("getBar")) {
- method.getReturnType().getName().equals("List");
- methodsCount++;
- }
- }
- assertEquals(3, methodsCount);
- }
-
- @Ignore
- @Test
- public void testListResolving() {
- final String filePath = getClass().getResource("/simple-list-demo.yang").getPath();
- final SchemaContext context = resolveSchemaContextFromFiles(filePath);
- assertTrue(context != null);
-
- final BindingGenerator bindingGen = new BindingGeneratorImpl();
- final List<Type> genTypes = bindingGen.generateTypes(context);
-
- assertTrue(genTypes != null);
- assertEquals(4, genTypes.size());
-
- int genTypesCount = 0;
- int genTOsCount = 0;
- for (final Type type : genTypes) {
- if (type instanceof GeneratedType) {
- 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());
- final List<MethodSignature> methods = genType
- .getMethodDefinitions();
- int methodsCount = 0;
- for (final MethodSignature method : methods) {
- if (method.getName().equals("getSimpleListKey")) {
- assertEquals("SimpleListKey", method
- .getReturnType().getName());
- methodsCount++;
- } else if (method.getName().equals(
- "getListChildContainer")) {
- assertEquals("ListChildContainer", method
- .getReturnType().getName());
- methodsCount++;
- } else if (method.getName().equals("getFoo")) {
- methodsCount++;
- } else if (method.getName().equals("setFoo")) {
- methodsCount++;
- } else if (method.getName().equals("getSimpleLeafList")) {
- methodsCount++;
- } else if (method.getName().equals("setSimpleLeafList")) {
- methodsCount++;
- } else if (method.getName().equals("getBar")) {
- methodsCount++;
- }
- }
- assertEquals(7, methodsCount);
- genTypesCount++;
- } else if (genType.getName().equals("ListChildContainer")) {
- assertEquals(2, genType.getMethodDefinitions().size());
- genTypesCount++;
- }
- } else if (type instanceof GeneratedTransferObject) {
- genTOsCount++;
- final GeneratedTransferObject genTO = (GeneratedTransferObject) type;
- final List<GeneratedProperty> properties = genTO
- .getProperties();
- final List<GeneratedProperty> hashProps = genTO
- .getHashCodeIdentifiers();
- final List<GeneratedProperty> equalProps = genTO
- .getEqualsIdentifiers();
-
- assertEquals(1, properties.size());
- assertEquals("ListKey", properties.get(0).getName());
- assertEquals("Byte", properties.get(0).getReturnType()
- .getName());
- assertEquals(true, properties.get(0).isReadOnly());
- assertEquals(1, hashProps.size());
- assertEquals("ListKey", hashProps.get(0).getName());
- assertEquals("Byte", hashProps.get(0).getReturnType().getName());
- assertEquals(1, equalProps.size());
- assertEquals("ListKey", equalProps.get(0).getName());
- assertEquals("Byte", equalProps.get(0).getReturnType()
- .getName());
- }
- }
- assertEquals(3, genTypesCount);
- assertEquals(1, genTOsCount);
- }
-
- @Ignore
- @Test
- public void testListCompositeKeyResolving() {
- final String filePath = getClass().getResource("/list-composite-key.yang").getPath();
- final SchemaContext context = resolveSchemaContextFromFiles(filePath);
-
- assertTrue(context != null);
-
- final BindingGenerator bindingGen = new BindingGeneratorImpl();
- final List<Type> genTypes = bindingGen.generateTypes(context);
-
- assertTrue(genTypes != null);
- assertEquals(6, genTypes.size());
-
- int genTypesCount = 0;
- int genTOsCount = 0;
- for (final Type type : genTypes) {
- if (type instanceof GeneratedType) {
- genTypesCount++;
- } else if (type instanceof GeneratedTransferObject) {
- final GeneratedTransferObject genTO = (GeneratedTransferObject) type;
-
- if (genTO.getName().equals("CompositeKeyListKey")) {
- final List<GeneratedProperty> properties = genTO
- .getProperties();
- int propertyCount = 0;
- for (final GeneratedProperty prop : properties) {
- if (prop.getName().equals("Key1")) {
- propertyCount++;
- } else if (prop.getName().equals("Key2")) {
- propertyCount++;
- }
- }
- assertEquals(2, propertyCount);
- genTOsCount++;
- } else if (genTO.getName().equals("InnerListKey")) {
- final List<GeneratedProperty> properties = genTO
- .getProperties();
- assertEquals(1, properties.size());
- genTOsCount++;
- }
- }
- }
-
- assertEquals(4, genTypesCount);
- assertEquals(2, genTOsCount);
- }
-
- @Ignore
- @Test
- public void testGeneratedTypes() {
- final String filePath = getClass().getResource("/demo-topology.yang").getPath();
- final SchemaContext context = resolveSchemaContextFromFiles(filePath);
- assertTrue(context != null);
-
- final BindingGenerator bindingGen = new BindingGeneratorImpl();
- final List<Type> genTypes = bindingGen.generateTypes(context);
-
- assertTrue(genTypes != null);
- assertEquals(13, genTypes.size());
-
- int genTypesCount = 0;
- int genTOsCount = 0;
- for (final Type type : genTypes) {
- if (type instanceof GeneratedType) {
- genTypesCount++;
- } else if (type instanceof GeneratedTransferObject) {
- genTOsCount++;
- }
- }
-
- assertEquals(10, genTypesCount);
- assertEquals(3, genTOsCount);
- }
-}
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.controller.sal.binding.yang.types.test;\r
+\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertTrue;\r
+\r
+import java.util.List;\r
+import java.util.Set;\r
+\r
+import org.junit.Test;\r
+import org.opendaylight.controller.sal.binding.generator.api.BindingGenerator;\r
+import org.opendaylight.controller.sal.binding.generator.impl.BindingGeneratorImpl;\r
+import org.opendaylight.controller.sal.binding.model.api.GeneratedProperty;\r
+import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;\r
+import org.opendaylight.controller.sal.binding.model.api.GeneratedType;\r
+import org.opendaylight.controller.sal.binding.model.api.MethodSignature;\r
+import org.opendaylight.controller.sal.binding.model.api.Type;\r
+import org.opendaylight.controller.yang.model.api.Module;\r
+import org.opendaylight.controller.yang.model.api.SchemaContext;\r
+import org.opendaylight.controller.yang.model.parser.api.YangModelParser;\r
+import org.opendaylight.controller.yang.model.parser.impl.YangModelParserImpl;\r
+\r
+public class GeneratedTypesTest {\r
+\r
+ private SchemaContext resolveSchemaContextFromFiles(\r
+ final String... yangFiles) {\r
+ final YangModelParser parser = new YangModelParserImpl();\r
+ final Set<Module> modules = parser.parseYangModels(yangFiles);\r
+\r
+ return parser.resolveSchemaContext(modules);\r
+ }\r
+\r
+ @Test\r
+ public void testMultipleModulesResolving() {\r
+ final String topologyPath = getClass().getResource(\r
+ "/abstract-topology.yang").getPath();\r
+ final String typesPath = getClass().getResource(\r
+ "/ietf-inet-types@2010-09-24.yang").getPath();\r
+ final SchemaContext context = resolveSchemaContextFromFiles(\r
+ topologyPath, typesPath);\r
+ assertTrue(context != null);\r
+\r
+ final BindingGenerator bindingGen = new BindingGeneratorImpl();\r
+ final List<Type> genTypes = bindingGen.generateTypes(context);\r
+\r
+ assertTrue(genTypes != null);\r
+ assertEquals(11, genTypes.size());\r
+ }\r
+ \r
+ @Test\r
+ public void testLeafrefResolving() {\r
+ final String topologyPath = getClass().getResource(\r
+ "/leafref-test-models/abstract-topology@2013-02-08.yang")\r
+ .getPath();\r
+ final String interfacesPath = getClass().getResource(\r
+ "/leafref-test-models/ietf-interfaces@2012-11-15.yang")\r
+ .getPath();\r
+// final String ifTypePath = getClass().getResource(\r
+// "/leafref-test-models/iana-if-type@2012-06-05.yang").getPath();\r
+ final String inetTypesPath = getClass().getResource(\r
+ "/leafref-test-models/ietf-inet-types@2010-09-24.yang")\r
+ .getPath();\r
+ final String yangTypesPath = getClass().getResource(\r
+ "/leafref-test-models/ietf-yang-types@2010-09-24.yang")\r
+ .getPath();\r
+\r
+ assertTrue(topologyPath != null);\r
+ assertTrue(interfacesPath != null);\r
+// assertTrue(ifTypePath != null);\r
+ assertTrue(inetTypesPath != null);\r
+ assertTrue(yangTypesPath != null);\r
+\r
+// final SchemaContext context = resolveSchemaContextFromFiles(\r
+// topologyPath, interfacesPath, ifTypePath, inetTypesPath, yangTypesPath);\r
+ final SchemaContext context = resolveSchemaContextFromFiles(\r
+ topologyPath, interfacesPath, inetTypesPath, yangTypesPath);\r
+ assertTrue(context != null);\r
+ assertEquals(4, context.getModules().size());\r
+ \r
+ final BindingGenerator bindingGen = new BindingGeneratorImpl();\r
+ final List<Type> genTypes = bindingGen.generateTypes(context);\r
+ \r
+ assertEquals(21, genTypes.size());\r
+ assertTrue(genTypes != null);\r
+ \r
+ for (final Type genType : genTypes) {\r
+ if (genType.getName().equals("Interface") && genType instanceof GeneratedType) {\r
+// System.out.println(((GeneratedType)genType).getMethodDefinitions().toString());\r
+ } else if (genType.getName().equals("NetworkLink") && genType instanceof GeneratedType) {\r
+// System.out.println(((GeneratedType)genType).getMethodDefinitions().toString());\r
+ } \r
+ }\r
+ }\r
+\r
+ @Test\r
+ public void testContainerResolving() {\r
+ final String filePath = getClass().getResource(\r
+ "/simple-container-demo.yang").getPath();\r
+ final SchemaContext context = resolveSchemaContextFromFiles(filePath);\r
+ assertTrue(context != null);\r
+\r
+ final BindingGenerator bindingGen = new BindingGeneratorImpl();\r
+ final List<Type> genTypes = bindingGen.generateTypes(context);\r
+\r
+ assertTrue(genTypes != null);\r
+ assertEquals(2, genTypes.size());\r
+\r
+ final GeneratedType simpleContainer = (GeneratedType) genTypes.get(0);\r
+ final GeneratedType nestedContainer = (GeneratedType) genTypes.get(1);\r
+\r
+ assertEquals("SimpleContainer", simpleContainer.getName());\r
+ assertEquals("NestedContainer", nestedContainer.getName());\r
+ assertEquals(4, simpleContainer.getMethodDefinitions().size());\r
+ assertEquals(4, nestedContainer.getMethodDefinitions().size());\r
+\r
+ int methodsCount = 0;\r
+ for (final MethodSignature method : simpleContainer\r
+ .getMethodDefinitions()) {\r
+ if (method.getName().equals("getFoo")) {\r
+ method.getReturnType().getName().equals("Integer");\r
+ methodsCount++;\r
+ }\r
+\r
+ if (method.getName().equals("setFoo")) {\r
+ methodsCount++;\r
+ final MethodSignature.Parameter param = method.getParameters()\r
+ .get(0);\r
+ assertEquals("foo", param.getName());\r
+ assertEquals("Integer", param.getType().getName());\r
+ }\r
+\r
+ if (method.getName().equals("getBar")) {\r
+ method.getReturnType().getName().equals("String");\r
+ methodsCount++;\r
+ }\r
+\r
+ if (method.getName().equals("getNestedContainer")) {\r
+ method.getReturnType().getName().equals("NestedContainer");\r
+ methodsCount++;\r
+ }\r
+ }\r
+ assertEquals(4, methodsCount);\r
+\r
+ methodsCount = 0;\r
+ for (final MethodSignature method : nestedContainer\r
+ .getMethodDefinitions()) {\r
+ if (method.getName().equals("getFoo")) {\r
+ method.getReturnType().getName().equals("Short");\r
+ methodsCount++;\r
+ }\r
+\r
+ if (method.getName().equals("setFoo")) {\r
+ methodsCount++;\r
+ final MethodSignature.Parameter param = method.getParameters()\r
+ .get(0);\r
+ assertEquals("foo", param.getName());\r
+ assertEquals("Short", param.getType().getName());\r
+ }\r
+\r
+ if (method.getName().equals("getBar")) {\r
+ method.getReturnType().getName().equals("String");\r
+ methodsCount++;\r
+ }\r
+\r
+ if (method.getName().equals("setBar")) {\r
+ method.getReturnType().getName().equals("String");\r
+ methodsCount++;\r
+ }\r
+ }\r
+ assertEquals(4, methodsCount);\r
+ }\r
+\r
+ @Test\r
+ public void testLeafListResolving() {\r
+ final String filePath = getClass().getResource(\r
+ "/simple-leaf-list-demo.yang").getPath();\r
+ final SchemaContext context = resolveSchemaContextFromFiles(filePath);\r
+ assertTrue(context != null);\r
+\r
+ final BindingGenerator bindingGen = new BindingGeneratorImpl();\r
+ final List<Type> genTypes = bindingGen.generateTypes(context);\r
+\r
+ assertTrue(genTypes != null);\r
+ assertEquals(2, genTypes.size());\r
+\r
+ final GeneratedType simpleContainer = (GeneratedType) genTypes.get(0);\r
+ final GeneratedType nestedContainer = (GeneratedType) genTypes.get(1);\r
+\r
+ assertEquals("SimpleContainer", simpleContainer.getName());\r
+ assertEquals("NestedContainer", nestedContainer.getName());\r
+ assertEquals(4, simpleContainer.getMethodDefinitions().size());\r
+ assertEquals(3, nestedContainer.getMethodDefinitions().size());\r
+\r
+ int methodsCount = 0;\r
+ for (final MethodSignature method : simpleContainer\r
+ .getMethodDefinitions()) {\r
+ if (method.getName().equals("getFoo")) {\r
+ method.getReturnType().getName().equals("List");\r
+ methodsCount++;\r
+ }\r
+\r
+ if (method.getName().equals("setFoo")) {\r
+ methodsCount++;\r
+ final MethodSignature.Parameter param = method.getParameters()\r
+ .get(0);\r
+ assertEquals("foo", param.getName());\r
+ assertEquals("List", param.getType().getName());\r
+ }\r
+\r
+ if (method.getName().equals("getBar")) {\r
+ method.getReturnType().getName().equals("String");\r
+ methodsCount++;\r
+ }\r
+\r
+ if (method.getName().equals("getNestedContainer")) {\r
+ method.getReturnType().getName().equals("NestedContainer");\r
+ methodsCount++;\r
+ }\r
+ }\r
+ assertEquals(4, methodsCount);\r
+\r
+ methodsCount = 0;\r
+ for (final MethodSignature method : nestedContainer\r
+ .getMethodDefinitions()) {\r
+ if (method.getName().equals("getFoo")) {\r
+ method.getReturnType().getName().equals("Short");\r
+ methodsCount++;\r
+ }\r
+\r
+ if (method.getName().equals("setFoo")) {\r
+ methodsCount++;\r
+ final MethodSignature.Parameter param = method.getParameters()\r
+ .get(0);\r
+ assertEquals("foo", param.getName());\r
+ assertEquals("Short", param.getType().getName());\r
+ }\r
+\r
+ if (method.getName().equals("getBar")) {\r
+ method.getReturnType().getName().equals("List");\r
+ methodsCount++;\r
+ }\r
+ }\r
+ assertEquals(3, methodsCount);\r
+ }\r
+\r
+ @Test\r
+ public void testListResolving() {\r
+ final String filePath = getClass()\r
+ .getResource("/simple-list-demo.yang").getPath();\r
+ final SchemaContext context = resolveSchemaContextFromFiles(filePath);\r
+ assertTrue(context != null);\r
+\r
+ final BindingGenerator bindingGen = new BindingGeneratorImpl();\r
+ final List<Type> genTypes = bindingGen.generateTypes(context);\r
+\r
+ assertTrue(genTypes != null);\r
+ assertEquals(4, genTypes.size());\r
+\r
+ int genTypesCount = 0;\r
+ int genTOsCount = 0;\r
+ for (final Type type : genTypes) {\r
+ if (type instanceof GeneratedType) {\r
+ final GeneratedType genType = (GeneratedType) type;\r
+ if (genType.getName().equals("ListParentContainer")) {\r
+ assertEquals(2, genType.getMethodDefinitions().size());\r
+ genTypesCount++;\r
+ } else if (genType.getName().equals("SimpleList")) {\r
+ assertEquals(7, genType.getMethodDefinitions().size());\r
+ final List<MethodSignature> methods = genType\r
+ .getMethodDefinitions();\r
+ int methodsCount = 0;\r
+ for (final MethodSignature method : methods) {\r
+ if (method.getName().equals("getSimpleListKey")) {\r
+ assertEquals("SimpleListKey", method\r
+ .getReturnType().getName());\r
+ methodsCount++;\r
+ } else if (method.getName().equals(\r
+ "getListChildContainer")) {\r
+ assertEquals("ListChildContainer", method\r
+ .getReturnType().getName());\r
+ methodsCount++;\r
+ } else if (method.getName().equals("getFoo")) {\r
+ methodsCount++;\r
+ } else if (method.getName().equals("setFoo")) {\r
+ methodsCount++;\r
+ } else if (method.getName().equals("getSimpleLeafList")) {\r
+ methodsCount++;\r
+ } else if (method.getName().equals("setSimpleLeafList")) {\r
+ methodsCount++;\r
+ } else if (method.getName().equals("getBar")) {\r
+ methodsCount++;\r
+ }\r
+ }\r
+ assertEquals(7, methodsCount);\r
+ genTypesCount++;\r
+ } else if (genType.getName().equals("ListChildContainer")) {\r
+ assertEquals(2, genType.getMethodDefinitions().size());\r
+ genTypesCount++;\r
+ }\r
+ } else if (type instanceof GeneratedTransferObject) {\r
+ genTOsCount++;\r
+ final GeneratedTransferObject genTO = (GeneratedTransferObject) type;\r
+ final List<GeneratedProperty> properties = genTO\r
+ .getProperties();\r
+ final List<GeneratedProperty> hashProps = genTO\r
+ .getHashCodeIdentifiers();\r
+ final List<GeneratedProperty> equalProps = genTO\r
+ .getEqualsIdentifiers();\r
+\r
+ assertEquals(1, properties.size());\r
+ assertEquals("ListKey", properties.get(0).getName());\r
+ assertEquals("Byte", properties.get(0).getReturnType()\r
+ .getName());\r
+ assertEquals(true, properties.get(0).isReadOnly());\r
+ assertEquals(1, hashProps.size());\r
+ assertEquals("ListKey", hashProps.get(0).getName());\r
+ assertEquals("Byte", hashProps.get(0).getReturnType().getName());\r
+ assertEquals(1, equalProps.size());\r
+ assertEquals("ListKey", equalProps.get(0).getName());\r
+ assertEquals("Byte", equalProps.get(0).getReturnType()\r
+ .getName());\r
+ }\r
+ }\r
+ assertEquals(3, genTypesCount);\r
+ assertEquals(1, genTOsCount);\r
+ }\r
+\r
+ @Test\r
+ public void testListCompositeKeyResolving() {\r
+ final String filePath = getClass().getResource(\r
+ "/list-composite-key.yang").getPath();\r
+ final SchemaContext context = resolveSchemaContextFromFiles(filePath);\r
+\r
+ assertTrue(context != null);\r
+\r
+ final BindingGenerator bindingGen = new BindingGeneratorImpl();\r
+ final List<Type> genTypes = bindingGen.generateTypes(context);\r
+\r
+ assertTrue(genTypes != null);\r
+ assertEquals(6, genTypes.size());\r
+\r
+ int genTypesCount = 0;\r
+ int genTOsCount = 0;\r
+ for (final Type type : genTypes) {\r
+ if (type instanceof GeneratedType) {\r
+ genTypesCount++;\r
+ } else if (type instanceof GeneratedTransferObject) {\r
+ final GeneratedTransferObject genTO = (GeneratedTransferObject) type;\r
+\r
+ if (genTO.getName().equals("CompositeKeyListKey")) {\r
+ final List<GeneratedProperty> properties = genTO\r
+ .getProperties();\r
+ int propertyCount = 0;\r
+ for (final GeneratedProperty prop : properties) {\r
+ if (prop.getName().equals("Key1")) {\r
+ propertyCount++;\r
+ } else if (prop.getName().equals("Key2")) {\r
+ propertyCount++;\r
+ }\r
+ }\r
+ assertEquals(2, propertyCount);\r
+ genTOsCount++;\r
+ } else if (genTO.getName().equals("InnerListKey")) {\r
+ final List<GeneratedProperty> properties = genTO\r
+ .getProperties();\r
+ assertEquals(1, properties.size());\r
+ genTOsCount++;\r
+ }\r
+ }\r
+ }\r
+\r
+ assertEquals(4, genTypesCount);\r
+ assertEquals(2, genTOsCount);\r
+ }\r
+\r
+ @Test\r
+ public void testGeneratedTypes() {\r
+ final String filePath = getClass().getResource("/demo-topology.yang")\r
+ .getPath();\r
+ final SchemaContext context = resolveSchemaContextFromFiles(filePath);\r
+ assertTrue(context != null);\r
+\r
+ final BindingGenerator bindingGen = new BindingGeneratorImpl();\r
+ final List<Type> genTypes = bindingGen.generateTypes(context);\r
+\r
+ assertTrue(genTypes != null);\r
+ assertEquals(13, genTypes.size());\r
+\r
+ int genTypesCount = 0;\r
+ int genTOsCount = 0;\r
+ for (final Type type : genTypes) {\r
+ if (type instanceof GeneratedType) {\r
+ genTypesCount++;\r
+ } else if (type instanceof GeneratedTransferObject) {\r
+ genTOsCount++;\r
+ }\r
+ }\r
+\r
+ assertEquals(10, genTypesCount);\r
+ assertEquals(3, genTOsCount);\r
+ }\r
+}\r