CDS: Add stress test RPC to the cars model
[controller.git] / opendaylight / netconf / config-persister-impl / src / test / java / org / opendaylight / controller / netconf / persist / impl / osgi / ConfigPersisterTest.java
index 142d8f5226d0f7141336dcfc181428f59bd0bf42..b998b9eff0bee8d9e2224104a9bd0f09491f3701 100644 (file)
@@ -13,15 +13,14 @@ import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
-
 import com.google.common.collect.Sets;
 import java.io.IOException;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.controller.config.api.ConflictingVersionException;
+import org.opendaylight.controller.netconf.api.Capability;
 import org.opendaylight.controller.netconf.api.NetconfDocumentedException;
-import org.opendaylight.controller.netconf.mapping.api.Capability;
 import org.opendaylight.controller.netconf.mapping.api.HandlingPriority;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperation;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationChainedExecution;
@@ -40,11 +39,15 @@ public class ConfigPersisterTest {
     private ConfigPersisterActivator configPersisterActivator;
     private TestingExceptionHandler handler;
 
-
-    private void setUpContextAndStartPersister(String requiredCapability) throws Exception {
+    private void setUpContext(String requiredCapability) throws Exception {
         DummyAdapterWithInitialSnapshot.expectedCapability = requiredCapability;
         ctx = new MockedBundleContext(1000, 1000);
         configPersisterActivator = new ConfigPersisterActivator();
+    }
+
+    private void setUpContextAndStartPersister(String requiredCapability, final NetconfOperationService conflictingService) throws Exception {
+        setUpContext(requiredCapability);
+        doReturn(conflictingService).when(ctx.serviceFactory).createService(anyString());
         configPersisterActivator.start(ctx.getBundleContext());
     }
 
@@ -62,18 +65,15 @@ public class ConfigPersisterTest {
 
     @Test
     public void testPersisterNotAllCapabilitiesProvided() throws Exception {
-        setUpContextAndStartPersister("required-cap");
+        setUpContextAndStartPersister("required-cap", getConflictingService());
         Thread.sleep(2000);
-        handler.assertException(IllegalStateException.class, "Max wait for capabilities reached.Not enough capabilities " +
-                "for <data><config-snapshot/></data>. Expected but not found: [required-cap]");
+        handler.assertException(IllegalStateException.class, "Required yang models that are missing: [required-cap]");
 
     }
 
     @Test
     public void testPersisterSuccessfulPush() throws Exception {
-        setUpContextAndStartPersister("cap1");
-        NetconfOperationService service = getWorkingService(getOKDocument());
-        doReturn(service).when(ctx.serviceFactory).createService(anyString());
+        setUpContextAndStartPersister("cap1", getWorkingService(getOKDocument()));
         Thread.sleep(2000);
         assertCannotRegisterAsJMXListener_pushWasSuccessful();
     }
@@ -86,7 +86,7 @@ public class ConfigPersisterTest {
     public NetconfOperationService getWorkingService(Document document) throws SAXException, IOException, NetconfDocumentedException {
         NetconfOperationService service = mock(NetconfOperationService.class);
         Capability capability = mock(Capability.class);
-        doReturn(Sets.newHashSet(capability)).when(service).getCapabilities();
+//        doReturn(Sets.newHashSet(capability)).when(service).getCapabilities();
         doReturn("cap1").when(capability).getCapabilityUri();
 
 
@@ -109,9 +109,8 @@ public class ConfigPersisterTest {
 
     @Test
     public void testPersisterConflictingVersionException() throws Exception {
-        setUpContextAndStartPersister("cap1");
+        setUpContextAndStartPersister("cap1", getConflictingService());
 
-        doReturn(getConflictingService()).when(ctx.serviceFactory).createService(anyString());
         Thread.sleep(2000);
         handler.assertException(IllegalStateException.class, "Max wait for conflicting version stabilization timeout");
     }
@@ -131,12 +130,18 @@ public class ConfigPersisterTest {
 
     @Test
     public void testSuccessConflictingVersionException() throws Exception {
-        setUpContextAndStartPersister("cap1");
-        doReturn(getConflictingService()).when(ctx.serviceFactory).createService(anyString());
-        Thread.sleep(500);
-        // working service:
-        LOG.info("Switching to working service **");
-        doReturn(getWorkingService(getOKDocument())).when(ctx.serviceFactory).createService(anyString());
+        LOG.info("testSuccessConflictingVersionException starting");
+
+        setUpContext("cap1");
+
+        NetconfOperationService conflictingService = getConflictingService();
+        NetconfOperationService workingService = getWorkingService(getOKDocument());
+
+        doReturn(conflictingService).doReturn(conflictingService).doReturn(conflictingService).
+            doReturn(workingService).when(ctx.serviceFactory).createService(anyString());
+
+        configPersisterActivator.start(ctx.getBundleContext());
+
         Thread.sleep(1000);
         assertCannotRegisterAsJMXListener_pushWasSuccessful();
     }