Bump yangtools to 3.0.0
[mdsal.git] / binding / mdsal-binding-generator-impl / src / test / java / org / opendaylight / mdsal / binding / yang / types / TypeProviderTest.java
index d6dc7fa896b3cc88ad58fe83fd3ef7e17981d30b..f7cb7dd6fde5686f7dbc5751f47c15a023b15661 100644 (file)
@@ -5,7 +5,6 @@
  * 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.mdsal.binding.yang.types;
 
 import static org.junit.Assert.assertEquals;
@@ -17,17 +16,18 @@ import com.google.common.collect.Range;
 import java.util.List;
 import java.util.Optional;
 import java.util.Set;
-import org.junit.Before;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.mdsal.binding.generator.spi.TypeProvider;
 import org.opendaylight.mdsal.binding.model.api.ConcreteType;
 import org.opendaylight.mdsal.binding.model.api.Enumeration;
 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
+import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.ParameterizedType;
 import org.opendaylight.mdsal.binding.model.api.Restrictions;
 import org.opendaylight.mdsal.binding.model.api.Type;
@@ -35,6 +35,7 @@ import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder;
 import org.opendaylight.mdsal.binding.model.util.BindingGeneratorUtil;
 import org.opendaylight.mdsal.binding.model.util.ReferencedTypeImpl;
 import org.opendaylight.mdsal.binding.model.util.generated.type.builder.CodegenGeneratedTOBuilder;
+import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -48,22 +49,18 @@ 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;
-import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
-import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
 /**
- * Test suite for testing public methods in TypeProviderImpl class
- *
- * @see org.opendaylight.mdsal.binding.yang.types.TypeProviderImpl
+ * Test suite for testing public methods in TypeProviderImpl class.
  *
+ * @see org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider
  * @author Lukas Sedlak <lsedlak@cisco.com>
  */
-@RunWith(JUnit4.class)
+@RunWith(MockitoJUnitRunner.class)
 public class TypeProviderTest {
 
-    private SchemaContext schemaContext;
-    private Set<Module> schemaModules;
-    private Module testTypeProviderModule;
+    private static SchemaContext SCHEMA_CONTEXT;
+    private static Module TEST_TYPE_PROVIDER;
 
     @Mock
     private SchemaPath schemaPath;
@@ -71,26 +68,20 @@ public class TypeProviderTest {
     @Mock
     private SchemaNode schemaNode;
 
-    @Before
-    public void setUp() throws SourceException, ReactorException {
-        MockitoAnnotations.initMocks(this);
-        this.schemaContext = TypeProviderModel.createTestContext();
-        assertNotNull(this.schemaContext);
-        this.schemaModules = this.schemaContext.getModules();
-        assertNotNull(this.schemaModules);
-        this.testTypeProviderModule = resolveModule(TypeProviderModel.TEST_TYPE_PROVIDER_MODULE_NAME);
-        assertNotNull(this.testTypeProviderModule);
-    }
-
-    private Module resolveModule(final String moduleName) {
-        assertNotNull(moduleName);
-        for (final Module m : this.schemaModules) {
-            if (moduleName.equals(m.getName())) {
-                return m;
-            }
-        }
-        assertTrue("Unable to resolve module " + moduleName + ". No module present within Schema Context!" , false);
-        return null;
+    @BeforeClass
+    public static void beforeClass() {
+        SCHEMA_CONTEXT = TypeProviderModel.createTestContext();
+        TEST_TYPE_PROVIDER = resolveModule(TypeProviderModel.TEST_TYPE_PROVIDER_MODULE_NAME);
+    }
+
+    @AfterClass
+    public static void afterClass() {
+        TEST_TYPE_PROVIDER = null;
+        SCHEMA_CONTEXT = null;
+    }
+
+    private static Module resolveModule(final String moduleName) {
+        return SCHEMA_CONTEXT.findModules(moduleName).iterator().next();
     }
 
     @Test(expected = IllegalArgumentException.class)
@@ -100,7 +91,7 @@ public class TypeProviderTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void putReferencedTypeWithNullSchemaPathParamTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         provider.putReferencedType(null, null);
         provider.putReferencedType(this.schemaPath, null);
@@ -108,37 +99,38 @@ public class TypeProviderTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void putReferencedTypeWithNullRefTypeParamTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         provider.putReferencedType(this.schemaPath, null);
     }
 
     @Test
     public void getAdditionalTypesTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         assertNotNull(provider.getAdditionalTypes());
     }
 
     @Test(expected = IllegalArgumentException.class)
     public void javaTypeForSchemaDefinitionTypeNullTypedefTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         provider.javaTypeForSchemaDefinitionType(null, null, null);
     }
 
     @Test(expected = IllegalArgumentException.class)
     public void javaTypeForSchemaDefinitionTypeTypedefNullQNameTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         final TestIntegerTypeDefinition testTypedef = new TestIntegerTypeDefinition();
         provider.javaTypeForSchemaDefinitionType(testTypedef, null, null);
     }
 
