summaryrefslogtreecommitdiffstats
path: root/models-interactions/model-actors/actor.so/src/test/java
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2020-02-25 12:29:08 -0500
committerJim Hahn <jrh3@att.com>2020-02-25 13:11:22 -0500
commit433f782f16f43a8431d8d91c2a055fd2a0603f42 (patch)
treeb6633d643b027053fa4a0954b01f9c30436d3f9b /models-interactions/model-actors/actor.so/src/test/java
parentfd9186d130a6777f93c10e7aff0289a05efed86c (diff)
Support separate VF Counts for different Targets
Changed the key by which the VF Count is stored within the context so that each Target can have its own VF Count. Also moved VF Count code from VfModuleCreate to SoOperation, to hide the determination of the VF Count "key". Fixed sonar issue about return "null" instead of returning an empty list - modified the code to use Optional. Issue-ID: POLICY-2371 Signed-off-by: Jim Hahn <jrh3@att.com> Change-Id: Ia23eabea0edf6857372e269a2db1a21e741824c6
Diffstat (limited to 'models-interactions/model-actors/actor.so/src/test/java')
-rw-r--r--models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java80
-rw-r--r--models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleCreateTest.java11
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());
}
/**