Bug 6859 #1 Binding generator v1 refactoring
[mdsal.git] / binding / mdsal-binding-generator-impl / src / test / java / org / opendaylight / yangtools / sal / binding / yang / types / TypeProviderImplTest.java
index 865d15e3636a5a2d3842b9c2d1f43fa2874f7b44..afe413126d9bed23353d71e7cc055b24ab748a3d 100644 (file)
@@ -20,8 +20,8 @@ import java.io.File;
 import java.net.URI;
 import java.util.NoSuchElementException;
 import org.junit.Test;
+import org.opendaylight.mdsal.binding.model.api.Type;
 import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedTypeBuilderImpl;
-import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
@@ -41,6 +41,7 @@ import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
 import org.opendaylight.yangtools.yang.model.util.type.IdentityrefTypeBuilder;
 import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
+import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class TypeProviderImplTest {
 
@@ -48,47 +49,58 @@ public class TypeProviderImplTest {
     public void testLeafRefRelativeSelfReference() throws Exception {
         File relative = new File(getClass().getResource("/leafref/leafref-relative-invalid.yang").toURI());
 
-        final SchemaContext schemaContext = RetestUtils.parseYangSources(relative);
+        final SchemaContext schemaContext = YangParserTestUtils.parseYangSources(relative);
         final Module moduleRelative = schemaContext.findModuleByNamespace(new URI("urn:xml:ns:yang:lrr")).iterator().next();
         final TypeProviderImpl typeProvider = new TypeProviderImpl(schemaContext);
 
-        DataSchemaNode leafref = ((ListSchemaNode) moduleRelative.getDataChildByName("neighbor")).getDataChildByName("neighbor-id");
+        final QName listNode = QName.create(moduleRelative.getQNameModule(), "neighbor");
+        final QName leafNode = QName.create(moduleRelative.getQNameModule(), "neighbor-id");
+        DataSchemaNode leafref = ((ListSchemaNode) moduleRelative.getDataChildByName(listNode))
+                .getDataChildByName(leafNode);
         LeafSchemaNode leaf = (LeafSchemaNode) leafref;
         TypeDefinition<?> leafType = leaf.getType();
         Type leafrefResolvedType = typeProvider.javaTypeForSchemaDefinitionType(leafType, leaf);
+        assertNotNull(leafrefResolvedType);
     }
 
     @Test (expected = YangValidationException.class)
     public void testLeafRefAbsoluteSelfReference() throws Exception {
         File relative = new File(getClass().getResource("/leafref/leafref-absolute-invalid.yang").toURI());
 
-        final SchemaContext schemaContext = RetestUtils.parseYangSources(relative);
+        final SchemaContext schemaContext = YangParserTestUtils.parseYangSources(relative);
         final Module moduleRelative = schemaContext.findModuleByNamespace(new URI("urn:xml:ns:yang:lra")).iterator().next();
         final TypeProviderImpl typeProvider = new TypeProviderImpl(schemaContext);
 
-        DataSchemaNode leafref = ((ListSchemaNode) moduleRelative.getDataChildByName("neighbor")).getDataChildByName("neighbor-id");
+        final QName listNode = QName.create(moduleRelative.getQNameModule(), "neighbor");
+        final QName leafNode = QName.create(moduleRelative.getQNameModule(), "neighbor-id");
+        DataSchemaNode leafref = ((ListSchemaNode) moduleRelative.getDataChildByName(listNode))
+                .getDataChildByName(leafNode);
         LeafSchemaNode leaf = (LeafSchemaNode) leafref;
         TypeDefinition<?> leafType = leaf.getType();
         Type leafrefResolvedType = typeProvider.javaTypeForSchemaDefinitionType(leafType, leaf);
+        assertNotNull(leafrefResolvedType);
     }
 
     @Test
     public void testLeafRefRelativeAndAbsoluteValidReference() throws Exception {
         File valid = new File(getClass().getResource("/leafref/leafref-valid.yang").toURI());
 
-        final SchemaContext schemaContext = RetestUtils.parseYangSources(valid);
+        final SchemaContext schemaContext = YangParserTestUtils.parseYangSources(valid);
         final Module moduleValid = schemaContext.findModuleByNamespace(new URI("urn:xml:ns:yang:lrv")).iterator().next();
         final TypeProviderImpl typeProvider = new TypeProviderImpl(schemaContext);
 
-        DataSchemaNode leafrefRel = ((ListSchemaNode) moduleValid.getDataChildByName("neighbor")).getDataChildByName
-                ("neighbor-id");
+        final QName listNode = QName.create(moduleValid.getQNameModule(), "neighbor");
+        final QName leaf1Node = QName.create(moduleValid.getQNameModule(), "neighbor-id");
+        DataSchemaNode leafrefRel = ((ListSchemaNode) moduleValid.getDataChildByName(listNode))
+                .getDataChildByName(leaf1Node);
         LeafSchemaNode leafRel = (LeafSchemaNode) leafrefRel;
         TypeDefinition<?> leafTypeRel = leafRel.getType();
         Type leafrefRelResolvedType = typeProvider.javaTypeForSchemaDefinitionType(leafTypeRel, leafRel);
         assertNotNull(leafrefRelResolvedType);
 
-        DataSchemaNode leafrefAbs = ((ListSchemaNode) moduleValid.getDataChildByName("neighbor")).getDataChildByName
-                ("neighbor2-id");
+        final QName leaf2Node = QName.create(moduleValid.getQNameModule(), "neighbor2-id");
+        DataSchemaNode leafrefAbs = ((ListSchemaNode) moduleValid.getDataChildByName(listNode))
+                .getDataChildByName(leaf2Node);
         LeafSchemaNode leafAbs = (LeafSchemaNode) leafrefAbs;
         TypeDefinition<?> leafTypeAbs = leafAbs.getType();
         Type leafrefAbsResolvedType = typeProvider.javaTypeForSchemaDefinitionType(leafTypeAbs, leafAbs);
@@ -97,10 +109,9 @@ public class TypeProviderImplTest {
 
     @Test
     public void testMethodsOfTypeProviderImpl() throws Exception {
-        final File abstractTopology = new File(getClass().getResource("/base-yang-types.yang")
-                .toURI());
+        final File abstractTopology = new File(getClass().getResource("/base-yang-types.yang").toURI());
 
-        final SchemaContext schemaContext = RetestUtils.parseYangSources(abstractTopology);
+        final SchemaContext schemaContext = YangParserTestUtils.parseYangSources(abstractTopology);
 
         final TypeProviderImpl typeProvider = new TypeProviderImpl(schemaContext);
 
@@ -148,7 +159,7 @@ public class TypeProviderImplTest {
         doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
         doReturn(QName.create("Cont1")).when(leafSchemaNode).getQName();
 
-        assertEquals("new java.lang.Boolean(\"false\")", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "false"));
+        assertEquals("java.lang.Boolean.FALSE", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "false"));
 
         // decimal type
         final DecimalTypeDefinition decimalType = BaseTypes.decimalTypeBuilder(refTypePath).setFractionDigits(4).build();
@@ -168,7 +179,7 @@ public class TypeProviderImplTest {
         doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
         doReturn(QName.create("Cont1")).when(leafSchemaNode).getQName();
 
-        assertEquals("new java.lang.Boolean(\"default value\")", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
+        assertEquals("java.lang.Boolean.valueOf(\"default value\")", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
 
         // enum type
         final EnumTypeDefinition enumType =  BaseTypes.enumerationTypeBuilder(refTypePath).build();
@@ -182,13 +193,13 @@ public class TypeProviderImplTest {
             assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
             fail("Expected NoSuchElementException");
         } catch (Exception e) {
-            assertTrue( e instanceof NoSuchElementException);
+            assertTrue(e instanceof NoSuchElementException);
         }
 
         // identityref type
         final IdentitySchemaNode identitySchemaNode = mock(IdentitySchemaNode.class);
         final IdentityrefTypeBuilder identityRefBuilder = BaseTypes.identityrefTypeBuilder(refTypePath);
-        identityRefBuilder.setIdentity(identitySchemaNode);
+        identityRefBuilder.addIdentity(identitySchemaNode);
         final IdentityrefTypeDefinition identityRef =  identityRefBuilder.build();
 
         reset(leafSchemaNode);