-    private static LeafSchemaNode provideLeafNodeFromTopLevelContainer(final Module module, final String containerName, final String leafNodeName) {
+    private static LeafSchemaNode provideLeafNodeFromTopLevelContainer(final Module module, final String containerName,
+            final String leafNodeName) {
         final QName containerNode = QName.create(module.getQNameModule(), containerName);
         final DataSchemaNode rootNode = module.getDataChildByName(containerNode);
-        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 QName leafNode = QName.create(module.getQNameModule(), leafNodeName);
@@ -149,7 +141,8 @@ public class TypeProviderTest {
         return (LeafSchemaNode) node;
     }
 
-    private static LeafListSchemaNode provideLeafListNodeFromTopLevelContainer(final Module module, final String containerName, final String leafListNodeName) {
+    private static LeafListSchemaNode provideLeafListNodeFromTopLevelContainer(final Module module,
+            final String containerName, final String leafListNodeName) {
         final QName containerNode = QName.create(module.getQNameModule(), containerName);
         final DataSchemaNode rootNode = module.getDataChildByName(containerNode);
         assertNotNull("Container foo is not present in root of module " + module.getName(), rootNode);
@@ -165,8 +158,9 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionExtTypeTest() {
-        final TypeProvider provider = new CodegenTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo", "yang-int8-type");
+        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
+            "yang-int8-type");
 
         final TypeDefinition<?> leafType = leaf.getType();
         final Type result = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
@@ -175,15 +169,17 @@ public class TypeProviderTest {
 
         final GeneratedTransferObject genTO = (GeneratedTransferObject) result;
         assertEquals("base-yang-types", genTO.getModuleName());
-        assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914", genTO.getPackageName());
+        assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914",
+            genTO.getPackageName());
         assertEquals("YangInt8", genTO.getName());
         assertEquals(1, genTO.getProperties().size());
     }
 
     @Test
     public void javaTypeForSchemaDefinitionRestrictedExtTypeTest() {
-        final TypeProvider provider = new CodegenTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo", "restricted-int8-type");
+        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
+            "restricted-int8-type");
 
         final TypeDefinition<?> leafType = leaf.getType();
         final Restrictions restrictions = BindingGeneratorUtil.getRestrictions(leafType);
@@ -193,7 +189,8 @@ public class TypeProviderTest {
         assertTrue(result instanceof GeneratedTransferObject);
 
         final GeneratedTransferObject genTO = (GeneratedTransferObject) result;
-        assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914", genTO.getPackageName());
+        assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914",
+            genTO.getPackageName());
         assertEquals("YangInt8Restricted", genTO.getName());
         assertEquals(1, genTO.getProperties().size());
         final Optional<? extends RangeConstraint<?>> rangeConstraints = genTO.getRestrictions().getRangeConstraint();
@@ -206,10 +203,11 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionEmptyStringPatternTypeTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         final Module testTypeProvider = resolveModule("test-type-provider");
-        final TypeDefinition<?> emptyPatternString = resolveTypeDefinitionFromModule(testTypeProvider, "empty-pattern-string");
+        final TypeDefinition<?> emptyPatternString = resolveTypeDefinitionFromModule(testTypeProvider,
+            "empty-pattern-string");
 
         assertNotNull(emptyPatternString);
         final Restrictions restrictions = BindingGeneratorUtil.getRestrictions(emptyPatternString);
@@ -234,14 +232,12 @@ public class TypeProviderTest {
         return result;
     }
 
-    /**
-     * FIXME: Remove @Ignore annotation once the bug https://bugs.opendaylight.org/show_bug.cgi?id=1862 is fixed
-     */
+    // 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 CodegenTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo",
+        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
             "bug-1862-restricted-typedef");
 
         final TypeDefinition<?> leafType = leaf.getType();
@@ -254,9 +250,8 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionEnumExtTypeTest() {
-        final TypeProvider provider = new CodegenTypeProvider(this.schemaContext);
-        LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo",
-            "resolve-enum-leaf");
+        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo", "resolve-enum-leaf");
         TypeDefinition<?> leafType = leaf.getType();
         Type result = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
         assertNotNull(result);
@@ -270,7 +265,7 @@ public class TypeProviderTest {
         assertEquals("A", enumValues.get(0).getMappedName());
         assertEquals("B", enumValues.get(1).getMappedName());
 
-        leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo", "resolve-direct-use-of-enum");
+        leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo", "resolve-direct-use-of-enum");
         leafType = leaf.getType();
         result = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
         assertNotNull(result);
@@ -282,8 +277,8 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionLeafrefExtTypeTest() {
-        final TypeProvider provider = new CodegenTypeProvider(this.schemaContext);
-        LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "bar", "leafref-value");
+        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
+        LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "bar", "leafref-value");
         TypeDefinition<?> leafType = leaf.getType();
         final Type leafrefResolvedType1 = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
         assertNotNull(leafrefResolvedType1);
@@ -292,7 +287,7 @@ public class TypeProviderTest {
         final Module module = resolveModule("test-type-provider-b");
         final QName leafNode = QName.create(module.getQNameModule(), "id");
         final DataSchemaNode rootNode = module.getDataChildByName(leafNode);
-        assertNotNull("leaf id is not present in root of module "+ module.getName(), rootNode);
+        assertNotNull("leaf id is not present in root of module " + module.getName(), rootNode);
         assertTrue(rootNode instanceof LeafSchemaNode);
         leaf = (LeafSchemaNode) rootNode;
         leafType = leaf.getType();
@@ -304,7 +299,7 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionLeafrefToEnumTypeTest() {
-        final AbstractTypeProvider provider = new CodegenTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
 
         setReferencedTypeForTypeProvider(provider);
 
@@ -333,32 +328,32 @@ public class TypeProviderTest {
         assertTrue(leafrefResolvedType2 instanceof ParameterizedType);
     }
 
-    private void setReferencedTypeForTypeProvider(final AbstractTypeProvider provider) {
-        final LeafSchemaNode enumLeafNode = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo",
+    private static void setReferencedTypeForTypeProvider(final AbstractTypeProvider provider) {
+        final LeafSchemaNode enumLeafNode = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
             "resolve-direct-use-of-enum");
         final TypeDefinition<?> enumLeafTypedef = enumLeafNode.getType();
         Type enumType = provider.javaTypeForSchemaDefinitionType(enumLeafTypedef, enumLeafNode);
 
-        Type refType = new ReferencedTypeImpl(enumType.getPackageName(), enumType.getName());
+        Type refType = new ReferencedTypeImpl(enumType.getIdentifier());
         provider.putReferencedType(enumLeafNode.getPath(), refType);
 
-        final LeafListSchemaNode enumListNode = provideLeafListNodeFromTopLevelContainer(this.testTypeProviderModule,
+        final LeafListSchemaNode enumListNode = provideLeafListNodeFromTopLevelContainer(TEST_TYPE_PROVIDER,
             "foo", "list-of-enums");
         final TypeDefinition<?> enumLeafListTypedef = enumListNode.getType();
         enumType = provider.javaTypeForSchemaDefinitionType(enumLeafListTypedef, enumListNode);
 
-        refType = new ReferencedTypeImpl(enumType.getPackageName(), enumType.getPackageName());
+        refType = new ReferencedTypeImpl(enumType.getIdentifier());
         provider.putReferencedType(enumListNode.getPath(), refType);
     }
 
     @Test
     public void javaTypeForSchemaDefinitionConditionalLeafrefTest() {
-        final TypeProvider provider = new CodegenTypeProvider(this.schemaContext);
+        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         final Module module = resolveModule("test-type-provider-b");
 
         final QName leafrefNode = QName.create(module.getQNameModule(), "conditional-leafref");
         final DataSchemaNode condLeaf = module.getDataChildByName(leafrefNode);
-        assertNotNull("leaf conditional-leafref is not present in root of module "+ module.getName(), condLeaf);
+        assertNotNull("leaf conditional-leafref is not present in root of module " + module.getName(), condLeaf);
         assertTrue(condLeaf instanceof LeafSchemaNode);
         final LeafSchemaNode leaf = (LeafSchemaNode) condLeaf;
         final TypeDefinition<?> leafType = leaf.getType();
@@ -372,12 +367,12 @@ public class TypeProviderTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void javaTypeForSchemaDefinitionInvalidLeafrefPathTest() {
-        final TypeProvider provider = new CodegenTypeProvider(this.schemaContext);
+        final TypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
         final Module module = resolveModule("test-type-provider-b");
 
         final QName leafrefNode = QName.create(module.getQNameModule(), "unreslovable-leafref");
         final DataSchemaNode condLeaf = module.getDataChildByName(leafrefNode);
-        assertNotNull("leaf unreslovable-leafref is not present in root of module "+ module.getName(), condLeaf);
+        assertNotNull("leaf unreslovable-leafref is not present in root of module " + module.getName(), condLeaf);
         assertTrue(condLeaf instanceof LeafSchemaNode);
         final LeafSchemaNode leaf = (LeafSchemaNode) condLeaf;
         final TypeDefinition<?> leafType = leaf.getType();
@@ -387,34 +382,34 @@ public class TypeProviderTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void provideTypeForLeafrefWithNullLeafrefTypeTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
-        provider.provideTypeForLeafref(null, null);
+        provider.provideTypeForLeafref(null, null, false);
     }
 
     @Test(expected = IllegalArgumentException.class)
     public void provideTypeForLeafrefWithNullLeafrefTypePathStatementTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         final LeafrefTypeWithNullXpath leafrePath = new LeafrefTypeWithNullXpath();
-        provider.provideTypeForLeafref(leafrePath, this.schemaNode);
+        provider.provideTypeForLeafref(leafrePath, this.schemaNode, false);
     }
 
-    @Test(expected = IllegalStateException.class)
+    @Test(expected = NullPointerException.class)
     public void provideTypeForLeafrefWithNullParentModuleTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "bar",
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "bar",
             "leafref-value");
         final TypeDefinition<?> leafType = leaf.getType();
         assertTrue(leafType instanceof LeafrefTypeDefinition);
         doReturn(null).when(this.schemaNode).getPath();
-        provider.provideTypeForLeafref((LeafrefTypeDefinition) leafType, this.schemaNode);
+        provider.provideTypeForLeafref((LeafrefTypeDefinition) leafType, this.schemaNode, false);
     }
 
     @Test
     public void javaTypeForSchemaDefinitionIdentityrefExtTypeTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo", "crypto");
+        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo", "crypto");
         final TypeDefinition<?> leafType = leaf.getType();
 
         final Type result = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
@@ -424,8 +419,9 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionForExtUnionWithSimpleTypesTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "use-of-unions", "simple-int-types-union");
+        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "use-of-unions",
+            "simple-int-types-union");
         final TypeDefinition<?> leafType = leaf.getType();
 
         final Type result = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
@@ -437,8 +433,9 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionForExtComplexUnionWithInnerUnionTypesTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "use-of-unions", "complex-union");
+        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "use-of-unions",
+            "complex-union");
         final TypeDefinition<?> leafType = leaf.getType();
 
         final Type result = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
