Do not generate union builders
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / test / java / org / opendaylight / mdsal / binding / java / api / generator / GeneratorUtilTest.java
index 885d480e1f55d211b0cd33eb4b383a5f4c6f4e57..5c4d7c3090144c88afa0a61ce26b828b0e02acac 100644 (file)
@@ -11,28 +11,33 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.reset;
-import static org.opendaylight.mdsal.binding.generator.util.TypeConstants.PATTERN_CONSTANT_NAME;
 import static org.opendaylight.mdsal.binding.java.api.generator.GeneratorUtil.createImports;
+import static org.opendaylight.mdsal.binding.model.ri.TypeConstants.PATTERN_CONSTANT_NAME;
 
 import com.google.common.collect.ImmutableList;
 import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
 import java.util.Map;
 import org.junit.Before;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.java.api.generator.GeneratorUtil;
 import org.opendaylight.mdsal.binding.model.api.AnnotationType;
 import org.opendaylight.mdsal.binding.model.api.Constant;
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.mdsal.binding.model.api.GeneratedType;
+import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.MethodSignature;
 import org.opendaylight.mdsal.binding.model.api.ParameterizedType;
 import org.opendaylight.mdsal.binding.model.api.Type;
 
 public class GeneratorUtilTest {
+    private static final JavaTypeName ANNOTATION = JavaTypeName.create("tst.package", "tstAnnotationName");
+    private static final JavaTypeName PARAMETERIZED_TYPE = JavaTypeName.create("tst.package", "tstParametrizedType");
+    private static final JavaTypeName TYPE = JavaTypeName.create("tst.package", "tstName");
 
     private final GeneratedType generatedType = mock(GeneratedType.class);
     private final GeneratedTransferObject enclosedType = mock(GeneratedTransferObject.class);
@@ -49,18 +54,23 @@ public class GeneratorUtilTest {
 
         doReturn("tst.package").when(parameterizedType).getPackageName();
         doReturn("tstParametrizedType").when(parameterizedType).getName();
+        doReturn(PARAMETERIZED_TYPE).when(parameterizedType).getIdentifier();
         doReturn("tst.package").when(type).getPackageName();
         doReturn("tstName").when(type).getName();
+        doReturn(TYPE).when(type).getIdentifier();
         doReturn(parameterizedType).when(property).getReturnType();
         doReturn(new Type[] { type }).when(parameterizedType).getActualTypeArguments();
         doReturn(ImmutableList.of(property)).when(enclosedType).getProperties();
-        doReturn(true).when(property).isReadOnly();
+        doReturn(Boolean.TRUE).when(property).isReadOnly();
         doReturn("tst.package").when(enclosedType).getPackageName();
         doReturn("tstName").when(enclosedType).getName();
+        doReturn(TYPE).when(enclosedType).getIdentifier();
+
         doReturn(ImmutableList.of(parameter)).when(methodSignature).getParameters();
 
         doReturn("tst.package").when(annotationType).getPackageName();
         doReturn("tstAnnotationName").when(annotationType).getName();
+        doReturn(ANNOTATION).when(annotationType).getIdentifier();
 
         doReturn(type).when(parameter).getType();
         doReturn(type).when(methodSignature).getReturnType();
@@ -86,14 +96,14 @@ public class GeneratorUtilTest {
         assertTrue(generated.get("tstName").equals("tst.package"));
     }
 
-    @Test(expected = UnsupportedOperationException.class)
-    public void constructTest() throws Throwable {
-        final Constructor constructor = GeneratorUtil.class.getDeclaredConstructor();
+    public void constructTest() throws ReflectiveOperationException {
+        final Constructor<GeneratorUtil> constructor = GeneratorUtil.class.getDeclaredConstructor();
         constructor.setAccessible(true);
         try {
             constructor.newInstance();
-        } catch (Exception e) {
-            throw e.getCause();
+            fail();
+        } catch (InvocationTargetException e) {
+            assertTrue(e.getCause() instanceof UnsupportedOperationException);
         }
     }
 
@@ -104,9 +114,9 @@ public class GeneratorUtilTest {
 
     @Test
     public void createImportsTest() throws Exception {
-        final Map<String, String> generated = createImports(generatedType);
+        final Map<String, JavaTypeName> generated = createImports(generatedType);
         assertNotNull(generated);
-        assertTrue(generated.get("tstAnnotationName").equals("tst.package"));
+        assertEquals(JavaTypeName.create("tst.package", "tstAnnotationName"), generated.get("tstAnnotationName"));
     }
 
     @Test(expected = IllegalArgumentException.class)
@@ -138,18 +148,4 @@ public class GeneratorUtilTest {
                 createImports(generatedType)).contains(parameterizedType.getName()));
 
     }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void getTopParentTransportObjectWithExceptionTest() throws Exception {
-        GeneratorUtil.getTopParentTransportObject(null);
-    }
-
-    @Test
-    public void getTopParentTransportObjectTest() throws Exception {
-        assertEquals(enclosedType, GeneratorUtil.getTopParentTransportObject(enclosedType));
-
-        final GeneratedTransferObject parent = mock(GeneratedTransferObject.class);
-        doReturn(parent).when(enclosedType).getSuperType();
-        assertEquals(parent, GeneratorUtil.getTopParentTransportObject(enclosedType));
-    }
 }
\ No newline at end of file