diff options
Diffstat (limited to 'controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java')
-rw-r--r-- | controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java | 68 |
1 files changed, 62 insertions, 6 deletions
diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java index e6c66d120..e6d42d452 100644 --- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java +++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/ophistory/OperationHistoryDataManagerImplTest.java @@ -53,6 +53,9 @@ import org.onap.policy.controlloop.ophistory.OperationHistoryDataManagerParams.O public class OperationHistoryDataManagerImplTest { private static final IllegalStateException EXPECTED_EXCEPTION = new IllegalStateException("expected exception"); + private static final String MY_LOOP_NAME = "my-loop-name"; + private static final String MY_ACTOR = "my-actor"; + private static final String MY_OPERATION = "my-operation"; private static final String MY_TARGET = "my-target"; private static final String MY_ENTITY = "my-entity"; private static final String REQ_ID = "my-request-id"; @@ -109,10 +112,14 @@ public class OperationHistoryDataManagerImplTest { MockitoAnnotations.initMocks(this); event = new VirtualControlLoopEvent(); + event.setClosedLoopControlName(MY_LOOP_NAME); event.setRequestId(UUID.randomUUID()); operation = new ControlLoopOperation(); + operation.setActor(MY_ACTOR); + operation.setOperation(MY_OPERATION); operation.setTarget(MY_TARGET); + operation.setSubRequestId(UUID.randomUUID().toString()); threadFunction = null; finished = new CountDownLatch(1); @@ -170,7 +177,7 @@ public class OperationHistoryDataManagerImplTest { runThread(); - assertEquals(1, mgr.getRecordsAdded()); + assertEquals(1, mgr.getRecordsCommitted()); } /** @@ -195,7 +202,7 @@ public class OperationHistoryDataManagerImplTest { // store mgr.store(REQ_ID, event, MY_ENTITY, operation); - assertEquals(0, mgr.getRecordsAdded()); + assertEquals(0, mgr.getRecordsCommitted()); } /** @@ -210,7 +217,7 @@ public class OperationHistoryDataManagerImplTest { runThread(); - assertEquals(MAX_QUEUE_LENGTH, mgr.getRecordsAdded()); + assertEquals(MAX_QUEUE_LENGTH, mgr.getRecordsCommitted()); } @Test @@ -234,7 +241,7 @@ public class OperationHistoryDataManagerImplTest { verify(emfSpy).close(); - assertEquals(3, mgr.getRecordsAdded()); + assertEquals(3, mgr.getRecordsCommitted()); } private void waitForThread() { @@ -286,28 +293,77 @@ public class OperationHistoryDataManagerImplTest { @Test public void testStoreRecord() throws InterruptedException { + /* + * Note: we change sub-request ID each time to guarantee that the records are + * unique. + */ + // no start time mgr.store(REQ_ID, event, MY_ENTITY, operation); - // no start time + // no end time operation = new ControlLoopOperation(operation); + operation.setSubRequestId(UUID.randomUUID().toString()); operation.setStart(Instant.now()); mgr.store(REQ_ID, event, MY_ENTITY, operation); // both start and end times operation = new ControlLoopOperation(operation); + operation.setSubRequestId(UUID.randomUUID().toString()); operation.setEnd(Instant.now()); mgr.store(REQ_ID, event, MY_ENTITY, operation); // only end time operation = new ControlLoopOperation(operation); + operation.setSubRequestId(UUID.randomUUID().toString()); + operation.setStart(null); + mgr.store(REQ_ID, event, MY_ENTITY, operation); + + runThread(); + + // all of them should have been stored + assertEquals(4, mgr.getRecordsCommitted()); + + // each was unique + assertEquals(4, mgr.getRecordsInserted()); + assertEquals(0, mgr.getRecordsUpdated()); + } + + /** + * Tests storeRecord() when records are updated. + */ + @Test + public void testStoreRecordUpdate() throws InterruptedException { + /* + * Note: we do NOT change sub-request ID, so that records all refer to the same DB + * record. + */ + + // no start time + mgr.store(REQ_ID, event, MY_ENTITY, operation); + + // no end time + operation.setStart(Instant.now()); + mgr.store(REQ_ID, event, MY_ENTITY, operation); + + // both start and end times + operation.setEnd(Instant.now()); + mgr.store(REQ_ID, event, MY_ENTITY, operation); + + // only end time operation.setStart(null); mgr.store(REQ_ID, event, MY_ENTITY, operation); runThread(); // all of them should have been stored - assertEquals(4, mgr.getRecordsAdded()); + assertEquals(4, mgr.getRecordsCommitted()); + + // only one new record + assertEquals(1, mgr.getRecordsInserted()); + + // remainder were updates + assertEquals(3, mgr.getRecordsUpdated()); } private void runThread() throws InterruptedException { |