BUG-865: do not use ModuleBuilder 60/40160/4
authorRobert Varga <rovarga@cisco.com>
Fri, 10 Jun 2016 11:30:22 +0000 (13:30 +0200)
committerRobert Varga <rovarga@cisco.com>
Mon, 13 Jun 2016 13:22:16 +0000 (15:22 +0200)
ModuleBuilder is going away, use mockito instead.

Change-Id: Ifb6cf12126f51f176acb0ca4024567e9e49c3d07
Signed-off-by: Robert Varga <rovarga@cisco.com>
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
binding/mdsal-binding-generator-impl/pom.xml
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/yang/types/GroupingDefinitionDependencySortTest.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImplTest.java
binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderTest.java
binding/mdsal-binding-generator-util/pom.xml
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/yangtools/binding/generator/util/BindingGeneratorUtilTest.java

index 714fdd2b0723de76054273860733191ac6169cdc..efe549b2951f907323b9283c993e0d506995ed04 100644 (file)
@@ -53,8 +53,9 @@
             <artifactId>junit</artifactId>
         </dependency>
         <dependency>
-          <groupId>org.mockito</groupId>
-          <artifactId>mockito-core</artifactId>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>mockito-configuration</artifactId>
+            <scope>test</scope>
         </dependency>
 
         <dependency>
index 88ed766d8320804c4197fb3ec4b9f8497e5dd521..462ec6508391d7ee8954c14de0685dd1d8e0e462 100644 (file)
@@ -8,8 +8,11 @@
 package org.opendaylight.yangtools.sal.binding.yang.types;
 
 import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import org.junit.Rule;
 import org.junit.Test;