@@ -450,8 +447,9 @@ public class TypeProviderTest {
 
     @Test
     public void javaTypeForSchemaDefinitionForExtUnionWithInnerUnionAndSimpleTypeTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "use-of-unions", "complex-string-int-union");
+        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "use-of-unions",
+            "complex-string-int-union");
         final TypeDefinition<?> leafType = leaf.getType();
 
         final Type result = provider.javaTypeForSchemaDefinitionType(leafType, leaf);
@@ -463,61 +461,44 @@ public class TypeProviderTest {
 
     @Test
     public void provideGeneratedTOBuilderForUnionTypeDefWithInnerUnionTypesTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
-        final Module testTypeProvider = resolveModule("test-type-provider");
-        final TypeDefinition<?> unionTypeDef = resolveTypeDefinitionFromModule(testTypeProvider, "complex-union");
+        final TypeDefinition<?> unionTypeDef = resolveTypeDefinitionFromModule(TEST_TYPE_PROVIDER, "complex-union");
 
         assertNotNull(unionTypeDef);
         assertTrue(unionTypeDef.getBaseType() instanceof UnionTypeDefinition);
-        GeneratedTOBuilder unionTypeBuilder = provider.provideGeneratedTOBuilderForUnionTypeDef("test.package.name",
-            (UnionTypeDefinition)unionTypeDef.getBaseType(), "ComplexUnionType", unionTypeDef);
-
-        assertNotNull(unionTypeBuilder);
-
-        GeneratedTransferObject unionType = unionTypeBuilder.toInstance();
-        assertEquals("ComplexUnionType", unionType.getName());
-
-        unionTypeBuilder = provider.provideGeneratedTOBuilderForUnionTypeDef("test.package.name",
-            (UnionTypeDefinition)unionTypeDef.getBaseType(), "", unionTypeDef);
+        GeneratedTOBuilder unionTypeBuilder = provider.provideGeneratedTOBuilderForUnionTypeDef(
+            JavaTypeName.create("test.package.name", BindingMapping.getClassName(unionTypeDef.getQName())),
+            (UnionTypeDefinition)unionTypeDef.getBaseType(), unionTypeDef);
 
         assertNotNull(unionTypeBuilder);
 
-        unionType = unionTypeBuilder.toInstance();
-        assertEquals("Union", unionType.getName());
-
-        unionTypeBuilder = provider.provideGeneratedTOBuilderForUnionTypeDef("test.package.name",
-            (UnionTypeDefinition)unionTypeDef.getBaseType(), null, unionTypeDef);
-
-        assertNotNull(unionTypeBuilder);
-
-        unionType = unionTypeBuilder.toInstance();
-        assertEquals("Union", unionType.getName());
+        GeneratedTransferObject unionType = unionTypeBuilder.build();
+        assertEquals("ComplexUnion", unionType.getName());
     }
 
     @Test
     public void provideGeneratedTOBuilderForUnionTypeDefWithInnerUnionAndSimpleTypeTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
