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;
import org.opendaylight.genius.interfacemanager.commons.InterfaceMetaUtils;
import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
import org.opendaylight.genius.interfacemanager.renderer.ovs.utilities.BatchingUtils;
+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;
import org.opendaylight.genius.utils.hwvtep.HwvtepNodeHACache;
import org.opendaylight.genius.utils.hwvtep.internal.HwvtepNodeHACacheImpl;
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;
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;
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;
/**
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);
bind(ElanConfig.class).toInstance(new ElanConfigBuilder().setIntBridgeGenMac(true)
.setTempSmacLearnTimeout(10).build());
+ bind(MetricProvider.class).toInstance(new TestMetricProviderImpl());
// Bindings of all listeners (which are not directly referenced in the code)
// This is required to be explicit here, because these are referenced neither from src/main nor src/test
// Bindings to test infra (fakes & mocks)
TestInterfaceManager testInterfaceManager = TestInterfaceManager.newInstance(dataBroker);
+ IITMProvider testItmProvider = TestItmProvider.newInstance();
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,
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));
}
}