use multi thread executor in unit tests 80/77780/3
authorMatej Perina <matej.perina@pantheon.tech>
Wed, 14 Nov 2018 11:11:16 +0000 (12:11 +0100)
committerRobert Varga <nite@hq.sk>
Wed, 21 Nov 2018 11:08:50 +0000 (11:08 +0000)
- instantiatie AbstractConcurentDataBroker the way to use
  CachedThreadPoolExecutor instead of DirectExecutor
- with new executor we are not in sync with .get() on transaction
  future, so timers continuos verification with timeout is used
  in tests where needed

JIRA: BGPCEP-847

Change-Id: I86cbe54a17e65d4ac7bdc7ca447ac58f345c473a
Signed-off-by: Matej Perina <matej.perina@pantheon.tech>
(cherry picked from commit 99daf02ad6b9f722e581cadaf101e1bff31366f1)

bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/config/BgpDeployerImplTest.java
config-loader/config-loader-impl/src/test/java/org/opendaylight/bgpcep/config/loader/impl/AbstractConfigLoader.java

index 10a751963f77c50b8fd945431fb0e7f17bf80971..b3cf8bfdcbb95db3ff849d4f5005834277f810c8 100644 (file)
@@ -13,6 +13,7 @@ import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.opendaylight.protocol.bgp.rib.impl.config.AbstractConfig.TABLES_KEY;
@@ -77,6 +78,7 @@ public class BgpDeployerImplTest extends DefaultRibPoliciesMockTest {
             .augmentation(NetworkInstanceProtocol.class).child(Bgp.class);
     private static final InstanceIdentifier<Global> GLOBAL_II = BGP_II.child(Global.class);
     private static final InstanceIdentifier<Neighbors> NEIGHBORS_II = BGP_II.child(Neighbors.class);
+    private static final int VERIFY_TIMEOUT_MILIS = 5000;
 
     @Mock
     private BlueprintContainer blueprintContainer;
@@ -138,8 +140,8 @@ public class BgpDeployerImplTest extends DefaultRibPoliciesMockTest {
         checkPresentConfiguration(getDataBroker(), NETWORK_II);
         createRib(createGlobalIpv4());
 
-        verify(this.blueprintContainer).getComponentInstance(eq("ribImpl"));
-        verify(this.bundleContext).registerService(eq(InstanceType.RIB.getServices()), any(), any(Dictionary.class));
+        verify(this.blueprintContainer, timeout(VERIFY_TIMEOUT_MILIS)).getComponentInstance(eq("ribImpl"));
+        verify(this.bundleContext, timeout(VERIFY_TIMEOUT_MILIS)).registerService(eq(InstanceType.RIB.getServices()), any(), any(Dictionary.class));
 
         //change with same rib already existing
         createRib(createGlobalIpv4());
@@ -150,7 +152,7 @@ public class BgpDeployerImplTest extends DefaultRibPoliciesMockTest {
         createRib(createGlobalIpv6());
 
         verify(this.blueprintContainer).getComponentInstance(eq("ribImpl"));
-        verify(this.bundleContext, times(2)).registerService(eq(InstanceType.RIB.getServices()),
+        verify(this.bundleContext, timeout(VERIFY_TIMEOUT_MILIS).times(2)).registerService(eq(InstanceType.RIB.getServices()),
                 any(), any(Dictionary.class));
         verify(this.dataTreeRegistration).close();
         verify(this.registration).unregister();
@@ -159,10 +161,10 @@ public class BgpDeployerImplTest extends DefaultRibPoliciesMockTest {
         deleteRib();
 
         verify(this.blueprintContainer).getComponentInstance(eq("ribImpl"));
-        verify(this.bundleContext, times(2))
+        verify(this.bundleContext, timeout(VERIFY_TIMEOUT_MILIS).times(2))
                 .registerService(eq(InstanceType.RIB.getServices()), any(), any(Dictionary.class));
-        verify(this.dataTreeRegistration, times(2)).close();
-        verify(this.registration, times(2)).unregister();
+        verify(this.dataTreeRegistration, timeout(VERIFY_TIMEOUT_MILIS).times(2)).close();
+        verify(this.registration, timeout(VERIFY_TIMEOUT_MILIS).times(2)).unregister();
 
         deployer.close();
     }
@@ -174,8 +176,8 @@ public class BgpDeployerImplTest extends DefaultRibPoliciesMockTest {
 
         createRib(createGlobalIpv4());
         createNeighbor(createNeighbors());
-        verify(this.blueprintContainer).getComponentInstance(eq("bgpPeer"));
-        verify(this.bundleContext).registerService(eq(InstanceType.PEER.getServices()),
+        verify(this.blueprintContainer, timeout(VERIFY_TIMEOUT_MILIS)).getComponentInstance(eq("bgpPeer"));
+        verify(this.bundleContext, timeout(VERIFY_TIMEOUT_MILIS)).registerService(eq(InstanceType.PEER.getServices()),
                 any(BgpPeer.class), any(Dictionary.class));
 
         //change with same peer already existing
@@ -188,7 +190,7 @@ public class BgpDeployerImplTest extends DefaultRibPoliciesMockTest {
         createNeighbor(createNeighborsNoRR());
 
         verify(this.blueprintContainer).getComponentInstance(eq("bgpPeer"));
-        verify(this.bundleContext, times(2))
+        verify(this.bundleContext, timeout(VERIFY_TIMEOUT_MILIS).times(2))
                 .registerService(eq(InstanceType.PEER.getServices()), any(BgpPeer.class), any(Dictionary.class));
         verify(this.registration).unregister();
 
@@ -196,7 +198,7 @@ public class BgpDeployerImplTest extends DefaultRibPoliciesMockTest {
         //Delete existing Peer
         verify(this.bundleContext, times(2))
                 .registerService(eq(InstanceType.PEER.getServices()), any(BgpPeer.class), any(Dictionary.class));
-        verify(this.registration, times(2)).unregister();
+        verify(this.registration, timeout(VERIFY_TIMEOUT_MILIS).times(2)).unregister();
 
         deployer.close();
     }
index 83ed84c6b012dcbe0910f784dc704f68d4805d71..03fcf264a899759cc59f7ce174365bb80e56b5e3 100644 (file)
@@ -47,6 +47,10 @@ public abstract class AbstractConfigLoader extends AbstractConcurrentDataBrokerT
     protected BindingCodecTreeFactory bindingCodecTreeFactory;
     protected DOMSchemaService schemaService;
 
+    public AbstractConfigLoader() {
+        super(true);
+    }
+
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);