-        final Module testTypeProvider = resolveModule("test-type-provider");
-        final TypeDefinition<?> unionTypeDef = resolveTypeDefinitionFromModule(testTypeProvider,
+        final TypeDefinition<?> unionTypeDef = resolveTypeDefinitionFromModule(TEST_TYPE_PROVIDER,
             "complex-string-int-union");
 
         assertNotNull(unionTypeDef);
         assertTrue(unionTypeDef.getBaseType() instanceof UnionTypeDefinition);
         final GeneratedTOBuilder unionTypeBuilder = provider.provideGeneratedTOBuilderForUnionTypeDef(
-            "test.package.name",(UnionTypeDefinition)unionTypeDef.getBaseType(), "ComplexStringIntUnionType",
-            unionTypeDef);
+            JavaTypeName.create("test.package.name", BindingMapping.getClassName(unionTypeDef.getQName())),
+            (UnionTypeDefinition)unionTypeDef.getBaseType(), unionTypeDef);
 
         assertNotNull(unionTypeBuilder);
 
-        final GeneratedTransferObject unionType = unionTypeBuilder.toInstance();
-        assertEquals("ComplexStringIntUnionType", unionType.getName());
+        final GeneratedTransferObject unionType = unionTypeBuilder.build();
+        assertEquals("ComplexStringIntUnion", unionType.getName());
     }
 
     @Test
     public void generatedTypeForExtendedDefinitionTypeTest() {
-        final AbstractTypeProvider provider = new CodegenTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT);
 
         final Module baseYangTypes = resolveModule("base-yang-types");
         final Set<TypeDefinition<?>> typeDefs = baseYangTypes.getTypeDefinitions();
