diff options
Diffstat (limited to 'models-interactions/model-actors/actor.so/src/test')
2 files changed, 58 insertions, 33 deletions
diff --git a/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java b/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java index b2ae5727b..129c19381 100644 --- a/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java +++ b/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java @@ -23,6 +23,7 @@ package org.onap.policy.controlloop.actor.so; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; @@ -33,7 +34,6 @@ import static org.mockito.Mockito.when; import java.util.Collections; import java.util.List; -import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.TimeUnit; @@ -53,13 +53,14 @@ import org.onap.policy.controlloop.policy.PolicyResult; import org.onap.policy.so.SoModelInfo; import org.onap.policy.so.SoRequest; import org.onap.policy.so.SoRequestInfo; -import org.onap.policy.so.SoRequestParameters; import org.onap.policy.so.SoRequestReferences; import org.onap.policy.so.SoRequestStatus; import org.onap.policy.so.SoResponse; public class SoOperationTest extends BasicSoOperation { + private static final String VF_COUNT_KEY = SoConstants.VF_COUNT_PREFIX + + "[my-model-customization-id][my-model-invariant-id][my-model-version-id]"; private SoOperation oper; /** @@ -80,6 +81,11 @@ public class SoOperationTest extends BasicSoOperation { assertEquals(DEFAULT_OPERATION, oper.getName()); assertSame(config, oper.getConfig()); assertEquals(1000 * WAIT_SEC_GETS, oper.getWaitMsGet()); + + // check when Target is null + params = params.toBuilder().target(null).build(); + assertThatIllegalArgumentException().isThrownBy(() -> new SoOperation(params, config) {}) + .withMessageContaining("Target information"); } @Test @@ -91,11 +97,6 @@ public class SoOperationTest extends BasicSoOperation { // verify it's still valid assertThatCode(() -> new VfModuleCreate(params, config)).doesNotThrowAnyException(); - - // check when Target, itself, is null - params = params.toBuilder().target(null).build(); - assertThatIllegalArgumentException().isThrownBy(() -> new VfModuleCreate(params, config)) - .withMessageContaining("Target information"); } private void verifyNotNull(String expectedText, Supplier<String> getter, Consumer<String> setter) { @@ -115,23 +116,51 @@ public class SoOperationTest extends BasicSoOperation { } @Test - public void testStoreVfCountRunGuard() throws Exception { - // insert CQ data so it's there for the guard + public void testObtainVfCount_testGetVfCount_testSetVfCount() throws Exception { + // insert CQ data so it's there for the check context.setProperty(AaiCqResponse.CONTEXT_KEY, makeCqResponse()); - // cause guard to fail - OperationOutcome outcome2 = params.makeOutcome(); - outcome2.setResult(PolicyResult.FAILURE); - when(guardOperation.start()).thenReturn(CompletableFuture.completedFuture(outcome2)); + // shouldn't actually need to do anything + assertNull(oper.obtainVfCount()); + + // verify that the count was stored + Integer vfcount = context.getProperty(VF_COUNT_KEY); + assertEquals(VF_COUNT, vfcount); + assertEquals(VF_COUNT.intValue(), oper.getVfCount()); + + // change the count and then verify that it isn't overwritten by another call + oper.setVfCount(VF_COUNT + 1); + + assertNull(oper.obtainVfCount()); + vfcount = context.getProperty(VF_COUNT_KEY); + assertEquals(VF_COUNT + 1, vfcount.intValue()); + assertEquals(VF_COUNT + 1, oper.getVfCount()); + } + + /** + * Tests obtainVfCount() when it actually has to query. + */ + @Test + public void testObtainVfCountQuery() throws Exception { + CompletableFuture<OperationOutcome> future2 = oper.obtainVfCount(); + assertNotNull(future2); + assertTrue(executor.runAll(100)); + + // not done yet + assertFalse(future2.isDone()); + + provideCqResponse(makeCqResponse()); - CompletableFuture<OperationOutcome> future2 = oper.storeVfCountRunGuard(); assertTrue(executor.runAll(100)); assertTrue(future2.isDone()); - assertEquals(PolicyResult.FAILURE, future2.get().getResult()); + assertEquals(PolicyResult.SUCCESS, future2.get().getResult()); // verify that the count was stored - Integer vfcount = context.getProperty(SoConstants.CONTEXT_KEY_VF_COUNT); + Integer vfcount = context.getProperty(VF_COUNT_KEY); assertEquals(VF_COUNT, vfcount); + + // repeat - shouldn't need to do anything now + assertNull(oper.obtainVfCount()); } @Test @@ -273,9 +302,8 @@ public class SoOperationTest extends BasicSoOperation { // try with null target params = params.toBuilder().target(null).build(); - oper = new SoOperation(params, config) {}; - - assertThatIllegalArgumentException().isThrownBy(() -> oper.prepareSoModelInfo()).withMessage("missing Target"); + assertThatIllegalArgumentException().isThrownBy(() -> new SoOperation(params, config) {}) + .withMessageContaining("missing Target"); } private void verifyMissingModelInfo(Supplier<String> getter, Consumer<String> setter) { @@ -297,8 +325,7 @@ public class SoOperationTest extends BasicSoOperation { @Test public void testBuildRequestParameters() throws CoderException { // valid data - SoRequestParameters reqParams = oper.buildRequestParameters(); - verifyRequest("reqparams.json", reqParams); + verifyRequest("reqparams.json", oper.buildRequestParameters().get()); // invalid json params.getPayload().put(SoOperation.REQ_PARAM_NM, "{invalid json"); @@ -307,19 +334,18 @@ public class SoOperationTest extends BasicSoOperation { // missing data params.getPayload().remove(SoOperation.REQ_PARAM_NM); - assertNull(oper.buildRequestParameters()); + assertTrue(oper.buildRequestParameters().isEmpty()); // null payload params = params.toBuilder().payload(null).build(); oper = new SoOperation(params, config) {}; - assertNull(oper.buildRequestParameters()); + assertTrue(oper.buildRequestParameters().isEmpty()); } @Test public void testBuildConfigurationParameters() { // valid data - List<Map<String, String>> result = oper.buildConfigurationParameters(); - assertEquals(List.of(Collections.emptyMap()), result); + assertEquals(List.of(Collections.emptyMap()), oper.buildConfigurationParameters().get()); // invalid json params.getPayload().put(SoOperation.CONFIG_PARAM_NM, "{invalid json"); @@ -328,12 +354,12 @@ public class SoOperationTest extends BasicSoOperation { // missing data params.getPayload().remove(SoOperation.CONFIG_PARAM_NM); - assertNull(oper.buildConfigurationParameters()); + assertTrue(oper.buildConfigurationParameters().isEmpty()); // null payload params = params.toBuilder().payload(null).build(); oper = new SoOperation(params, config) {}; - assertNull(oper.buildConfigurationParameters()); + assertTrue(oper.buildConfigurationParameters().isEmpty()); } @Test diff --git a/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleCreateTest.java b/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleCreateTest.java index 63cf744c1..98c645b16 100644 --- a/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleCreateTest.java +++ b/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleCreateTest.java @@ -83,8 +83,8 @@ public class VfModuleCreateTest extends BasicSoOperation { @Test public void testStartPreprocessorAsync() throws Exception { - // put the count in the context so that it will skip the custom query - params.getContext().setProperty(SoConstants.CONTEXT_KEY_VF_COUNT, 20); + // insert CQ data so it's there for the check + context.setProperty(AaiCqResponse.CONTEXT_KEY, makeCqResponse()); AtomicBoolean guardStarted = new AtomicBoolean(); @@ -119,7 +119,7 @@ public class VfModuleCreateTest extends BasicSoOperation { @Test public void testMakeGuardPayload() { final int origCount = 30; - params.getContext().setProperty(SoConstants.CONTEXT_KEY_VF_COUNT, origCount); + oper.setVfCount(origCount); CompletableFuture<OperationOutcome> future2 = oper.startPreprocessorAsync(); assertTrue(executor.runAll(100)); @@ -148,7 +148,7 @@ public class VfModuleCreateTest extends BasicSoOperation { @Test public void testStartOperationAsync_testSuccessfulCompletion() throws Exception { final int origCount = 30; - params.getContext().setProperty(SoConstants.CONTEXT_KEY_VF_COUNT, origCount); + oper.setVfCount(origCount); when(client.post(any(), any(), any(), any())).thenAnswer(provideResponse(rawResponse)); @@ -167,8 +167,7 @@ public class VfModuleCreateTest extends BasicSoOperation { outcome = future2.get(500, TimeUnit.SECONDS); assertEquals(PolicyResult.SUCCESS, outcome.getResult()); - Integer newCount = (Integer) params.getContext().getProperty(SoConstants.CONTEXT_KEY_VF_COUNT); - assertEquals(origCount + 1, newCount.intValue()); + assertEquals(origCount + 1, oper.getVfCount()); } /** |