Do not generate union builders
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / test / java / org / opendaylight / mdsal / binding / java / api / generator / CompilationTest.java
index 68db74f46ce24ec7f671af525f192dad5e7d5cb4..c7957ec1d1c76ee4ac3f3091b53c2b2e0458874a 100644 (file)
@@ -24,8 +24,8 @@ import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
 import java.lang.reflect.WildcardType;
-import java.math.BigDecimal;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
@@ -35,9 +35,10 @@ import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.model.util.TypeConstants;
+import org.opendaylight.mdsal.binding.model.ri.TypeConstants;
 import org.opendaylight.yangtools.yang.binding.ChildOf;
 import org.opendaylight.yangtools.yang.binding.annotations.RoutingContext;
+import org.opendaylight.yangtools.yang.common.Decimal64;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.Uint16;
 import org.opendaylight.yangtools.yang.common.Uint32;
@@ -119,6 +120,10 @@ public class CompilationTest extends BaseCompilationTest {
         assertTrue(linksClass.isInterface());
         CompilationTestUtils.assertImplementsIfc(linksClass, keyArgsClass);
         assertEquals(7, abstractMethods(linksClass).size());
+        CompilationTestUtils.assertContainsMethod(linksClass,
+            "org.opendaylight.yang.gen.v1.urn.opendaylight.test.rev131008.links.Text", "getText", loader);
+        CompilationTestUtils.assertContainsMethod(linksClass,
+            "org.opendaylight.yang.gen.v1.urn.opendaylight.test.rev131008.links.Text", "requireText", loader);
 
         // Test list key constructor arguments ordering
         CompilationTestUtils.assertContainsConstructor(linksKeyClass, Byte.class, String.class, Integer.class);
@@ -143,7 +148,8 @@ public class CompilationTest extends BaseCompilationTest {
         assertTrue(new File(parent, "OpenObject.java").exists());
         assertTrue(new File(parent, "ExplicitRouteObject.java").exists());
         assertTrue(new File(parent, "PathKeySubobject.java").exists());
-        CompilationTestUtils.assertFilesCount(parent, 10);
+        assertTrue(new File(parent, "FooData.java").exists());
+        CompilationTestUtils.assertFilesCount(parent, 11);
 
         parent = new File(parent, "object");
         assertTrue(new File(parent, "Nodes.java").exists());
@@ -198,10 +204,11 @@ public class CompilationTest extends BaseCompilationTest {
 
         // Test if all sources were generated from 'module bar'
         parent = new File(sourcesOutputDir, CompilationTestUtils.NS_BAR);
+        assertTrue(new File(parent, "BarData.java").exists());
         assertTrue(new File(parent, "BasicExplicitRouteSubobjects.java").exists());
         assertTrue(new File(parent, "ExplicitRouteSubobjects.java").exists());
         assertTrue(new File(parent, "RouteSubobjects.java").exists());
-        CompilationTestUtils.assertFilesCount(parent, 6);
+        CompilationTestUtils.assertFilesCount(parent, 7);
 
         parent = new File(parent, "route");
         CompilationTestUtils.assertFilesCount(parent, 1);
@@ -240,15 +247,12 @@ public class CompilationTest extends BaseCompilationTest {
 
         // Test if all sources were generated from 'module foo'
         File parent = new File(sourcesOutputDir, CompilationTestUtils.NS_FOO);
-        final File fooListener = new File(parent, "FooListener.java");
-        File pathAttributes = new File(parent, "PathAttributes.java");
-        final File update = new File(parent, "Update.java");
-        final File updateBuilder = new File(parent, "UpdateBuilder.java");
-        assertTrue(fooListener.exists());
-        assertTrue(pathAttributes.exists());
-        assertTrue(update.exists());
-        assertTrue(updateBuilder.exists());
-        CompilationTestUtils.assertFilesCount(parent, 7);
+        assertTrue(new File(parent, "FooData.java").exists());
+        assertTrue(new File(parent, "FooListener.java").exists());
+        assertTrue(new File(parent, "PathAttributes.java").exists());
+        assertTrue(new File(parent, "Update.java").exists());
+        assertTrue(new File(parent, "UpdateBuilder.java").exists());
+        CompilationTestUtils.assertFilesCount(parent, 8);
 
         parent = new File(sourcesOutputDir, CompilationTestUtils.NS_FOO + CompilationTestUtils.FS + "path");
         CompilationTestUtils.assertFilesCount(parent, 1);
@@ -261,20 +265,16 @@ public class CompilationTest extends BaseCompilationTest {
 
         parent = new File(sourcesOutputDir, CompilationTestUtils.NS_FOO + CompilationTestUtils.FS + "update");
         CompilationTestUtils.assertFilesCount(parent, 2);
-        pathAttributes = new File(parent, "PathAttributes.java");
-        final File pathAttributesBuilder = new File(parent, "PathAttributesBuilder.java");
-        assertTrue(pathAttributes.exists());
-        assertTrue(pathAttributesBuilder.exists());
+        assertTrue(new File(parent, "PathAttributes.java").exists());
+        assertTrue(new File(parent, "PathAttributesBuilder.java").exists());
 
         // Test if all sources were generated from 'module bar'
         parent = new File(sourcesOutputDir, CompilationTestUtils.NS_BAR);
-        final File destination = new File(parent, "Destination.java");
-        final File pathAttributes1 = new File(parent, "PathAttributes1.java");
-        final File pathAttributes1Builder = new File(parent, "PathAttributes1Builder.java");
-        assertTrue(destination.exists());
-        assertTrue(pathAttributes1.exists());
-        assertTrue(pathAttributes1Builder.exists());
-        CompilationTestUtils.assertFilesCount(parent, 6);
+        assertTrue(new File(parent, "BarData.java").exists());
+        assertTrue(new File(parent, "Destination.java").exists());
+        assertTrue(new File(parent, "PathAttributes1.java").exists());
+        assertTrue(new File(parent, "PathAttributes1Builder.java").exists());
+        CompilationTestUtils.assertFilesCount(parent, 7);
 
         parent = new File(sourcesOutputDir, CompilationTestUtils.NS_BAR + CompilationTestUtils.FS + "destination");
         CompilationTestUtils.assertFilesCount(parent, 2);
@@ -306,17 +306,15 @@ public class CompilationTest extends BaseCompilationTest {
         parent = new File(parent, "unreach");
         CompilationTestUtils.assertFilesCount(parent, 1);
         parent = new File(parent, "nlri");
-        final File withdrawnRoutes = new File(parent, "WithdrawnRoutes.java");
-        final File withdrawnRoutesBuilder = new File(parent, "WithdrawnRoutesBuilder.java");
-        assertTrue(withdrawnRoutes.exists());
-        assertTrue(withdrawnRoutesBuilder.exists());
+        assertTrue(new File(parent, "WithdrawnRoutes.java").exists());
+        assertTrue(new File(parent, "WithdrawnRoutesBuilder.java").exists());
         CompilationTestUtils.assertFilesCount(parent, 2);
 
         // Test if all sources were generated from 'module baz'
         parent = new File(sourcesOutputDir, CompilationTestUtils.NS_BAZ);
-        CompilationTestUtils.assertFilesCount(parent, 3);
-        final File linkstateDestination = new File(parent, "LinkstateDestination.java");
-        assertTrue(linkstateDestination.exists());
+        assertTrue(new File(parent, "BazData.java").exists());
+        assertTrue(new File(parent, "LinkstateDestination.java").exists());
+        CompilationTestUtils.assertFilesCount(parent, 4);
 
         parent = new File(sourcesOutputDir, CompilationTestUtils.NS_BAZ + CompilationTestUtils.FS + "update");
         CompilationTestUtils.assertFilesCount(parent, 1);
@@ -380,8 +378,7 @@ public class CompilationTest extends BaseCompilationTest {
         assertTrue(new File(parent, "Nodes.java").exists());
         assertTrue(new File(parent, "NodesBuilder.java").exists());
         assertTrue(new File(parent, "Alg.java").exists());
-        assertTrue(new File(parent, "NodesIdUnionBuilder.java").exists());
-        CompilationTestUtils.assertFilesCount(parent, 6);
+        CompilationTestUtils.assertFilesCount(parent, 5);
 
         // Test if sources are compilable
         CompilationTestUtils.testCompilation(sourcesOutputDir, compiledOutputDir);
@@ -396,7 +393,7 @@ public class CompilationTest extends BaseCompilationTest {
         CompilationTestUtils.assertContainsMethod(nodesClass, b.getClass(), "getIdBinary");
         CompilationTestUtils.assertContainsMethod(nodesClass, pkg + ".Nodes$IdBits", "getIdBits", loader);
         CompilationTestUtils.assertContainsMethod(nodesClass, Boolean.class, "getIdBoolean");
-        CompilationTestUtils.assertContainsMethod(nodesClass, BigDecimal.class, "getIdDecimal64");
+        CompilationTestUtils.assertContainsMethod(nodesClass, Decimal64.class, "getIdDecimal64");
         CompilationTestUtils.assertContainsMethod(nodesClass, Empty.class, "getIdEmpty");
         CompilationTestUtils.assertContainsMethod(nodesClass, pkg + ".Nodes$IdEnumeration", "getIdEnumeration", loader);
         testReturnTypeIdentityref(nodesClass, "getIdIdentityref", pkg + ".Alg");
@@ -425,10 +422,10 @@ public class CompilationTest extends BaseCompilationTest {
         CompilationTestUtils.assertContainsRestrictionCheck(builderObj, method, expectedMsg, arg);
 
         method = CompilationTestUtils.assertContainsMethod(builderClass, builderClass, "setIdDecimal64",
-            BigDecimal.class);
-        final List<Range<BigDecimal>> rangeConstraints = new ArrayList<>();
-        rangeConstraints.add(Range.closed(new BigDecimal("1.5"), new BigDecimal("5.5")));
-        Object arg1 = new BigDecimal("1.4");
+            Decimal64.class);
+        final List<Range<Decimal64>> rangeConstraints = new ArrayList<>();
+        rangeConstraints.add(Range.closed(Decimal64.valueOf("1.5"), Decimal64.valueOf("5.5")));
+        Object arg1 = Decimal64.valueOf("1.4");
         expectedMsg = String.format("Invalid range: %s, expected: %s.", arg1, rangeConstraints);
         CompilationTestUtils.assertContainsRestrictionCheck(builderObj, method, expectedMsg, arg1);
 
@@ -450,7 +447,8 @@ public class CompilationTest extends BaseCompilationTest {
         assertTrue(new File(fooParent, "NodesBuilder.java").exists());
 
         final File barParent = new File(sourcesOutputDir, CompilationTestUtils.NS_BAR);
-        CompilationTestUtils.assertFilesCount(barParent, 2);
+        CompilationTestUtils.assertFilesCount(barParent, 3);
+        assertTrue(new File(barParent, "BarData.java").exists());
         assertTrue(new File(barParent, "IdentityClass.java").exists());
 
         // Test if sources are compilable
@@ -755,12 +753,12 @@ public class CompilationTest extends BaseCompilationTest {
             final String returnTypeStr) throws NoSuchMethodException {
         Method method = clazz.getMethod(methodName);
         assertEquals(java.lang.Class.class, method.getReturnType());
-        java.lang.reflect.Type returnType = method.getGenericReturnType();
+        Type returnType = method.getGenericReturnType();
         assertTrue(returnType instanceof ParameterizedType);
         final ParameterizedType pt = (ParameterizedType) returnType;
-        final java.lang.reflect.Type[] parameters = pt.getActualTypeArguments();
+        final Type[] parameters = pt.getActualTypeArguments();
         assertEquals(1, parameters.length);
-        final java.lang.reflect.Type parameter = parameters[0];
+        final Type parameter = parameters[0];
         assertTrue(parameter instanceof WildcardType);
         final WildcardType wildcardType = (WildcardType) parameter;
         assertEquals("? extends " + returnTypeStr, wildcardType.toString());
@@ -772,12 +770,12 @@ public class CompilationTest extends BaseCompilationTest {
         final Class<?> rawReturnType = Class.forName("org.opendaylight.yangtools.yang.binding.InstanceIdentifier", true,
             loader);
         assertEquals(rawReturnType, method.getReturnType());
-        final java.lang.reflect.Type returnType = method.getGenericReturnType();
+        final Type returnType = method.getGenericReturnType();
         assertTrue(returnType instanceof ParameterizedType);
         final ParameterizedType pt = (ParameterizedType) returnType;
-        final java.lang.reflect.Type[] parameters = pt.getActualTypeArguments();
+        final Type[] parameters = pt.getActualTypeArguments();
         assertEquals(1, parameters.length);
-        final java.lang.reflect.Type parameter = parameters[0];
+        final Type parameter = parameters[0];
         assertTrue(parameter instanceof WildcardType);
         final WildcardType wildcardType = (WildcardType) parameter;
         assertEquals("?", wildcardType.toString());