@@ -608,20 +589,20 @@ public class TypeProviderTest {
 
     @Test(expected = IllegalArgumentException.class)
     public void generatedTypeForExtendedDefinitionTypeWithTypedefNullTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         provider.generatedTypeForExtendedDefinitionType(null, null);
     }
 
     @Test(expected = IllegalArgumentException.class)
     public void generatedTypeForExtendedDefinitionTypeWithTypedefQNameNullTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final TestIntegerTypeDefinition testInt = new TestIntegerTypeDefinition();
         provider.generatedTypeForExtendedDefinitionType(testInt, testInt);
     }
 
     @Test
     public void generatedTypeForExtendedDefinitionTypeWithInnerExtendedTypeTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         final Module baseYangTypes = resolveModule("test-type-provider");
         final TypeDefinition<?> extYangInt8Typedef = resolveTypeDefinitionFromModule(baseYangTypes,
@@ -634,10 +615,11 @@ public class TypeProviderTest {
 
     @Test
     public void generatedTypeForExtendedDefinitionTypeWithLeafrefBaseTypeTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         final Module baseYangTypes = resolveModule("test-type-provider");
-        final TypeDefinition<?> barItemLeafrefId = resolveTypeDefinitionFromModule(baseYangTypes, "bar-item-leafref-id");
+        final TypeDefinition<?> barItemLeafrefId = resolveTypeDefinitionFromModule(baseYangTypes,
+            "bar-item-leafref-id");
         assertNotNull(barItemLeafrefId);
         final Type extType = provider.generatedTypeForExtendedDefinitionType(barItemLeafrefId, barItemLeafrefId);
         assertEquals(null, extType);
@@ -645,47 +627,30 @@ public class TypeProviderTest {
 
     @Test
     public void generatedTypeForExtendedDefinitionTypeWithIdentityrefBaseTypeTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         final Module baseYangTypes = resolveModule("test-type-provider");
 
-        final TypeDefinition<?> aesIdentityrefType = resolveTypeDefinitionFromModule(baseYangTypes, "aes-identityref-type");
+        final TypeDefinition<?> aesIdentityrefType = resolveTypeDefinitionFromModule(baseYangTypes,
+            "aes-identityref-type");
 
         assertNotNull(aesIdentityrefType);
         final Type extType = provider.generatedTypeForExtendedDefinitionType(aesIdentityrefType, aesIdentityrefType);
         assertEquals(null, extType);
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void provideGeneratedTOBuilderForBitsTypeDefinitionWithNullTypedefTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
-        provider.provideGeneratedTOBuilderForBitsTypeDefinition("", null, "", "");
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void provideGeneratedTOBuilderForBitsTypeDefinitionWithBasePackageNullTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo", "yang-int8-type");
-        final TypeDefinition<?> leafType = leaf.getType();
-        provider.provideGeneratedTOBuilderForBitsTypeDefinition(null, leafType, "", "");
-    }
-
-    @Test
-    public void provideGeneratedTOBuilderForBitsTypeDefinitionWithNonBitsTypedefTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
-
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo", "yang-int8-type");
-        final TypeDefinition<?> leafType = leaf.getType();
-        final Type type = provider.provideGeneratedTOBuilderForBitsTypeDefinition("", leafType, "", "");
-
-        assertEquals(null, type);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
+        provider.provideGeneratedTOBuilderForBitsTypeDefinition(JavaTypeName.create("foo", "foo"), null, "foo");
     }
 
     @Test
     public void getConstructorPropertyNameTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo", "yang-int8-type");
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
+            "yang-int8-type");
         final TypeDefinition<?> leafType = leaf.getType();
 
         final String ctorPropertyName = provider.getConstructorPropertyName(leafType);
