BindingGenerator methods return GeneratedTypes
[mdsal.git] / binding / mdsal-binding-generator-impl / src / test / java / org / opendaylight / mdsal / binding / generator / impl / GenEnumResolvingTest.java
index 8a5ec25ec3ce28845d3f492901a7bc0067852a08..7d9b89321c87789c6feefc6cf8605c51e97c6dd9 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.mdsal.binding.generator.impl;
 
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -17,28 +19,22 @@ import org.opendaylight.mdsal.binding.model.api.Enumeration;
 import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.mdsal.binding.model.api.MethodSignature;
 import org.opendaylight.mdsal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class GenEnumResolvingTest {
-
     @Test
     public void testLeafEnumResolving() {
-        final SchemaContext context = YangParserTestUtils.parseYangResources(GenEnumResolvingTest.class,
-            "/enum-test-models/ietf-interfaces@2012-11-15.yang", "/ietf/iana-if-type.yang");
-        assertTrue(context != null);
-
-        final List<Type> genTypes = DefaultBindingGenerator.generateFor(context);
-        assertTrue(genTypes != null);
+        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResources(
+            GenEnumResolvingTest.class,
+            "/enum-test-models/ietf-interfaces@2012-11-15.yang", "/ietf-models/iana-if-type.yang"));
+        assertNotNull(genTypes);
 
         assertEquals("Expected count of all Generated Types", 6, genTypes.size());
 
         GeneratedType genInterface = null;
-        for (final Type type : genTypes) {
-            if (type instanceof GeneratedType) {
-                if (type.getName().equals("Interface")) {
-                    genInterface = (GeneratedType) type;
-                }
+        for (final GeneratedType type : genTypes) {
+            if (type.getName().equals("Interface")) {
+                genInterface = type;
             }
         }
         assertNotNull("Generated Type Interface is not present in list of Generated Types", genInterface);
@@ -69,7 +65,8 @@ public class GenEnumResolvingTest {
 
         assertNotNull("Generated Interface cannot contain NULL reference for Method Signature Definitions!", methods);
 
-        assertEquals("Expected count of method signature definitions is 16", 16, methods.size());
+        // FIXME: split this into getter/default/static asserts
+        assertEquals(19, methods.size());
         Enumeration ianaIfType = null;
         for (final MethodSignature method : methods) {
             if (method.getName().equals("getType")) {
@@ -85,14 +82,13 @@ public class GenEnumResolvingTest {
 
     @Test
     public void testTypedefEnumResolving() {
-        final SchemaContext context = YangParserTestUtils.parseYangResource("/ietf/iana-if-type.yang");
-        assertTrue(context != null);
-        final List<Type> genTypes = DefaultBindingGenerator.generateFor(context);
-        assertTrue(genTypes != null);
+        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResource(
+            "/ietf-models/iana-if-type.yang"));
+        assertNotNull(genTypes);
         assertEquals(1, genTypes.size());
 
-        final Type type = genTypes.get(0);
-        assertTrue(type instanceof Enumeration);
+        final GeneratedType type = genTypes.get(0);
+        assertThat(type, instanceOf(Enumeration.class));
 
         final Enumeration enumer = (Enumeration) type;
         assertEquals("Enumeration type MUST contain 272 values!", 272, enumer.getValues().size());
@@ -100,22 +96,18 @@ public class GenEnumResolvingTest {
 
     @Test
     public void testLeafrefEnumResolving() {
-        final SchemaContext context = YangParserTestUtils.parseYangResources(GenEnumResolvingTest.class,
+        final List<GeneratedType> genTypes = DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResources(
+            GenEnumResolvingTest.class,
             "/enum-test-models/abstract-topology@2013-02-08.yang", "/enum-test-models/ietf-interfaces@2012-11-15.yang",
-            "/ietf/iana-if-type.yang");
-        assertNotNull(context);
-        final List<Type> genTypes = DefaultBindingGenerator.generateFor(context);
+            "/ietf-models/iana-if-type.yang"));
         assertNotNull(genTypes);
-        assertTrue(!genTypes.isEmpty());
+        assertEquals(24, genTypes.size());
 
         GeneratedType genInterface = null;
-        for (final Type type : genTypes) {
-            if (type instanceof GeneratedType) {
-                if (type.getPackageName().equals(
-                        "org.opendaylight.yang.gen.v1.urn.model._abstract.topology.rev130208.topology.interfaces")
-                        && type.getName().equals("Interface")) {
-                    genInterface = (GeneratedType) type;
-                }
+        for (final GeneratedType type : genTypes) {
+            if (type.getName().equals("Interface") && type.getPackageName().equals(
+                "org.opendaylight.yang.gen.v1.urn.model._abstract.topology.rev130208.topology.interfaces")) {
+                genInterface = type;
             }
         }
         assertNotNull("Generated Type Interface is not present in list of Generated Types", genInterface);
@@ -124,7 +116,9 @@ public class GenEnumResolvingTest {
         Type operStatus = null;
         final List<MethodSignature> methods = genInterface.getMethodDefinitions();
         assertNotNull("Generated Type Interface cannot contain NULL reference to Enumeration types!", methods);
-        assertEquals("Generated Type Interface MUST contain 6 Methods ", 6, methods.size());
+
+        // FIXME: split this into getter/default/static asserts
+        assertEquals(9, methods.size());
         for (final MethodSignature method : methods) {
             if (method.getName().equals("getLinkUpDownTrapEnable")) {
                 linkUpDownTrapEnable = method.getReturnType();
@@ -145,5 +139,4 @@ public class GenEnumResolvingTest {
             "org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev121115.interfaces.Interface",
             operStatus.getIdentifier().immediatelyEnclosingClass().get().toString());
     }
-
 }