NETVIRT-1630 migrate to md-sal APIs
[netvirt.git] / elanmanager / impl / src / test / java / org / opendaylight / netvirt / elanmanager / tests / ElanServiceTestModule.java
index 9075893e1a20ffe16186fd06bf0aa64485ac6299..9ce65d924ebc4536842fda6efe1f4a5c687f3e7c 100644 (file)
@@ -8,11 +8,13 @@
 package org.opendaylight.netvirt.elanmanager.tests;
 
 import static org.mockito.Mockito.CALLS_REAL_METHODS;
+import static org.mockito.Mockito.mock;
 
-import com.google.common.base.Optional;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
+import java.util.Optional;
+import java.util.concurrent.Executors;
 import org.mockito.Mockito;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.test.DataBrokerTestModule;
 import org.opendaylight.daexim.DataImportBootReady;
 import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker;
 import org.opendaylight.genius.interfacemanager.commons.InterfaceManagerCommonUtils;
@@ -23,7 +25,6 @@ import org.opendaylight.genius.itm.api.IITMProvider;
 import org.opendaylight.genius.lockmanager.impl.LockManagerServiceImpl;
 import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
 import org.opendaylight.genius.mdsalutil.internal.MDSALManager;
-import org.opendaylight.genius.srm.ServiceRecoveryRegistry;
 import org.opendaylight.genius.testutils.TestInterfaceManager;
 import org.opendaylight.genius.testutils.TestItmProvider;
 import org.opendaylight.genius.testutils.itm.ItmRpcTestImpl;
@@ -33,6 +34,9 @@ import org.opendaylight.infrautils.diagstatus.DiagStatusService;
 import org.opendaylight.infrautils.inject.guice.testutils.AbstractGuiceJsr250Module;
 import org.opendaylight.infrautils.metrics.MetricProvider;
 import org.opendaylight.infrautils.metrics.testimpl.TestMetricProviderImpl;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractBaseDataBrokerTest;
+import org.opendaylight.mdsal.binding.dom.adapter.test.AbstractDataBrokerTestCustomizer;
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
 import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.netvirt.bgpmanager.api.IBgpManager;
@@ -47,8 +51,9 @@ import org.opendaylight.netvirt.neutronvpn.NeutronvpnManagerImpl;
 import org.opendaylight.netvirt.neutronvpn.api.l2gw.L2GatewayCache;
 import org.opendaylight.netvirt.neutronvpn.interfaces.INeutronVpnManager;
 import org.opendaylight.netvirt.vpnmanager.api.IVpnManager;
-import org.opendaylight.ovsdb.utils.mdsal.utils.MdsalUtils;
+import org.opendaylight.ovsdb.utils.mdsal.utils.ControllerMdsalUtils;
 import org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils;