@@ -697,9 +662,10 @@ public class TypeProviderTest {
 
     @Test
     public void getParamNameFromTypeTest() {
-        final TypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final TypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
-        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "foo", "yang-int8-type");
+        final LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "foo",
+            "yang-int8-type");
         final TypeDefinition<?> leafType = leaf.getType();
 
         final String paramName = provider.getParamNameFromType(leafType);
@@ -708,18 +674,19 @@ public class TypeProviderTest {
 
     @Test
     public void addUnitsToGenTOTest() {
-        final GeneratedTOBuilder builder = new CodegenGeneratedTOBuilder("test.package", "TestBuilder");
+        final GeneratedTOBuilder builder = new CodegenGeneratedTOBuilder(
+            JavaTypeName.create("test.package", "TestBuilder"));
 
         CodegenTypeProvider.addUnitsToGenTO(builder, null);
-        GeneratedTransferObject genTO = builder.toInstance();
+        GeneratedTransferObject genTO = builder.build();
         assertTrue(genTO.getConstantDefinitions().isEmpty());
 
         CodegenTypeProvider.addUnitsToGenTO(builder, "");
-        genTO = builder.toInstance();
+        genTO = builder.build();
         assertTrue(genTO.getConstantDefinitions().isEmpty());
 
         CodegenTypeProvider.addUnitsToGenTO(builder, "125");
-        genTO = builder.toInstance();
+        genTO = builder.build();
         assertTrue(!genTO.getConstantDefinitions().isEmpty());
         assertEquals(1, genTO.getConstantDefinitions().size());
         assertEquals("_UNITS", genTO.getConstantDefinitions().get(0).getName());
@@ -728,233 +695,231 @@ public class TypeProviderTest {
 
     @Test(expected = NullPointerException.class)
     public void getTypeDefaultConstructionLeafTypeNullTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final TestLeafSchemaNode leafSchemaNode = new TestLeafSchemaNode();
         provider.getTypeDefaultConstruction(leafSchemaNode, null);
     }
 
     @Test(expected = NullPointerException.class)
     public void getTypeDefaultConstructionDefaultValueNullTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafForGetDefaultConstructionTestCase("yang-boolean");
         provider.getTypeDefaultConstruction(leaf, null);
     }
 
-    private LeafSchemaNode provideLeafForGetDefaultConstructionTestCase(final String leafName) {
-        return provideLeafNodeFromTopLevelContainer(this.testTypeProviderModule, "construction-type-test",
-            leafName);
+    private static LeafSchemaNode provideLeafForGetDefaultConstructionTestCase(final String leafName) {
+        return provideLeafNodeFromTopLevelContainer(TEST_TYPE_PROVIDER, "construction-type-test", leafName);
     }
 
     @Test(expected = UnsupportedOperationException.class)
     public void getTypeDefaultConstructionDefaultValueForInstanceIdentifierTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafForGetDefaultConstructionTestCase("foo-container-id");
         provider.getTypeDefaultConstruction(leaf, "NAN");
     }
 
     @Test(expected = UnsupportedOperationException.class)
     public void getTypeDefaultConstructionDefaultValueForIdentityrefTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
         final LeafSchemaNode leaf = provideLeafForGetDefaultConstructionTestCase("aes-identityref-type");
         provider.getTypeDefaultConstruction(leaf, "NAN");
     }
 
     @Test
     public void getTypeDefaultConstructionDefaultValueTest() {
-        final AbstractTypeProvider provider = new RuntimeTypeProvider(this.schemaContext);
+        final AbstractTypeProvider provider = new RuntimeTypeProvider(SCHEMA_CONTEXT);
 
         LeafSchemaNode leaf = provideLeafForGetDefaultConstructionTestCase("yang-boolean");
         String result = provider.getTypeDefaultConstruction(leaf, "true");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangBoolean(java.lang.Boolean.TRUE)",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangBoolean(java.lang.Boolean.TRUE)", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-empty");
         result = provider.getTypeDefaultConstruction(leaf, "true");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangEmpty(java.lang.Boolean.TRUE)",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangEmpty(java.lang.Boolean.TRUE)", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-enumeration");
         result = provider.getTypeDefaultConstruction(leaf, "a");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangEnumeration.A",
-            result);
+        assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangEnumeration.A", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("direct-use-of-enum");
         result = provider.getTypeDefaultConstruction(leaf, "y");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912.construction.type.test.DirectUseOfEnum.Y",
