summaryrefslogtreecommitdiffstats
path: root/controlloop/common/controller-usecases/src/test/java
diff options
context:
space:
mode:
authorPamela Dragosh <pdragosh@research.att.com>2020-08-26 13:50:57 -0400
committerPamela Dragosh <pdragosh@research.att.com>2020-09-02 15:07:12 -0400
commit971a95aab8f15a140f407d3a3b47fd783fd51ad1 (patch)
tree9edd22e390428a002b7dfaa98dd3c4e81b657b4f /controlloop/common/controller-usecases/src/test/java
parenta588736799d94747f70ed648d3d821210993c5c4 (diff)
Add guard filter properties to controller
Adding new properties to guard Decision call. Issue-ID: POLICY-2590 Change-Id: Ie4a37990e062c76ac4d6dd1b904ad354736fd27a Signed-off-by: Pamela Dragosh <pdragosh@research.att.com> Signed-off-by: Jim Hahn <jrh3@att.com> Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
Diffstat (limited to 'controlloop/common/controller-usecases/src/test/java')
-rw-r--r--controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/GuardStep2Test.java129
1 files changed, 123 insertions, 6 deletions
diff --git a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/GuardStep2Test.java b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/GuardStep2Test.java
index 6514b4f95..131e5d3c8 100644
--- a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/GuardStep2Test.java
+++ b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/step/GuardStep2Test.java
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -34,21 +35,40 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.onap.aai.domain.yang.CloudRegion;
+import org.onap.aai.domain.yang.GenericVnf;
+import org.onap.aai.domain.yang.RelatedToProperty;
+import org.onap.aai.domain.yang.Relationship;
+import org.onap.aai.domain.yang.RelationshipData;
+import org.onap.aai.domain.yang.RelationshipList;
+import org.onap.aai.domain.yang.Vserver;
+import org.onap.policy.aai.AaiCqResponse;
import org.onap.policy.controlloop.VirtualControlLoopEvent;
import org.onap.policy.controlloop.actor.guard.DecisionOperation;
import org.onap.policy.controlloop.actor.guard.GuardActor;
import org.onap.policy.controlloop.actor.so.VfModuleCreate;
import org.onap.policy.controlloop.actorserviceprovider.Operation;
import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
+import org.onap.policy.controlloop.actorserviceprovider.TargetType;
import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
import org.onap.policy.controlloop.eventmanager.StepContext;
+import org.onap.policy.drools.apps.controller.usecases.UsecasesConstants;
public class GuardStep2Test {
+ private static final String SOME_OTHER_VALUE = "some-other-value";
+ private static final String SOME_OTHER_KEY = "some-other-key";
private static final String CL_NAME = "my-closed-loop";
private static final String MASTER_ACTOR = "master-actor";
private static final String MASTER_OPERATION = "master-operation";
private static final String MY_TARGET = "my-target";
+ private static final String MY_NAME = "my-name";
+ private static final String MY_TYPE = "my-type";
+ private static final String MY_CODE = "my-code";
+ private static final String MY_SERVER = "my-server";
+ private static final String MY_SERVER2 = "my-server-2";
+ private static final String MY_SERVERNAME = "my-server-name";
+ private static final String MY_REGION = "my-region";
private static final UUID REQ_ID = UUID.randomUUID();
private static final int VF_COUNT = 10;
@@ -60,6 +80,16 @@ public class GuardStep2Test {
private VirtualControlLoopEvent event;
@Mock
private Operation policyOper;
+ @Mock
+ private AaiCqResponse customQuery;
+ @Mock
+ private GenericVnf genericVnf;
+ @Mock
+ private CloudRegion cloudRegion;
+ @Mock Vserver theVserver;
+
+ TargetType target;
+ Map<String, String> aai = new HashMap<>();
private ControlLoopOperationParams params;
private Step2 master;
@@ -72,17 +102,82 @@ public class GuardStep2Test {
public void setUp() {
MockitoAnnotations.initMocks(this);
+ aai.put("vserver.vserver-name", MY_SERVERNAME);
when(event.getRequestId()).thenReturn(REQ_ID);
+ when(event.getAai()).thenReturn(aai);
when(context.getEvent()).thenReturn(event);
+ when(genericVnf.getVnfId()).thenReturn(MY_TARGET);
+ when(genericVnf.getVnfName()).thenReturn(MY_NAME);
+ when(genericVnf.getVnfType()).thenReturn(MY_TYPE);
+ when(genericVnf.getNfNamingCode()).thenReturn(MY_CODE);
+
+ RelationshipList relList = new RelationshipList();
+ when(genericVnf.getRelationshipList()).thenReturn(relList);
+
+ relList.getRelationship().add(new Relationship());
+
+ Relationship relationship = new Relationship();
+ relList.getRelationship().add(relationship);
+ relationship.setRelatedTo("vserver");
+
+ relationship.getRelatedToProperty().add(new RelatedToProperty());
+
+ // property key mismatch
+ RelatedToProperty relProp = new RelatedToProperty();
+ relationship.getRelatedToProperty().add(relProp);
+ relProp.setPropertyKey(SOME_OTHER_KEY);
+ relProp.setPropertyValue(MY_NAME);
+
+ // property value mismatch
+ relProp = new RelatedToProperty();
+ relationship.getRelatedToProperty().add(relProp);
+ relProp.setPropertyKey("vserver.vserver-name");
+ relProp.setPropertyValue(SOME_OTHER_VALUE);
+
+ // matching property
+ relProp = new RelatedToProperty();
+ relationship.getRelatedToProperty().add(relProp);
+ relProp.setPropertyKey("vserver.vserver-name");
+ relProp.setPropertyValue(MY_SERVERNAME);
+
+ // data key mismatch
+ RelationshipData relData = new RelationshipData();
+ relationship.getRelationshipData().add(relData);
+ relData.setRelationshipKey(SOME_OTHER_KEY);
+ relData.setRelationshipValue(SOME_OTHER_VALUE);
+
+ // matching data
+ relData = new RelationshipData();
+ relationship.getRelationshipData().add(relData);
+ relData.setRelationshipKey(GuardStep2.PAYLOAD_KEY_VSERVER_ID);
+ relData.setRelationshipValue(MY_SERVER2);
+
+ when(customQuery.getGenericVnfByVnfId(MY_TARGET)).thenReturn(genericVnf);
+
+ when(theVserver.getVserverId()).thenReturn(MY_SERVER);
+ when(customQuery.getVserver()).thenReturn(theVserver);
+
+ when(cloudRegion.getCloudRegionId()).thenReturn(MY_REGION);
+ when(customQuery.getDefaultCloudRegion()).thenReturn(cloudRegion);
+
when(stepContext.getProperty(OperationProperties.AAI_TARGET_ENTITY)).thenReturn(MY_TARGET);
+ when(stepContext.getProperty(AaiCqResponse.CONTEXT_KEY)).thenReturn(customQuery);
+ //when(stepContext.getProperty(VSERVER_VSERVER_NAME)).thenReturn()
+
when(stepContext.contains(OperationProperties.DATA_VF_COUNT)).thenReturn(true);
when(stepContext.getProperty(OperationProperties.DATA_VF_COUNT)).thenReturn(VF_COUNT);
-
- params = ControlLoopOperationParams.builder().actor(MASTER_ACTOR).operation(MASTER_OPERATION)
- .targetEntity(MY_TARGET).context(context).build();
+ // @formatter:off
+ params = ControlLoopOperationParams.builder()
+ .actor(MASTER_ACTOR)
+ .operation(MASTER_OPERATION)
+ .targetEntity(MY_TARGET)
+ .context(context)
+ .targetType(target)
+ .build();
+ // @formatter:on
master = new Step2(stepContext, params, event) {
@Override
@@ -129,11 +224,16 @@ public class GuardStep2Test {
public void testGetPropertyNames() {
// unmatching property names
when(policyOper.getPropertyNames()).thenReturn(List.of("propA", "propB"));
- assertThat(step.getPropertyNames()).isEmpty();
+ assertThat(step.getPropertyNames())
+ .containsAll(List.of(UsecasesConstants.AAI_DEFAULT_GENERIC_VNF,
+ OperationProperties.AAI_DEFAULT_CLOUD_REGION));
// matching property names
- when(policyOper.getPropertyNames()).thenReturn(List.of("propA", OperationProperties.DATA_VF_COUNT, "propB"));
- assertThat(step.getPropertyNames()).isEqualTo(List.of(OperationProperties.DATA_VF_COUNT));
+ when(policyOper.getPropertyNames())
+ .thenReturn(List.of("propA", OperationProperties.DATA_VF_COUNT, "propB"));
+ assertThat(step.getPropertyNames()).containsAll(List.of(OperationProperties.DATA_VF_COUNT,
+ UsecasesConstants.AAI_DEFAULT_GENERIC_VNF,
+ OperationProperties.AAI_DEFAULT_CLOUD_REGION));
}
@Test
@@ -142,6 +242,23 @@ public class GuardStep2Test {
assertThat(step.getParams().getPayload()).containsEntry(GuardStep2.PAYLOAD_KEY_TARGET_ENTITY, MY_TARGET);
}
+ @Test
+ public void testLoadDefaultGenericVnf() {
+ step.loadDefaultGenericVnf(OperationProperties.AAI_VNF);
+ assertThat(step.getParams().getPayload())
+ .containsEntry(GuardStep2.PAYLOAD_KEY_VNF_ID, MY_TARGET)
+ .containsEntry(GuardStep2.PAYLOAD_KEY_VNF_NAME, MY_NAME)
+ .containsEntry(GuardStep2.PAYLOAD_KEY_VNF_TYPE, MY_TYPE)
+ .containsEntry(GuardStep2.PAYLOAD_KEY_NF_NAMING_CODE, MY_CODE)
+ .containsEntry(GuardStep2.PAYLOAD_KEY_VSERVER_ID, MY_SERVER2);
+ }
+
+ @Test
+ public void testLoadCloudRegion() {
+ step.loadCloudRegion(OperationProperties.AAI_DEFAULT_CLOUD_REGION);
+ assertThat(step.getParams().getPayload()).containsEntry(GuardStep2.PAYLOAD_KEY_CLOUD_REGION_ID, MY_REGION);
+ }
+
/**
* Tests loadVfCount() when the policy operation is NOT "VF Module Create".
*/