diff options
author | Pamela Dragosh <pdragosh@research.att.com> | 2020-08-26 13:50:57 -0400 |
---|---|---|
committer | Pamela Dragosh <pdragosh@research.att.com> | 2020-09-02 15:07:12 -0400 |
commit | 971a95aab8f15a140f407d3a3b47fd783fd51ad1 (patch) | |
tree | 9edd22e390428a002b7dfaa98dd3c4e81b657b4f /controlloop/common/controller-usecases/src/test/java | |
parent | a588736799d94747f70ed648d3d821210993c5c4 (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.java | 129 |
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". */ |