summaryrefslogtreecommitdiffstats
path: root/models-interactions/model-actors/actor.so/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'models-interactions/model-actors/actor.so/src/test')
-rw-r--r--models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoOperationTest.java146
-rw-r--r--models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleCreateTest.java55
-rw-r--r--models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleDeleteTest.java45
3 files changed, 206 insertions, 40 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 7314c59fa..e364246e4 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
@@ -36,12 +36,14 @@ import java.time.Month;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
+import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Supplier;
import org.junit.Before;
import org.junit.Test;
import org.onap.aai.domain.yang.CloudRegion;
import org.onap.aai.domain.yang.GenericVnf;
+import org.onap.aai.domain.yang.ModelVer;
import org.onap.aai.domain.yang.ServiceInstance;
import org.onap.aai.domain.yang.Tenant;
import org.onap.policy.aai.AaiCqResponse;
@@ -49,6 +51,7 @@ import org.onap.policy.common.utils.coder.Coder;
import org.onap.policy.common.utils.coder.CoderException;
import org.onap.policy.controlloop.ControlLoopOperation;
import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
import org.onap.policy.controlloop.policy.PolicyResult;
import org.onap.policy.so.SoModelInfo;
import org.onap.policy.so.SoRequest;
@@ -63,6 +66,8 @@ public class SoOperationTest extends BasicSoOperation {
private static final List<String> PROP_NAMES = Collections.emptyList();
+ private static final String VERSION_ID = "1.2.3";
+
private SoOperation oper;
/**
@@ -140,6 +145,24 @@ public class SoOperationTest extends BasicSoOperation {
}
/**
+ * Tests the VF Count methods when properties are being used.
+ * @throws Exception if an error occurs
+ */
+ @Test
+ public void testGetVfCount_testSetVfCount_ViaProperties() throws Exception {
+ oper.setProperty(OperationProperties.DATA_VF_COUNT, VF_COUNT);
+
+ // verify that the count was stored
+ assertEquals(VF_COUNT.intValue(), oper.getVfCount());
+
+ oper.setVfCount(VF_COUNT + 1);
+
+ int count = oper.getProperty(OperationProperties.DATA_VF_COUNT);
+ assertEquals(VF_COUNT + 1, count);
+ assertEquals(VF_COUNT + 1, oper.getVfCount());
+ }
+
+ /**
* Tests obtainVfCount() when it actually has to query.
*/
@Test
@@ -286,55 +309,114 @@ public class SoOperationTest extends BasicSoOperation {
}
@Test
- public void testGetVnfItem() {
- // missing data
+ public void testGetItem() {
AaiCqResponse cq = mock(AaiCqResponse.class);
- assertThatIllegalArgumentException().isThrownBy(() -> oper.getVnfItem(cq, oper.prepareSoModelInfo()))
- .withMessage("missing generic VNF");
+ params.getContext().setProperty(AaiCqResponse.CONTEXT_KEY, cq);
- // valid data
- GenericVnf vnf = new GenericVnf();
- when(cq.getGenericVnfByVfModuleModelInvariantId(MODEL_INVAR_ID)).thenReturn(vnf);
- assertSame(vnf, oper.getVnfItem(cq, oper.prepareSoModelInfo()));
+ // in neither property nor custom query
+ assertThatIllegalArgumentException().isThrownBy(() -> oper.getItem("propA", cq2 -> null, "not found"))
+ .withMessage("not found");
+
+ // only in custom query
+ assertEquals("valueB", oper.getItem("propB", cq2 -> "valueB", "failureB"));
+
+ // both - should choose the property
+ oper.setProperty("propC", "valueC");
+ assertEquals("valueC", oper.getItem("propC", cq2 -> "valueC2", "failureC"));
+
+ // both - should choose the property, even if it's null
+ oper.setProperty("propD", null);
+ assertNull(oper.getItem("propD", cq2 -> "valueD2", "failureD"));
}
@Test
- public void testGetServiceInstance() {
- // missing data
- AaiCqResponse cq = mock(AaiCqResponse.class);
- assertThatIllegalArgumentException().isThrownBy(() -> oper.getServiceInstance(cq))
- .withMessage("missing VNF Service Item");
+ public void testGetVnfItem() {
+ // @formatter:off
+ verifyItems(OperationProperties.AAI_VNF, GenericVnf::new,
+ (cq, instance) -> when(cq.getGenericVnfByVfModuleModelInvariantId(MODEL_INVAR_ID)).thenReturn(instance),
+ () -> oper.getVnfItem(oper.prepareSoModelInfo()),
+ "missing generic VNF");
+ // @formatter:on
+ }
- // valid data
- ServiceInstance instance = new ServiceInstance();
- when(cq.getServiceInstance()).thenReturn(instance);
- assertSame(instance, oper.getServiceInstance(cq));
+ @Test
+ public void testGetServiceInstance() {
+ // @formatter:off
+ verifyItems(OperationProperties.AAI_SERVICE, ServiceInstance::new,
+ (cq, instance) -> when(cq.getServiceInstance()).thenReturn(instance),
+ () -> oper.getServiceInstance(),
+ "missing VNF Service Item");
+ // @formatter:on
}
@Test
public void testGetDefaultTenant() {
- // missing data
- AaiCqResponse cq = mock(AaiCqResponse.class);
- assertThatIllegalArgumentException().isThrownBy(() -> oper.getDefaultTenant(cq))
- .withMessage("missing Tenant Item");
+ // @formatter:off
+ verifyItems(OperationProperties.AAI_DEFAULT_TENANT, Tenant::new,
+ (cq, tenant) -> when(cq.getDefaultTenant()).thenReturn(tenant),
+ () -> oper.getDefaultTenant(),
+ "missing Default Tenant Item");
+ // @formatter:on
+ }
- // valid data
- Tenant tenant = new Tenant();
- when(cq.getDefaultTenant()).thenReturn(tenant);
- assertSame(tenant, oper.getDefaultTenant(cq));
+ @Test
+ public void testGetVnfModel() {
+ GenericVnf vnf = new GenericVnf();
+ vnf.setModelVersionId(VERSION_ID);
+
+ // @formatter:off
+ verifyItems(OperationProperties.AAI_VNF_MODEL, ModelVer::new,
+ (cq, model) -> when(cq.getModelVerByVersionId(VERSION_ID)).thenReturn(model),
+ () -> oper.getVnfModel(vnf),
+ "missing generic VNF Model");
+ // @formatter:on
+ }
+
+ @Test
+ public void testGetServiceModel() {
+ ServiceInstance service = new ServiceInstance();
+ service.setModelVersionId(VERSION_ID);
+
+ // @formatter:off
+ verifyItems(OperationProperties.AAI_SERVICE_MODEL, ModelVer::new,
+ (cq, model) -> when(cq.getModelVerByVersionId(VERSION_ID)).thenReturn(model),
+ () -> oper.getServiceModel(service),
+ "missing Service Model");
+ // @formatter:on
}
@Test
public void testGetDefaultCloudRegion() {
- // missing data
+ // @formatter:off
+ verifyItems(OperationProperties.AAI_DEFAULT_CLOUD_REGION, CloudRegion::new,
+ (cq, region) -> when(cq.getDefaultCloudRegion()).thenReturn(region),
+ () -> oper.getDefaultCloudRegion(),
+ "missing Default Cloud Region");
+ // @formatter:on
+ }
+
+ private <T> void verifyItems(String propName, Supplier<T> maker, BiConsumer<AaiCqResponse, T> setter,
+ Supplier<T> getter, String errmsg) {
+
AaiCqResponse cq = mock(AaiCqResponse.class);
- assertThatIllegalArgumentException().isThrownBy(() -> oper.getDefaultCloudRegion(cq))
- .withMessage("missing Cloud Region");
+ params.getContext().setProperty(AaiCqResponse.CONTEXT_KEY, cq);
- // valid data
- CloudRegion region = new CloudRegion();
- when(cq.getDefaultCloudRegion()).thenReturn(region);
- assertSame(region, oper.getDefaultCloudRegion(cq));
+ // in neither property nor custom query
+ assertThatIllegalArgumentException().isThrownBy(getter::get).withMessage(errmsg);
+
+ // only in custom query
+ final T item1 = maker.get();
+ setter.accept(cq, item1);
+ assertSame(item1, getter.get());
+
+ // both - should choose the property
+ final T item2 = maker.get();
+ oper.setProperty(propName, item2);
+ assertSame(item2, getter.get());
+
+ // both - should choose the property, even if it's null
+ oper.setProperty(propName, null);
+ assertNull(getter.get());
}
@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 012f8deff..9d80343e6 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
@@ -108,6 +108,51 @@ public class VfModuleCreateTest extends BasicSoOperation {
assertTrue(outcome.getResponse() instanceof SoResponse);
}
+ /**
+ * Tests "success" case with simulator, using properties instead of custom query data.
+ */
+ @Test
+ public void testSuccessViaProperties() throws Exception {
+ HttpPollingParams opParams = HttpPollingParams.builder().clientName(MY_CLIENT)
+ .path("serviceInstantiation/v7/serviceInstances").pollPath("orchestrationRequests/v5/")
+ .maxPolls(2).build();
+ config = new HttpPollingConfig(blockingExecutor, opParams, HttpClientFactoryInstance.getClientFactory());
+
+ params = params.toBuilder().retry(0).timeoutSec(5).executor(blockingExecutor).preprocessed(true).build();
+ params.getContext().removeProperty(AaiCqResponse.CONTEXT_KEY);
+
+ oper = new VfModuleCreate(params, config);
+
+ // set the properties
+ ServiceInstance instance = new ServiceInstance();
+ instance.setServiceInstanceId(SVC_INSTANCE_ID);
+ oper.setProperty(OperationProperties.AAI_SERVICE, instance);
+
+ ModelVer modelVers = new ModelVer();
+ modelVers.setModelName(MODEL_NAME2);
+ modelVers.setModelVersion(MODEL_VERS2);
+
+ oper.setProperty(OperationProperties.AAI_SERVICE_MODEL, modelVers);
+ oper.setProperty(OperationProperties.AAI_VNF_MODEL, modelVers);
+
+ GenericVnf vnf = new GenericVnf();
+ vnf.setVnfId(VNF_ID);
+ oper.setProperty(OperationProperties.AAI_VNF, vnf);
+
+ oper.setProperty(OperationProperties.AAI_DEFAULT_CLOUD_REGION, new CloudRegion());
+ oper.setProperty(OperationProperties.AAI_DEFAULT_TENANT, new Tenant());
+
+ oper.setProperty(OperationProperties.DATA_VF_COUNT, VF_COUNT);
+
+ // run the operation
+ outcome = oper.start().get();
+ assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+ assertTrue(outcome.getResponse() instanceof SoResponse);
+
+ int count = oper.getProperty(OperationProperties.DATA_VF_COUNT);
+ assertEquals(VF_COUNT + 1, count);
+ }
+
@Test
public void testConstructor() {
assertEquals(DEFAULT_ACTOR, oper.getActorName());
@@ -124,10 +169,12 @@ public class VfModuleCreateTest extends BasicSoOperation {
// @formatter:off
assertThat(oper.getPropertyNames()).isEqualTo(
List.of(
- OperationProperties.AAI_MODEL_SERVICE,
- OperationProperties.AAI_MODEL_VNF,
- OperationProperties.AAI_MODEL_CLOUD_REGION,
- OperationProperties.AAI_MODEL_TENANT,
+ OperationProperties.AAI_SERVICE,
+ OperationProperties.AAI_SERVICE_MODEL,
+ OperationProperties.AAI_VNF,
+ OperationProperties.AAI_VNF_MODEL,
+ OperationProperties.AAI_DEFAULT_CLOUD_REGION,
+ OperationProperties.AAI_DEFAULT_TENANT,
OperationProperties.DATA_VF_COUNT));
// @formatter:on
}
diff --git a/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleDeleteTest.java b/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleDeleteTest.java
index cc2aafa74..9335f0141 100644
--- a/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleDeleteTest.java
+++ b/models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/VfModuleDeleteTest.java
@@ -137,6 +137,43 @@ public class VfModuleDeleteTest extends BasicSoOperation {
assertTrue(outcome.getResponse() instanceof SoResponse);
}
+ /**
+ * Tests "success" case with simulator, using properties instead of custom query data.
+ */
+ @Test
+ public void testSuccessViaProperties() throws Exception {
+ HttpPollingParams opParams = HttpPollingParams.builder().clientName(MY_CLIENT).path("serviceInstances/v7")
+ .pollPath("orchestrationRequests/v5/").maxPolls(2).build();
+ config = new HttpPollingConfig(blockingExecutor, opParams, HttpClientFactoryInstance.getClientFactory());
+
+ params = params.toBuilder().retry(0).timeoutSec(5).executor(blockingExecutor).preprocessed(true).build();
+ params.getContext().removeProperty(AaiCqResponse.CONTEXT_KEY);
+
+ oper = new VfModuleDelete(params, config);
+
+ // set the properties
+ ServiceInstance instance = new ServiceInstance();
+ instance.setServiceInstanceId(SVC_INSTANCE_ID);
+ oper.setProperty(OperationProperties.AAI_SERVICE, instance);
+
+ GenericVnf vnf = new GenericVnf();
+ vnf.setVnfId(VNF_ID);
+ oper.setProperty(OperationProperties.AAI_VNF, vnf);
+
+ oper.setProperty(OperationProperties.AAI_DEFAULT_CLOUD_REGION, new CloudRegion());
+ oper.setProperty(OperationProperties.AAI_DEFAULT_TENANT, new Tenant());
+
+ oper.setProperty(OperationProperties.DATA_VF_COUNT, VF_COUNT);
+
+ // run the operation
+ outcome = oper.start().get();
+ assertEquals(PolicyResult.SUCCESS, outcome.getResult());
+ assertTrue(outcome.getResponse() instanceof SoResponse);
+
+ int count = oper.getProperty(OperationProperties.DATA_VF_COUNT);
+ assertEquals(VF_COUNT - 1, count);
+ }
+
@Test
public void testConstructor() {
assertEquals(DEFAULT_ACTOR, oper.getActorName());
@@ -153,10 +190,10 @@ public class VfModuleDeleteTest extends BasicSoOperation {
// @formatter:off
assertThat(oper.getPropertyNames()).isEqualTo(
List.of(
- OperationProperties.AAI_MODEL_SERVICE,
- OperationProperties.AAI_MODEL_VNF,
- OperationProperties.AAI_MODEL_CLOUD_REGION,
- OperationProperties.AAI_MODEL_TENANT,
+ OperationProperties.AAI_SERVICE,
+ OperationProperties.AAI_VNF,
+ OperationProperties.AAI_DEFAULT_CLOUD_REGION,
+ OperationProperties.AAI_DEFAULT_TENANT,
OperationProperties.DATA_VF_COUNT));
// @formatter:on
}