Reduce use of powermockito 05/80205/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 7 Feb 2019 10:43:00 +0000 (11:43 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 7 Feb 2019 11:29:35 +0000 (12:29 +0100)
Rather than mucking with powermock, use Mockito's partial mocking
on a real instance of HwvtepConnectionManager.

Also proper application of @VisibleForTesting and ovsdbClient mocking
allows us to not mock HwvtepConnectionInstance at all.

We also have a simple utility for setting final fields, use that
to reset Operations static field -- allowing us to not use powermock
in DataChangeListenerTestBase at all.

JIRA: OVSDB-476
Change-Id: I6c321c0455fb886dc0029b2a321f73eb3ba150d1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionInstance.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/DataChangeListenerTestBase.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/DependencyQueueTest.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepDataChangeListenerTest.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepOperationalStateTest.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/TransactionInvokerImplTest.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/UnMetDependencyGetterTest.java

index ae8dac4a71314789cc76cf9184db9a7354d1b2f7..9a00c035ff43b712c79ce3d5e520f7c75d273e70 100644 (file)
@@ -106,46 +106,15 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-api-mockito</artifactId>
-      <version>1.6.4</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.javassist</groupId>
-      <artifactId>javassist</artifactId>
-      <version>3.21.0-GA</version>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
       <version>1.10.19</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-module-junit4</artifactId>
-      <version>1.6.4</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-api-support</artifactId>
-      <version>1.6.4</version>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.powermock</groupId>
       <artifactId>powermock-reflect</artifactId>
-      <version>1.6.4</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-core</artifactId>
-      <version>1.6.4</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
index 8fcc727f01261d4459cd5f55fb357bea84932738..64b205c0da575557e4355b539b62ab3f11c37232 100644 (file)
@@ -8,6 +8,7 @@
 
 package org.opendaylight.ovsdb.hwvtepsouthbound;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -77,8 +78,10 @@ public class HwvtepConnectionInstance {
     private final DataBroker dataBroker;
     private final HwvtepConnectionManager hwvtepConnectionManager;
     private final ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
-    private final SettableFuture<Boolean> reconciliationFt = SettableFuture.create();
-    private final AtomicBoolean firstUpdateTriggered = new AtomicBoolean(false);
+    @VisibleForTesting
+    final SettableFuture<Boolean> reconciliationFt = SettableFuture.create();
+    @VisibleForTesting
+    final AtomicBoolean firstUpdateTriggered = new AtomicBoolean(false);
     private TransactionHistory controllerTxHistory;
     private TransactionHistory deviceUpdateHistory;
 
index 800a065de85b514130022705032544d7739c0c02..42b16c5ee66c43fd5b8a2e7d58217de0b3e715fc 100644 (file)
@@ -12,15 +12,13 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION;
 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL;
-import static org.powermock.api.support.membermodification.MemberMatcher.field;
-import static org.powermock.api.support.membermodification.MemberModifier.suppress;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.Field;
@@ -28,12 +26,10 @@ import java.lang.reflect.Modifier;
 import java.net.InetAddress;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.atomic.AtomicBoolean;
 import org.apache.commons.lang3.reflect.FieldUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.mockito.ArgumentCaptor;
-import org.mockito.Mockito;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
@@ -43,6 +39,7 @@ import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvoker;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvokerImpl;
 import org.opendaylight.ovsdb.lib.OvsdbClient;
+import org.opendaylight.ovsdb.lib.OvsdbConnection;
 import org.opendaylight.ovsdb.lib.OvsdbConnectionInfo;
 import org.opendaylight.ovsdb.lib.operations.Delete;
 import org.opendaylight.ovsdb.lib.operations.Insert;
@@ -72,7 +69,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.api.mockito.PowerMockito;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -135,7 +131,8 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest {
         deleteNode(CONFIGURATION);
     }
 
-    void setFinalStatic(Class cls, String fieldName, Object newValue) throws Exception {
+    static final void setFinalStatic(Class<?> cls, String fieldName, Object newValue) throws SecurityException,
+            ReflectiveOperationException {
         Field[] fields = FieldUtils.getAllFields(cls);
         for (Field field : fields) {
             if (fieldName.equals(field.getName())) {
@@ -164,21 +161,13 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest {
     }
 
     private void mockConnectionManager() throws IllegalAccessException {
-        hwvtepConnectionManager = PowerMockito.mock(HwvtepConnectionManager.class, Mockito.CALLS_REAL_METHODS);
-        field(HwvtepConnectionManager.class, "db").set(hwvtepConnectionManager, dataBroker);
-        field(HwvtepConnectionManager.class, "txInvoker").set(hwvtepConnectionManager, transactionInvoker);
-        field(HwvtepConnectionManager.class, "entityOwnershipService").set(hwvtepConnectionManager,
-                entityOwnershipService);
-        suppress(PowerMockito.method(HwvtepConnectionManager.class, "getConnectionInstance",
-                HwvtepPhysicalSwitchAttributes.class));
-        suppress(PowerMockito.method(HwvtepConnectionManager.class, "getConnectionInstanceFromNodeIid",
-                InstanceIdentifier.class));
-        doReturn(connectionInstance).when(
-                hwvtepConnectionManager).getConnectionInstance(Mockito.any(HwvtepPhysicalSwitchAttributes.class));
-        doReturn(connectionInstance).when(
-                hwvtepConnectionManager).getConnectionInstance(Mockito.any(Node.class));
-        doReturn(connectionInstance).when(
-                hwvtepConnectionManager).getConnectionInstanceFromNodeIid(Mockito.any(InstanceIdentifier.class));
+        hwvtepConnectionManager = spy(new HwvtepConnectionManager(dataBroker, transactionInvoker,
+            entityOwnershipService, mock(OvsdbConnection.class)));
+        doReturn(connectionInstance).when(hwvtepConnectionManager).getConnectionInstance(
+            any(HwvtepPhysicalSwitchAttributes.class));
+        doReturn(connectionInstance).when(hwvtepConnectionManager).getConnectionInstance(any(Node.class));
+        doReturn(connectionInstance).when(hwvtepConnectionManager).getConnectionInstanceFromNodeIid(
+            any(InstanceIdentifier.class));
     }
 
     void mockConnectionInstance() throws IllegalAccessException {
@@ -188,24 +177,14 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest {
         ovsdbClient = mock(OvsdbClient.class);
         doReturn(true).when(ovsdbClient).isActive();
         doReturn(connectionInfo).when(ovsdbClient).getConnectionInfo();
+        doReturn(listenableDbSchema).when(ovsdbClient).getSchema(anyString());
 
         transactionInvoker = new TransactionInvokerImpl(dataBroker);
 
-        connectionInstance = PowerMockito.mock(HwvtepConnectionInstance.class, Mockito.CALLS_REAL_METHODS);
-        field(HwvtepConnectionInstance.class, "instanceIdentifier").set(connectionInstance, nodeIid);
-        field(HwvtepConnectionInstance.class, "txInvoker").set(connectionInstance, transactionInvoker);
-        field(HwvtepConnectionInstance.class, "client").set(connectionInstance, ovsdbClient);
-        SettableFuture<Boolean> reconciliationFt = SettableFuture.create();
-        reconciliationFt.set(Boolean.TRUE);
-        field(HwvtepConnectionInstance.class, "reconciliationFt").set(connectionInstance, reconciliationFt);
-        field(HwvtepConnectionInstance.class, "firstUpdateTriggered").set(connectionInstance,
-                new AtomicBoolean(Boolean.TRUE));
-        doReturn(nodeIid).when(connectionInstance).getInstanceIdentifier();
-        doReturn(listenableDbSchema).when(connectionInstance).getSchema(anyString());
-        doReturn(dataBroker).when(connectionInstance).getDataBroker();
-        doReturn(nodeIid).when(connectionInstance).getInstanceIdentifier();
-        field(HwvtepConnectionInstance.class, "deviceInfo").set(connectionInstance,
-                new HwvtepDeviceInfo(connectionInstance));
+        connectionInstance = new HwvtepConnectionInstance(null, null, ovsdbClient, nodeIid, transactionInvoker,
+            dataBroker);
+        connectionInstance.reconciliationFt.set(Boolean.TRUE);
+        connectionInstance.firstUpdateTriggered.set(true);
         connectionInstance.setControllerTxHistory(new TransactionHistory(10000, 7500));
         connectionInstance.setDeviceUpdateHistory(new TransactionHistory(10000, 7500));
         connectionInstance.createTransactInvokers();
@@ -225,17 +204,16 @@ public class DataChangeListenerTestBase extends AbstractDataBrokerTest {
         doReturn(where).when(delete).where(any());
         Insert insert = mock(Insert.class);
         doReturn(insert).when(insert).withId(any(String.class));
-        Operations mockOp = PowerMockito.mock(Operations.class);
+        Operations mockOp = mock(Operations.class);
         doReturn(insert).when(mockOp).insert(insertOpCapture.capture());
         Update update = mock(Update.class);
         doReturn(update).when(mockOp).update(insertOpCapture.capture());
         doReturn(where).when(update).where(any());
         doReturn(delete).when(mockOp).delete(any());
 
-        Field opField = PowerMockito.field(Operations.class, "op");
         try {
-            opField.set(Operations.class, mockOp);
-        } catch (IllegalAccessException e) {
+            setFinalStatic(Operations.class, "op", mockOp);
+        } catch (SecurityException | ReflectiveOperationException e) {
             throw new AssertionError("Set of Operations.op field failed", e);
         }
 
index 914980586e2682d44169c438b28d733d08e4f8bd..a1f1f66bfb907360ed976a918ba3704dcf965a3f 100644 (file)
@@ -17,13 +17,13 @@ import java.util.concurrent.CountDownLatch;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.DependencyQueue;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.DependentJob;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.HwvtepOperationalState;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.McastMacsRemoteUpdateCommand;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.UnMetDependencyGetter;
 import org.opendaylight.ovsdb.lib.notation.UUID;
-import org.opendaylight.ovsdb.lib.operations.Operations;
 import org.opendaylight.ovsdb.lib.operations.TransactionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName;
@@ -34,14 +34,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.yang.binding.Identifiable;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
 import org.powermock.reflect.Whitebox;
 
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({HwvtepConnectionInstance.class, HwvtepConnectionManager.class, Operations.class,
-    DependencyQueue.class})
+@RunWith(MockitoJUnitRunner.class)
 public class DependencyQueueTest extends DataChangeListenerTestBase {
 
     String[][] terminationPoints = new String[][]{
@@ -66,7 +61,7 @@ public class DependencyQueueTest extends DataChangeListenerTestBase {
                 .child(LogicalSwitches.class, new LogicalSwitchesKey(new HwvtepNodeName("ls0")));
         macIid = nodeIid.augmentation(HwvtepGlobalAugmentation.class)
                 .child(RemoteMcastMacs.class, new RemoteMcastMacsKey(mac.key()));
-        setFinalStatic(DependencyQueue.class, "EXECUTOR_SERVICE", PowerMockito.mock(SameThreadScheduledExecutor.class,
+        setFinalStatic(DependencyQueue.class, "EXECUTOR_SERVICE", Mockito.mock(SameThreadScheduledExecutor.class,
                 Mockito.CALLS_REAL_METHODS));
     }
 
index c65d050cd5aa21a2fb12e4e01e822f1f67763544..cae2c7a0b8c18f17d47f2ac01d0e12057f26035a 100644 (file)
@@ -11,23 +11,22 @@ package org.opendaylight.ovsdb.hwvtepsouthbound;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION;
 import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL;
 
 import com.google.common.collect.Lists;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
 import java.util.Iterator;
 import java.util.List;
-import org.apache.commons.lang3.reflect.FieldUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Matchers;
 import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.DependencyQueue;
 import org.opendaylight.ovsdb.lib.operations.Operations;
 import org.opendaylight.ovsdb.lib.schema.typed.TypedBaseTable;
@@ -39,17 +38,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.RemoteUcastMacs;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Unit tests for the data-tree change listener.
  */
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({HwvtepConnectionInstance.class, HwvtepConnectionManager.class, Operations.class})
+@RunWith(MockitoJUnitRunner.class)
 public class HwvtepDataChangeListenerTest extends DataChangeListenerTestBase {
 
     static Logger LOG = LoggerFactory.getLogger(HwvtepDataChangeListenerTest.class);
@@ -92,7 +87,7 @@ public class HwvtepDataChangeListenerTest extends DataChangeListenerTestBase {
 
     @Before
     public void setupListener() throws Exception {
-        setFinalStatic(DependencyQueue.class, "EXECUTOR_SERVICE", PowerMockito.mock(SameThreadScheduledExecutor.class,
+        setFinalStatic(DependencyQueue.class, "EXECUTOR_SERVICE", mock(SameThreadScheduledExecutor.class,
                 Mockito.CALLS_REAL_METHODS));
         opDataChangeListener = new HwvtepOperationalDataChangeListener(dataBroker, hwvtepConnectionManager,
                 connectionInstance);
@@ -103,21 +98,6 @@ public class HwvtepDataChangeListenerTest extends DataChangeListenerTestBase {
         opDataChangeListener.close();
     }
 
-    @Override
-    void setFinalStatic(Class cls, String fieldName, Object newValue) throws Exception {
-        Field[] fields = FieldUtils.getAllFields(cls);
-        for (Field field : fields) {
-            if (fieldName.equals(field.getName())) {
-                field.setAccessible(true);
-                Field modifiersField = Field.class.getDeclaredField("modifiers");
-                modifiersField.setAccessible(true);
-                modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
-                field.set(null, newValue);
-                break;
-            }
-        }
-    }
-
     @Test
     public <T extends DataObject> void testLogicalSwitchAdd() throws Exception {
         addData(CONFIGURATION, LogicalSwitches.class, logicalSwitches);
index 2726c75891f144bb0dcbdcf99386be706b4c0ea5..0548b02769212eb15d4fd1a17a101a2376053a77 100644 (file)
@@ -15,19 +15,16 @@ import static org.junit.Assert.assertTrue;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.runners.MockitoJUnitRunner;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.HwvtepOperationalState;
 import org.opendaylight.ovsdb.lib.notation.UUID;
-import org.opendaylight.ovsdb.lib.operations.Operations;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitchesKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
 
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({HwvtepConnectionInstance.class, HwvtepConnectionManager.class, Operations.class})
+@RunWith(MockitoJUnitRunner.class)
 public class HwvtepOperationalStateTest extends DataChangeListenerTestBase {
 
     UUID uuid = new UUID("ls0");
index 97d50c7605f3a9df841e49ce34cfb056048ed5de..66b17404a61576a8a1a9ece99a684d6d4ff9e1ee 100644 (file)
@@ -19,6 +19,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.runners.MockitoJUnitRunner;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
@@ -37,11 +38,10 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.modules.junit4.PowerMockRunner;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class TransactionInvokerImplTest extends AbstractConcurrentDataBrokerTest {
 
     private static final Logger LOG = LoggerFactory.getLogger(DataChangeListenerTestBase.class);
index 1dc616ea01c568ce46f60c8d8d6b59eb61993252..8de4cc14e5ede7717405acce5139766138779618 100644 (file)
@@ -15,11 +15,11 @@ import java.util.List;
 import java.util.Map;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.runners.MockitoJUnitRunner;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.HwvtepOperationalState;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.McastMacsRemoteUpdateCommand;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.UnMetDependencyGetter;
 import org.opendaylight.ovsdb.lib.notation.UUID;
-import org.opendaylight.ovsdb.lib.operations.Operations;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepGlobalAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.HwvtepNodeName;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.LogicalSwitches;
@@ -28,12 +28,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.yang.binding.Identifiable;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
 import org.powermock.reflect.Whitebox;
 
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({HwvtepConnectionInstance.class, HwvtepConnectionManager.class, Operations.class})
+@RunWith(MockitoJUnitRunner.class)
 public class UnMetDependencyGetterTest extends DataChangeListenerTestBase {
 
     UnMetDependencyGetter<RemoteMcastMacs> mcastMacDataValidator;