BUG-1862: Incorrect type transformation in TypeProviderImpl
[mdsal.git] / binding / mdsal-binding-generator-impl / src / test / java / org / opendaylight / yangtools / sal / binding / yang / types / TypeProviderTest.java
index ee40141b0891565a7c844e0d5a95d8b474572210..004b007969a0e8ff1e82dd94878b5b834375ef27 100644 (file)
@@ -25,9 +25,23 @@ import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil;
 import org.opendaylight.yangtools.binding.generator.util.ReferencedTypeImpl;
 import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedTOBuilderImpl;
 import org.opendaylight.yangtools.sal.binding.generator.spi.TypeProvider;
-import org.opendaylight.yangtools.sal.binding.model.api.*;
+import org.opendaylight.yangtools.sal.binding.model.api.BaseTypeWithRestrictions;
+import org.opendaylight.yangtools.sal.binding.model.api.ConcreteType;
+import org.opendaylight.yangtools.sal.binding.model.api.Enumeration;
+import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
+import org.opendaylight.yangtools.sal.binding.model.api.ParameterizedType;
+import org.opendaylight.yangtools.sal.binding.model.api.Restrictions;
+import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedTOBuilder;
-import org.opendaylight.yangtools.yang.model.api.*;
+import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
+import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.Module;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaNode;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
@@ -37,7 +51,7 @@ import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
  *
  * @see org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl
  *
- * @author Lukas Sedlak <lsedlak@cisco.com>
+ * @author Lukas Sedlak &lt;lsedlak@cisco.com&gt;
  */
 @RunWith(JUnit4.class)
 public class TypeProviderTest {
@@ -130,7 +144,7 @@ public class TypeProviderTest {
 
     private static LeafListSchemaNode provideLeafListNodeFromTopLevelContainer(final Module module, final String containerName, final String leafListNodeName) {
         final DataSchemaNode rootNode = module.getDataChildByName(containerName);
-        assertNotNull("Container foo is not present in root of module "+ module.getName(), rootNode);
+        assertNotNull("Container foo is not present in root of module " + module.getName(), rootNode);
         assertTrue(rootNode instanceof DataNodeContainer);
 
         final DataNodeContainer rootContainer = (DataNodeContainer) rootNode;
@@ -211,10 +225,6 @@ public class TypeProviderTest {
         return result;
     }
 
-    /**
-     * FIXME: Remove @Ignore annotation once the bug https://bugs.opendaylight.org/show_bug.cgi?id=1862 is fixed
-     */
-    @Ignore
     @Test
     public void bug1862RestrictedTypedefTransformationTest() {
         final TypeProvider provider = new TypeProviderImpl(schemaContext);
@@ -224,8 +234,7 @@ public class TypeProviderTest {
         final Restrictions restrictions = BindingGeneratorUtil.getRestrictions(leafType);
         final Type result = provider.javaTypeForSchemaDefinitionType(leafType, leaf, restrictions);
         assertNotNull(result);
-        assertTrue(result instanceof GeneratedTransferObject);
-        //TODO: complete test after bug 1862 is fixed
+        assertTrue(result instanceof BaseTypeWithRestrictions);
     }
 
     @Test
@@ -313,7 +322,7 @@ public class TypeProviderTest {
         ((TypeProviderImpl) provider).putReferencedType(enumLeafNode.getPath(), refType);
 
         final LeafListSchemaNode enumListNode = provideLeafListNodeFromTopLevelContainer(testTypeProviderModule, "foo",
-            "list-of-enums");
+                "list-of-enums");
         final TypeDefinition<?> enumLeafListTypedef = enumListNode.getType();
         enumType = provider.javaTypeForSchemaDefinitionType(enumLeafListTypedef, enumListNode);
 
@@ -368,14 +377,6 @@ public class TypeProviderTest {
         provider.provideTypeForLeafref(leafrePath, schemaNode);
     }
 
-    @Test(expected = IllegalArgumentException.class)
-    public void provideTypeForLeafrefWithNullRewisionAwareXPathTest() {
-        final TypeProviderImpl provider = new TypeProviderImpl(schemaContext);
-
-        final LeafrefTypeWithNullToStringInXpath leafrePath = new LeafrefTypeWithNullToStringInXpath();
-        provider.provideTypeForLeafref(leafrePath, schemaNode);
-    }
-
     @Test(expected = IllegalStateException.class)
     public void provideTypeForLeafrefWithNullParentModuleTest() {
         final TypeProviderImpl provider = new TypeProviderImpl(schemaContext);