+import org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.ItmRpcService;
@@ -56,7 +61,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev16041
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.config.rev150710.ElanConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.config.rev150710.ElanConfigBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
-import org.ops4j.pax.cdi.api.OsgiService;
 
 
 /**
@@ -68,20 +72,32 @@ import org.ops4j.pax.cdi.api.OsgiService;
 public class ElanServiceTestModule extends AbstractGuiceJsr250Module {
 
     @Override
-    protected void configureBindings() {
-        DataBroker dataBroker = DataBrokerTestModule.dataBroker();
-        EntityOwnershipService mockedEntityOwnershipService = Mockito.mock(EntityOwnershipService.class);
+    protected void configureBindings() throws Exception {
+        AbstractBaseDataBrokerTest test = new AbstractBaseDataBrokerTest() {
+            @Override
+            protected AbstractDataBrokerTestCustomizer createDataBrokerTestCustomizer() {
+                return new AbstractDataBrokerTestCustomizer() {
+                    @Override
+                    public ListeningExecutorService getCommitCoordinatorExecutor() {
+                        return MoreExecutors.listeningDecorator(Executors.newCachedThreadPool());
+                    }
+                };
+            }
+        };
+        test.setup();
+        DataBroker dataBroker = test.getDataBroker();
+        EntityOwnershipService mockedEntityOwnershipService = mock(EntityOwnershipService.class);
         EntityOwnershipState mockedEntityOwnershipState = EntityOwnershipState.IS_OWNER;
         Mockito.when(mockedEntityOwnershipService.getOwnershipState(Mockito.any()))
                 .thenReturn(Optional.of(mockedEntityOwnershipState));
         bind(EntityOwnershipService.class).toInstance(mockedEntityOwnershipService);
         bind(L2GatewayCache.class).to(L2GatewayCacheImpl.class);
         bind(HwvtepNodeHACache.class).to(HwvtepNodeHACacheImpl.class);
-        bind(ServiceRecoveryRegistry.class).toInstance(Mockito.mock(ServiceRecoveryRegistry.class));
-        bind(INeutronVpnManager.class).toInstance(Mockito.mock(NeutronvpnManagerImpl.class));
-        IVpnManager ivpnManager = Mockito.mock(VpnManagerTestImpl.class, CALLS_REAL_METHODS);
-        bind(IMdsalApiManager.class).toInstance(new MDSALManager(dataBroker,
-                Mockito.mock(PacketProcessingService.class)));
+        bind(ServiceRecoveryRegistry.class).toInstance(mock(ServiceRecoveryRegistry.class));
+        bind(INeutronVpnManager.class).toInstance(mock(NeutronvpnManagerImpl.class));
+        IVpnManager ivpnManager = mock(VpnManagerTestImpl.class, CALLS_REAL_METHODS);
+        MDSALManager mockedMdsalManager = new MDSALManager(dataBroker, mock(PacketProcessingService.class));
+        bind(IMdsalApiManager.class).toInstance(mockedMdsalManager);
 
         // Bindings for external services to "real" implementations
         bind(LockManagerService.class).to(LockManagerServiceImpl.class);
@@ -104,21 +120,20 @@ public class ElanServiceTestModule extends AbstractGuiceJsr250Module {
         ItmRpcService itmRpcService = new ItmRpcTestImpl();
 
         bind(DataBroker.class).toInstance(dataBroker);
-        bind(DataBroker.class).annotatedWith(OsgiService.class).toInstance(dataBroker);
-        bind(IdManagerService.class).toInstance(Mockito.mock(IdHelper.class,  CALLS_REAL_METHODS));
+        bind(IdManagerService.class).toInstance(mock(IdHelper.class,  CALLS_REAL_METHODS));
         bind(IInterfaceManager.class).toInstance(testInterfaceManager);
         bind(TestInterfaceManager.class).toInstance(testInterfaceManager);
         bind(IITMProvider.class).toInstance(testItmProvider);
         InterfaceMetaUtils interfaceMetaUtils = new InterfaceMetaUtils(dataBroker,
-                Mockito.mock(IdHelper.class,  CALLS_REAL_METHODS),
-                Mockito.mock(BatchingUtils.class));
+                mock(IdHelper.class,  CALLS_REAL_METHODS),
+                mock(BatchingUtils.class));
 
         InterfaceManagerCommonUtils interfaceManagerCommonUtils = new InterfaceManagerCommonUtils(
                 dataBroker,
-                new MDSALManager(dataBroker, Mockito.mock(PacketProcessingService.class)),
-                Mockito.mock(IdHelper.class,  CALLS_REAL_METHODS),
+                mockedMdsalManager,
+                mock(IdHelper.class,  CALLS_REAL_METHODS),
                 interfaceMetaUtils,
-                Mockito.mock(BatchingUtils.class));
+                mock(BatchingUtils.class));
 
 
         bind(OdlInterfaceRpcService.class).toInstance(ElanEgressActionsHelper.newInstance(interfaceManagerCommonUtils,
@@ -128,15 +143,14 @@ public class ElanServiceTestModule extends AbstractGuiceJsr250Module {
         IBgpManager ibgpManager = BgpManagerTestImpl.newInstance(singleTransactionDataBroker);
         bind(ItmRpcService.class).toInstance(itmRpcService);
         bind(ItmRpcTestImpl.class).toInstance((ItmRpcTestImpl)itmRpcService);
-        bind(DataImportBootReady.class).annotatedWith(OsgiService.class).toInstance(new DataImportBootReady() {});
-        bind(DiagStatusService.class).toInstance(Mockito.mock(DiagStatusService.class));
+        bind(DataImportBootReady.class).toInstance(new DataImportBootReady() {});
+        bind(DiagStatusService.class).toInstance(mock(DiagStatusService.class));
         bind(IVpnManager.class).toInstance(ivpnManager);
         bind(IBgpManager.class).toInstance(ibgpManager);
-        bind(DataImportBootReady.class).toInstance(new DataImportBootReady() {});
         bind(IElanService.class).to(ElanServiceProvider.class);
 
-        MdsalUtils mdsalUtils = new MdsalUtils(dataBroker);
-        bind(MdsalUtils.class).toInstance(mdsalUtils);
+        ControllerMdsalUtils mdsalUtils = new ControllerMdsalUtils(dataBroker);
+        bind(ControllerMdsalUtils.class).toInstance(mdsalUtils);
         bind(SouthboundUtils.class).toInstance(new SouthboundUtils(mdsalUtils));
     }
 }