@@ -17,7 +20,6 @@ import org.junit.rules.ExpectedException;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.parser.builder.impl.GroupingBuilderImpl;
 
 public class GroupingDefinitionDependencySortTest {
 
@@ -29,18 +31,47 @@ public class GroupingDefinitionDependencySortTest {
         GroupingDefinitionDependencySort groupingDefinitionDependencySort = new GroupingDefinitionDependencySort();
         List<GroupingDefinition> unsortedGroupingDefs = new ArrayList<>();
 
-        GroupingBuilderImpl groupingBuilderImpl = new GroupingBuilderImpl("test-module", 111, QName.create("leaf1"), SchemaPath.create(false, QName.create("Cont1"), QName.create("Cont2")));
-        GroupingBuilderImpl groupingBuilderImpl2 = new GroupingBuilderImpl("test-module", 222, QName.create("leaf2"), SchemaPath.create(false, QName.create("Cont1")));
-        GroupingBuilderImpl groupingBuilderImpl3 = new GroupingBuilderImpl("test-module2", 111, QName.create("leaf3"), SchemaPath.create(false, QName.create("Cont1"), QName.create("Cont2")));
-        GroupingBuilderImpl groupingBuilderImpl4 = new GroupingBuilderImpl("test-module2", 222, QName.create("leaf4"), SchemaPath.create(false, QName.create("Cont1"), QName.create("Cont2"), QName.create("List1")));
-        GroupingBuilderImpl groupingBuilderImpl5 = new GroupingBuilderImpl("test-module2", 333, QName.create("leaf5"), SchemaPath.create(false, QName.create("Cont1")));
-
-        unsortedGroupingDefs.add(groupingBuilderImpl.build());
-        unsortedGroupingDefs.add(groupingBuilderImpl.build());
-        unsortedGroupingDefs.add(groupingBuilderImpl2.build());
-        unsortedGroupingDefs.add(groupingBuilderImpl3.build());
-        unsortedGroupingDefs.add(groupingBuilderImpl4.build());
-        unsortedGroupingDefs.add(groupingBuilderImpl5.build());
+        GroupingDefinition grp1 = mock(GroupingDefinition.class);
+        doReturn(SchemaPath.create(false, QName.create("Cont1"), QName.create("Cont2"))).when(grp1).getPath();
+        doReturn(QName.create("leaf1")).when(grp1).getQName();
+        doReturn(Collections.EMPTY_SET).when(grp1).getUses();
+        doReturn(Collections.EMPTY_SET).when(grp1).getGroupings();
+        doReturn(Collections.EMPTY_SET).when(grp1).getChildNodes();
+
+        GroupingDefinition grp2 = mock(GroupingDefinition.class);
+        doReturn(SchemaPath.create(false, QName.create("Cont1"))).when(grp2).getPath();
+        doReturn(QName.create("leaf2")).when(grp2).getQName();
+        doReturn(Collections.EMPTY_SET).when(grp2).getUses();
+        doReturn(Collections.EMPTY_SET).when(grp2).getGroupings();
+        doReturn(Collections.EMPTY_SET).when(grp2).getChildNodes();
+
+        GroupingDefinition grp3 = mock(GroupingDefinition.class);
+        doReturn(SchemaPath.create(false, QName.create("Cont1"), QName.create("Cont2"))).when(grp3).getPath();
+        doReturn(QName.create("leaf3")).when(grp3).getQName();
+        doReturn(Collections.EMPTY_SET).when(grp3).getUses();
+        doReturn(Collections.EMPTY_SET).when(grp3).getGroupings();
+        doReturn(Collections.EMPTY_SET).when(grp3).getChildNodes();
+
+        GroupingDefinition grp4 = mock(GroupingDefinition.class);
+        doReturn(SchemaPath.create(false, QName.create("Cont1"), QName.create("Cont2"), QName.create("List1"))).when(grp4).getPath();
+        doReturn(QName.create("leaf4")).when(grp4).getQName();
+        doReturn(Collections.EMPTY_SET).when(grp4).getUses();
+        doReturn(Collections.EMPTY_SET).when(grp4).getGroupings();
+        doReturn(Collections.EMPTY_SET).when(grp4).getChildNodes();
+
+        GroupingDefinition grp5 = mock(GroupingDefinition.class);
+        doReturn(SchemaPath.create(false, QName.create("Cont1"))).when(grp5).getPath();
+        doReturn(QName.create("leaf5")).when(grp5).getQName();
+        doReturn(Collections.EMPTY_SET).when(grp5).getUses();
+        doReturn(Collections.EMPTY_SET).when(grp5).getGroupings();
+        doReturn(Collections.EMPTY_SET).when(grp5).getChildNodes();
+
+        unsortedGroupingDefs.add(grp1);
+        unsortedGroupingDefs.add(grp1);
+        unsortedGroupingDefs.add(grp2);
+        unsortedGroupingDefs.add(grp3);
+        unsortedGroupingDefs.add(grp4);
+        unsortedGroupingDefs.add(grp5);
 
         List<GroupingDefinition> sortedGroupingDefs = groupingDefinitionDependencySort.sort(unsortedGroupingDefs);
         assertNotNull(sortedGroupingDefs);
index 6e22000f77c0390a3ecdfa4a3ac6c2953598d059..1a486c576684140a60639eb9cfbb8b4e0fb65d66 100644 (file)
@@ -12,14 +12,13 @@ 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.mock;
+
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.NoSuchElementException;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.ExpectedException;
 import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedTypeBuilderImpl;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -40,18 +39,11 @@ import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
 import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
 import org.opendaylight.yangtools.yang.model.util.type.IdentityrefTypeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.IdentitySchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.impl.LeafSchemaNodeBuilder;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
-import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
-import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
 
 public class TypeProviderImplTest {
 
-    @Rule
-    public ExpectedException expException = ExpectedException.none();
-
     @Test (expected = YangValidationException.class)
     public void testLeafRefRelativeSelfReference() throws Exception {
         File relative = new File(getClass().getResource("/leafref/leafref-relative-invalid.yang").toURI());
@@ -81,7 +73,7 @@ public class TypeProviderImplTest {
     }
 
     @Test
-    public void testLeafRefRelativeAndAbsoluteValidReference() throws URISyntaxException, SourceException, FileNotFoundException, ReactorException {
+    public void testLeafRefRelativeAndAbsoluteValidReference() throws Exception {
         File valid = new File(getClass().getResource("/leafref/leafref-valid.yang").toURI());
 
         final SchemaContext schemaContext = RetestUtils.parseYangSources(valid);
@@ -104,7 +96,7 @@ public class TypeProviderImplTest {
     }
 
     @Test
-    public void testMethodsOfTypeProviderImpl() throws URISyntaxException, SourceException, FileNotFoundException, ReactorException {
+    public void testMethodsOfTypeProviderImpl() throws Exception {
         final File abstractTopology = new File(getClass().getResource("/base-yang-types.yang")
                 .toURI());
 
@@ -165,20 +157,19 @@ public class TypeProviderImplTest {
         assertEquals("new java.lang.Boolean(\"default value\")", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
 
         // enum type
-        expException.expect(NoSuchElementException.class);
         final EnumTypeDefinition enumType =  BaseTypes.enumerationTypeBuilder(refTypePath).build();
         leafSchemaNodeBuilder = new LeafSchemaNodeBuilder("test-module", 111, QName.create("Cont1"), SchemaPath.ROOT);
         leafSchemaNodeBuilder.setType(enumType);
         leafSchemaNode = leafSchemaNodeBuilder.build();
-        assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
+        try {
+            assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
+            fail("Expected NoSuchElementException");
+        } catch (Exception e) {
+            assertTrue( e instanceof NoSuchElementException);
+        }
 
         // identityref type
-        expException.expect(UnsupportedOperationException.class);
-        expException.expectMessage("Cannot get default construction for identityref type");
-
-        final ModuleBuilder testModBuilder = new ModuleBuilder("test-module", "/test");
-        final IdentitySchemaNodeBuilder identityNodeBuilder = testModBuilder.addIdentity(QName.create("IdentityRefTest"), 111, SchemaPath.ROOT);
-        final IdentitySchemaNode identitySchemaNode = identityNodeBuilder.build();
+        final IdentitySchemaNode identitySchemaNode = mock(IdentitySchemaNode.class);
 
         final IdentityrefTypeBuilder identityRefBuilder = BaseTypes.identityrefTypeBuilder(refTypePath);
         identityRefBuilder.setIdentity(identitySchemaNode);
@@ -186,8 +177,13 @@ public class TypeProviderImplTest {
         leafSchemaNodeBuilder = new LeafSchemaNodeBuilder("test-module", 111, QName.create("Cont1"), SchemaPath.ROOT);
         leafSchemaNodeBuilder.setType(identityRef);
 
-        leafSchemaNodeBuilder.setParent(identityNodeBuilder);
         leafSchemaNode = leafSchemaNodeBuilder.build();
-        assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
+        try {
+            assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
+            fail("Expected UnsupportedOperationException");
+        } catch (Exception e) {
+            assertTrue(e instanceof UnsupportedOperationException);
+            assertEquals("Cannot get default construction for identityref type", e.getMessage());
+        }
     }
 }
index d39103bfd68103f871431e7931e1886749ccdb50..6978c875b4de5b30cd5ff62e8579cbd3ef34f3bb 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.yangtools.sal.binding.yang.types;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
 
 import java.util.List;
 import java.util.Set;
@@ -389,6 +390,7 @@ public class TypeProviderTest {
         LeafSchemaNode leaf = provideLeafNodeFromTopLevelContainer(testTypeProviderModule, "bar", "leafref-value");
         TypeDefinition<?> leafType = leaf.getType();
         assertTrue(leafType instanceof LeafrefTypeDefinition);
+        doReturn(null).when(schemaNode).getPath();
         provider.provideTypeForLeafref((LeafrefTypeDefinition) leafType, schemaNode);
     }
 
index 80a287a79bcb0da54f3059d7a39431a2c9150ec9..5f37500f189bde8709cf6bb91bbaa081819fefdf 100644 (file)
             <groupId>org.opendaylight.yangtools</groupId>
             <artifactId>yang-model-api</artifactId>
         </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.opendaylight.mdsal</groupId>
             <artifactId>yang-binding</artifactId>
             <groupId>org.opendaylight.yangtools</groupId>
             <artifactId>yang-parser-impl</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools</groupId>
+            <artifactId>mockito-configuration</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
index 5a3581b0e7f319d621f0bbd1024aaa4f738cd6ff..6a978c6487d781672ca3544099c4e62c6842afd4 100644 (file)
@@ -13,12 +13,10 @@ import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-
-import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
-import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
-
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import com.google.common.base.Optional;
-
 import java.io.File;
 import java.io.IOException;
 import java.io.Serializable;
@@ -27,7 +25,6 @@ import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
-
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -56,14 +53,15 @@ import org.opendaylight.yangtools.yang.model.util.ExtendedType.Builder;
 import org.opendaylight.yangtools.yang.model.util.Int16;
 import org.opendaylight.yangtools.yang.model.util.StringType;
 import org.opendaylight.yangtools.yang.model.util.Uint16;
-import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
 public class BindingGeneratorUtilTest {
 
     @Rule
     public ExpectedException expectedEx = ExpectedException.none();
 
-    private static List<File> loadTestResources(String testFile) {
+    private static List<File> loadTestResources(final String testFile) {
         final List<File> testModels = new ArrayList<File>();
         File listModelFile;
         try {
@@ -156,17 +154,13 @@ public class BindingGeneratorUtilTest {
         assertNotEquals(computedSUID, computedSUID2);
 
         // test of exception part of the method moduleNamespaceToPackageName()
-        ModuleBuilder moduleBuilder = new ModuleBuilder("module-withut-revision", null);
-        moduleBuilder.setSource("");
-        Module moduleWithoutRevision = moduleBuilder.build();
-        boolean passedSuccesfully = false;
+        Module moduleWithoutRevision = mock(Module.class);
+        doReturn(null).when(moduleWithoutRevision).getQNameModule();
         try {
             BindingGeneratorUtil.moduleNamespaceToPackageName(moduleWithoutRevision);
-            passedSuccesfully = true;
+            fail("Expected IllegalArgumentException");
         } catch (IllegalArgumentException e) {
         }
-        assertFalse("Exception 'IllegalArgumentException' wasn't raised", passedSuccesfully);
-
     }
 
     /**