Fix mockito deprecation warnings
[mdsal.git] / binding2 / mdsal-binding2-generator-impl / src / test / java / org / opendaylight / mdsal / binding / javav2 / generator / impl / BindingGeneratorImplTest.java
index e06edd2c646e030e613ba769a026a727349665a7..171808dbbe08ae1cd80bcc93fa7b866ee51ef41e 100644 (file)
@@ -12,9 +12,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.io.File;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
 import java.util.List;
 import org.junit.Test;
 import org.opendaylight.mdsal.binding.javav2.generator.api.BindingGenerator;
@@ -32,8 +29,7 @@ public class BindingGeneratorImplTest {
     @Test
     public void genTypesTypeDefTest() throws Exception {
         final BindingGeneratorImpl bg = new BindingGeneratorImpl(false);
-        final SchemaContext schemaContext = YangParserTestUtils
-                .parseYangFiles(new File(getClass().getResource("/generator/test-typedef.yang").toURI()));
+        final SchemaContext schemaContext = YangParserTestUtils.parseYangResource("/generator/test-typedef.yang");
         final List<Type> generateTypes = bg.generateTypes(schemaContext);
         assertNotNull(generateTypes);
         for (final Type genType : generateTypes) {
@@ -52,8 +48,7 @@ public class BindingGeneratorImplTest {
     @Test
     public void generatedTypesEnumTest() throws Exception {
         final BindingGenerator bg = new BindingGeneratorImpl(false);
-        final SchemaContext context = YangParserTestUtils
-                .parseYangFiles(new File(getClass().getResource("/generator/apple-test.yang").toURI()));
+        final SchemaContext context = YangParserTestUtils.parseYangResource("/generator/apple-test.yang");
         final List<Type> generateTypes = bg.generateTypes(context);
         assertNotNull(generateTypes);
         assertTrue(!generateTypes.isEmpty());
@@ -74,12 +69,10 @@ public class BindingGeneratorImplTest {
     }
 
     @Test
-    public void generatedTypesUsesEnumLeafTest() throws Exception {
+    public void generatedTypesUsesEnumLeafTest() {
         final BindingGenerator bg = new BindingGeneratorImpl(false);
-        final List<File> sources = new ArrayList<>();
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype-base.yang").toURI()));
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype.yang").toURI()));
-        final SchemaContext context = YangParserTestUtils.parseYangFiles(sources);
+        final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+            "/uses-statement/test-uses-leaf-innertype-base.yang", "/uses-statement/test-uses-leaf-innertype.yang");
         final List<Type> generateTypes = bg.generateTypes(context);
         assertNotNull(generateTypes);
         assertTrue(!generateTypes.isEmpty());
@@ -101,12 +94,10 @@ public class BindingGeneratorImplTest {
     }
 
     @Test
-    public void generatedTypesUsesBitsLeafTest() throws Exception {
+    public void generatedTypesUsesBitsLeafTest() {
         final BindingGenerator bg = new BindingGeneratorImpl(false);
-        final List<File> sources = new ArrayList<>();
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype2-base.yang").toURI()));
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype2.yang").toURI()));
-        final SchemaContext context = YangParserTestUtils.parseYangFiles(sources);
+        final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+            "/uses-statement/test-uses-leaf-innertype2-base.yang", "/uses-statement/test-uses-leaf-innertype2.yang");
         final List<Type> generateTypes = bg.generateTypes(context);
         assertNotNull(generateTypes);
         assertTrue(!generateTypes.isEmpty());
@@ -114,7 +105,7 @@ public class BindingGeneratorImplTest {
             if (type.getName().equals("MyCont") && type.getPackageName()
                     .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.base.rev170809.data")) {
                 final GeneratedType gt = (GeneratedType) type;
-                for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+                for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
                     if (methodSignature.getName().equals("getLeafBits")) {
                         assertEquals("LeafBits", methodSignature.getReturnType().getName());
                     }
@@ -125,7 +116,7 @@ public class BindingGeneratorImplTest {
             if (type.getName().equals("MyCont") && type.getPackageName()
                     .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.rev170809.data")) {
                 final GeneratedType gt = (GeneratedType) type;
-                for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+                for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
                     if (methodSignature.getName().equals("getLeafBits")) {
                         assertEquals("LeafBits", methodSignature.getReturnType().getName());
                     }
@@ -135,12 +126,10 @@ public class BindingGeneratorImplTest {
     }
 
     @Test
-    public void generatedTypesUsesUnionLeafTest() throws Exception {
+    public void generatedTypesUsesUnionLeafTest() {
         final BindingGenerator bg = new BindingGeneratorImpl(false);
-        final List<File> sources = new ArrayList<>();
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype2-base.yang").toURI()));
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype2.yang").toURI()));
-        final SchemaContext context = YangParserTestUtils.parseYangFiles(sources);
+        final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+            "/uses-statement/test-uses-leaf-innertype2-base.yang", "/uses-statement/test-uses-leaf-innertype2.yang");
         final List<Type> generateTypes = bg.generateTypes(context);
         assertNotNull(generateTypes);
         assertTrue(!generateTypes.isEmpty());
@@ -148,7 +137,7 @@ public class BindingGeneratorImplTest {
             if (type.getName().equals("MyCont") && type.getPackageName()
                     .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.base.rev170809.data")) {
                 final GeneratedType gt = (GeneratedType) type;
-                for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+                for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
                     if (methodSignature.getName().equals("getLeafUnion")) {
                         assertEquals("LeafUnion", methodSignature.getReturnType().getName());
                     }
@@ -159,7 +148,7 @@ public class BindingGeneratorImplTest {
             if (type.getName().equals("MyCont") && type.getPackageName()
                     .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.rev170809.data")) {
                 final GeneratedType gt = (GeneratedType) type;
-                for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+                for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
                     if (methodSignature.getName().equals("getLeafUnion")) {
                         assertEquals("LeafUnion", methodSignature.getReturnType().getName());
                     }
@@ -169,12 +158,10 @@ public class BindingGeneratorImplTest {
     }
 
     @Test
-    public void generatedTypesUsesLeafTest() throws Exception {
+    public void generatedTypesUsesLeafTest() {
         final BindingGenerator bg = new BindingGeneratorImpl(false);
-        final List<File> sources = new ArrayList<>();
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype2-base.yang").toURI()));
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype2.yang").toURI()));
-        final SchemaContext context = YangParserTestUtils.parseYangFiles(sources);
+        final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+            "/uses-statement/test-uses-leaf-innertype2-base.yang", "/uses-statement/test-uses-leaf-innertype2.yang");
         final List<Type> generateTypes = bg.generateTypes(context);
         assertNotNull(generateTypes);
         assertTrue(!generateTypes.isEmpty());
@@ -182,7 +169,7 @@ public class BindingGeneratorImplTest {
             if (type.getName().equals("MyCont") && type.getPackageName()
                     .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.base.rev170809.data")) {
                 final GeneratedType gt = (GeneratedType) type;
-                for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+                for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
                     if (methodSignature.getName().equals("getLeafDecimal64")) {
                         assertEquals("BigDecimal", methodSignature.getReturnType().getName());
                     }
@@ -193,7 +180,7 @@ public class BindingGeneratorImplTest {
             if (type.getName().equals("MyCont") && type.getPackageName()
                     .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.rev170809.data")) {
                 final GeneratedType gt = (GeneratedType) type;
-                for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+                for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
                     if (methodSignature.getName().equals("getLeafDecimal64")) {
                         assertEquals("BigDecimal", methodSignature.getReturnType().getName());
                     }
@@ -203,12 +190,11 @@ public class BindingGeneratorImplTest {
     }
 
     @Test
-    public void generatedTypesUsesLeafInnertype3Test() throws Exception {
+    public void generatedTypesUsesLeafInnertype3Test() {
         final BindingGenerator bg = new BindingGeneratorImpl(false);
-        final List<File> sources = new ArrayList<>();
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype3-base.yang").toURI()));
-        sources.add(new File(getClass().getResource("/uses-statement/test-uses-leaf-innertype3.yang").toURI()));
-        final SchemaContext context = YangParserTestUtils.parseYangFiles(sources);
+        final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+            "/uses-statement/test-uses-leaf-innertype3-base.yang",
+            "/uses-statement/test-uses-leaf-innertype3.yang");
         final List<Type> generateTypes = bg.generateTypes(context);
         assertNotNull(generateTypes);
         assertTrue(!generateTypes.isEmpty());
@@ -216,7 +202,7 @@ public class BindingGeneratorImplTest {
             if (type.getName().equals("MyCont") && type.getPackageName()
                     .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype3.rev170809.data")) {
                 final GeneratedType gt = (GeneratedType) type;
-                for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+                for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
                     if (methodSignature.getName().equals("getBandwidth")) {
                         assertEquals("Bandwidth", methodSignature.getReturnType().getName());
                     }
@@ -227,7 +213,7 @@ public class BindingGeneratorImplTest {
             if (type.getName().equals("Open") && type.getPackageName()
                     .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype3.rev170809.data")) {
                 final GeneratedType gt = (GeneratedType) type;
-                for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+                for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
                     if (methodSignature.getName().equals("getVersion")) {
                         assertEquals("ProtocolVersion", methodSignature.getReturnType().getName());
                     }
@@ -242,10 +228,9 @@ public class BindingGeneratorImplTest {
     }
 
     @Test
-    public void generatedTypesTest() throws Exception {
+    public void generatedTypesTest() {
         final BindingGenerator bg = new BindingGeneratorImpl(false);
-        final SchemaContext context = YangParserTestUtils
-                .parseYangFiles(new File(getClass().getResource("/generator/test-list.yang").toURI()));
+        final SchemaContext context = YangParserTestUtils.parseYangResource("/generator/test-list.yang");
         final List<Type> generateTypes = bg.generateTypes(context);
 
         assertNotNull(generateTypes);
@@ -286,32 +271,10 @@ public class BindingGeneratorImplTest {
         assertEquals(3, test_i[0]);
     }
 
-    @Test
-    public void generateTypesDescriptionsTest() throws Exception {
-        final BindingGenerator bg = new BindingGeneratorImpl(true);
-        final SchemaContext context = YangParserTestUtils.parseYangFiles(getFiles("/base/with_import/"));
-        assertNotNull(context);
-
-        final List<Type> generateTypes = bg.generateTypes(context, context.getModules());
-        assertNotNull(generateTypes);
-        assertTrue(!generateTypes.isEmpty());
-
-        for (final Type type : generateTypes) {
-            if (type.getName().equals("TestData")) {
-                final String description = ((GeneratedType) type).getDescription().get();
-                description
-                        .contains("    import test-import { prefix \"imported-test\"; revision-date 2017-04-21; }\n\n");
-                description.contains("    revision 2017-02-06;\n\n");
-                description.contains("    typedef my-type {\n        type int8;\n    }");
-                description.contains("    container *my-cont {\n    }\n");
-            }
-        }
-    }
-
     @Test
     public void generateTypesIdentityTest() throws Exception {
         final BindingGenerator bg = new BindingGeneratorImpl(true);
-        final SchemaContext context = YangParserTestUtils.parseYangFiles(getFiles("/identity/"));
+        final SchemaContext context = YangParserTestUtils.parseYangResourceDirectory("/identity/");
         assertNotNull(context);
 
         final List<Type> generateTypes = bg.generateTypes(context, context.getModules());
@@ -320,30 +283,38 @@ public class BindingGeneratorImplTest {
         for (final Type type : generateTypes) {
             if (type.getFullyQualifiedName()
                     .equals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden1")) {
-                final GeneratedTransferObject genTO = (GeneratedTransferObject)type;
+                final GeneratedType genType = (GeneratedType)type;
                 assertEquals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden2",
-                        genTO.getSuperType().getFullyQualifiedName());
+                    genType.getImplements().stream().findFirst().get().getFullyQualifiedName());
 
             }
             if (type.getFullyQualifiedName()
                     .equals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden2")) {
-                final GeneratedTransferObject genTO = (GeneratedTransferObject)type;
+                final GeneratedType genType = (GeneratedType)type;
                 assertEquals("org.opendaylight.mdsal.gen.javav2.identity.import_.rev170602.ident.Iden1",
-                        genTO.getSuperType().getFullyQualifiedName());
+                    genType.getImplements().stream().findFirst().get().getFullyQualifiedName());
 
             }
             if (type.getFullyQualifiedName()
                     .equals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden3")) {
-                final GeneratedTransferObject genTO = (GeneratedTransferObject)type;
+                final GeneratedType genType = (GeneratedType)type;
                 assertEquals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden1",
-                        genTO.getSuperType().getFullyQualifiedName());
+                    genType.getImplements().stream().findFirst().get().getFullyQualifiedName());
 
             }
-        }
-    }
+            if (type.getFullyQualifiedName()
+                .equals("org.opendaylight.mdsal.gen.javav2.identity4.module.rev180227.ident.Iden3")) {
+                final GeneratedType genType = (GeneratedType)type;
+                genType.getImplements().stream().forEach(impl -> {
+                    final String fqn = impl.getFullyQualifiedName();
+                    assertTrue(fqn.equals(
+                            "org.opendaylight.mdsal.gen.javav2.identity4.module.rev180227.ident.Iden1")
+                        || fqn.equals(
+                            "org.opendaylight.mdsal.gen.javav2.identity4.module.rev180227.ident.Iden2"));
+                });
 
-    private File[] getFiles(final String path) throws URISyntaxException {
-        return new File(getClass().getResource(path).toURI()).listFiles();
+            }
+        }
     }
 
     private void testActualType(final GeneratedType t, final int[] test_i) {
@@ -391,8 +362,8 @@ public class BindingGeneratorImplTest {
                 int test_j = 0;
                 for (final MethodSignature m : t.getMethodDefinitions()) {
                     switch (m.getName()) {
-                        case "getKey":
-                                assertMethod(t, "getKey", "MyListKey",
+                        case "getIdentifier":
+                                assertMethod(t, "getIdentifier", "MyListKey",
                                         "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list",
                                         m);
                             test_j++;
@@ -425,12 +396,13 @@ public class BindingGeneratorImplTest {
         }
     }
 
-    private void assertBaseGeneratedType(final GeneratedType genType, final String name, final String packageName) {
+    private static void assertBaseGeneratedType(final GeneratedType genType, final String name,
+            final String packageName) {
         assertEquals(name, genType.getName());
 
     }
 
-    private void assertMethod(final GeneratedType definingTypeExpected, final String nameExpected,
+    private static void assertMethod(final GeneratedType definingTypeExpected, final String nameExpected,
             final String typeNameExpected, final String typePackageNameExpected,
             final MethodSignature methodSignature) {
         assertEquals(definingTypeExpected, methodSignature.getDefiningType());