-            result);
+        assertEquals("org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
+                + "construction.type.test.DirectUseOfEnum.Y", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-int8");
         result = provider.getTypeDefaultConstruction(leaf, "17");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangInt8(java.lang.Byte.valueOf(\"17\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangInt8(java.lang.Byte.valueOf(\"17\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-int8-restricted");
         result = provider.getTypeDefaultConstruction(leaf, "99");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangInt8Restricted(java.lang.Byte.valueOf(\"99\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangInt8Restricted(java.lang.Byte.valueOf(\"99\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-int16");
         result = provider.getTypeDefaultConstruction(leaf, "1024");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangInt16(java.lang.Short.valueOf(\"1024\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangInt16(java.lang.Short.valueOf(\"1024\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-int32");
         result = provider.getTypeDefaultConstruction(leaf, "1048576");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangInt32(java.lang.Integer.valueOf(\"1048576\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangInt32(java.lang.Integer.valueOf(\"1048576\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-int64");
         result = provider.getTypeDefaultConstruction(leaf, "1099511627776");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangInt64(java.lang.Long.valueOf(\"1099511627776\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangInt64(java.lang.Long.valueOf(\"1099511627776\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-string");
         result = provider.getTypeDefaultConstruction(leaf, "TEST");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangString(\"TEST\")",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangString(\"TEST\")", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-decimal64");
         result = provider.getTypeDefaultConstruction(leaf, "1274.25");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangDecimal64(new java.math.BigDecimal(\"1274.25\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangDecimal64(new java.math.BigDecimal(\"1274.25\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-uint8");
         result = provider.getTypeDefaultConstruction(leaf, "128");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangUint8(java.lang.Short.valueOf(\"128\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangUint8(java.lang.Short.valueOf(\"128\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-uint16");
         result = provider.getTypeDefaultConstruction(leaf, "1048576");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangUint16(java.lang.Integer.valueOf(\"1048576\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangUint16(java.lang.Integer.valueOf(\"1048576\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-uint32");
         result = provider.getTypeDefaultConstruction(leaf, "1099511627776");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangUint32(java.lang.Long.valueOf(\"1099511627776\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangUint32(java.lang.Long.valueOf(\"1099511627776\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-uint64");
         result = provider.getTypeDefaultConstruction(leaf, "1208925819614629174706176");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangUint64(new java.math.BigInteger(\"1208925819614629174706176\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangUint64(new java.math.BigInteger(\"1208925819614629174706176\"))", result);
 
         //FIXME: Is this correct scenario and correct result?
         leaf = provideLeafForGetDefaultConstructionTestCase("complex-union");
         result = provider.getTypeDefaultConstruction(leaf, "75");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912.ComplexUnion(\"null\".toCharArray())",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
+                + "ComplexUnion(\"null\".toCharArray())", result);
 
         //FIXME: Is this correct scenario and correct result?
         leaf = provideLeafForGetDefaultConstructionTestCase("complex-string-int-union");
         result = provider.getTypeDefaultConstruction(leaf, "TEST_UNION_STRING_DEFAULT");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912.ComplexStringIntUnion(\"null\".toCharArray())",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
+                + "ComplexStringIntUnion(\"null\".toCharArray())", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("simple-int-types-union");
         result = provider.getTypeDefaultConstruction(leaf, "2048");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangUnion(\"null\".toCharArray())",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangUnion(\"null\".toCharArray())", result);
 
 
         leaf = provideLeafForGetDefaultConstructionTestCase("direct-union-leaf");
         result = provider.getTypeDefaultConstruction(leaf);
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912.DirectUnionLeaf(\"128\".toCharArray())",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
+                + "DirectUnionLeaf(\"128\".toCharArray())", result);
 
         final Module module = resolveModule("test-type-provider");
         final QName leafUnionNode = QName.create(module.getQNameModule(), "root-union-leaf");
         DataSchemaNode rootNode = module.getDataChildByName(leafUnionNode);
-        assertNotNull("leaf root-union-leaf is not present in root of module "+ module.getName(), rootNode);
+        assertNotNull("leaf root-union-leaf is not present in root of module " + module.getName(), rootNode);
         assertTrue(rootNode instanceof LeafSchemaNode);
         leaf = (LeafSchemaNode) rootNode;
         result = provider.getTypeDefaultConstruction(leaf);
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912.TestTypeProviderData.RootUnionLeaf(\"256\".toCharArray())",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
+                + "TestTypeProviderData.RootUnionLeaf(\"256\".toCharArray())", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-binary");
         result = provider.getTypeDefaultConstruction(leaf, "0xffffff");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangBinary(new byte[] {-45, 23, -33, 125, -9, -33})",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangBinary(new byte[] {-45, 23, -33, 125, -9, -33})", result);
 
         final QName leafBitsNode = QName.create(module.getQNameModule(), "root-bits-leaf");
         rootNode = module.getDataChildByName(leafBitsNode);
-        assertNotNull("leaf bits-leaf is not present in root of module "+ module.getName(), rootNode);
+        assertNotNull("leaf bits-leaf is not present in root of module " + module.getName(), rootNode);
         assertTrue(rootNode instanceof LeafSchemaNode);
         leaf = (LeafSchemaNode) rootNode;
         result = provider.getTypeDefaultConstruction(leaf);
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912.TestTypeProviderData.RootBitsLeaf(false, true, false)",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.type.provider.model.rev140912."
+                + "TestTypeProviderData.RootBitsLeaf(true, false, false)", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("yang-bits");
-        result = provider.getTypeDefaultConstruction(leaf, "10-Mb-only");
+        result = provider.getTypeDefaultConstruction(leaf, "only-10-Mb");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangBits(true, false, false)",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangBits(false, false, true)", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("bar-id");
         result = provider.getTypeDefaultConstruction(leaf, "128");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangInt16(java.lang.Short.valueOf(\"128\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangInt16(java.lang.Short.valueOf(\"128\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("foo-leafref-value");
         result = provider.getTypeDefaultConstruction(leaf, "32");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914.YangInt8(java.lang.Byte.valueOf(\"32\"))",
-            result);
+        assertEquals("new org.opendaylight.yang.gen.v1.urn.opendaylight.org.test.base.yang.types.rev140914."
+                + "YangInt8(java.lang.Byte.valueOf(\"32\"))", result);
 
         leaf = provideLeafForGetDefaultConstructionTestCase("foo-cond-bar-item");
         result = provider.getTypeDefaultConstruction(leaf, "10");
         assertNotNull(result);
         assertTrue(!result.isEmpty());
-        assertEquals("new java.lang.Object()",
-            result);
+        assertEquals("new java.lang.Object()", result);
     }
 }