X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Fclamp%2Floop%2FPolicyComponentTest.java;h=1c9b10189a1ecd6ba43f5051a96d91cd0fc1a50a;hb=723de7f63f0951d0cfe7a23956cf9d00128809b1;hp=73bd7f9b0afa25cdaaa689fd523e3da25cfebf2d;hpb=b50b70428dbdb59378ec04c1eef0927d29882245;p=clamp.git diff --git a/src/test/java/org/onap/clamp/loop/PolicyComponentTest.java b/src/test/java/org/onap/clamp/loop/PolicyComponentTest.java index 73bd7f9b..1c9b1018 100644 --- a/src/test/java/org/onap/clamp/loop/PolicyComponentTest.java +++ b/src/test/java/org/onap/clamp/loop/PolicyComponentTest.java @@ -25,20 +25,25 @@ package org.onap.clamp.loop; import static org.assertj.core.api.Assertions.assertThat; +import com.google.gson.Gson; +import com.google.gson.JsonObject; import java.io.IOException; - import org.apache.camel.Exchange; import org.apache.camel.Message; import org.junit.Test; import org.mockito.Mockito; +import org.onap.clamp.clds.util.ResourceFileUtil; import org.onap.clamp.loop.components.external.ExternalComponentState; import org.onap.clamp.loop.components.external.PolicyComponent; - +import org.onap.clamp.loop.template.LoopTemplate; +import org.onap.clamp.loop.template.PolicyModel; +import org.onap.clamp.policy.microservice.MicroServicePolicy; +import org.onap.clamp.policy.operational.OperationalPolicy; public class PolicyComponentTest { - /** - * Test the computeState method. + /** + * Test the computeState method. * oldState newState expectedFinalState * NOT_SENT SENT_AND_DEPLOYED NOT_SENT * NOT_SENT SENT NOT_SENT @@ -46,194 +51,234 @@ public class PolicyComponentTest { * NOT_SENT IN_ERROR IN_ERROR */ @Test - public void computeStateTestOriginalStateNotSent() { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - - // policy found + deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - - PolicyComponent policy = new PolicyComponent (); - ExternalComponentState state = policy.computeState(exchange); - - assertThat(state.getStateName()).isEqualTo("NOT_SENT"); - - // policy found + not deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state2 = policy.computeState(exchange); - - assertThat(state2.getStateName()).isEqualTo("NOT_SENT"); - - // policy not found + not deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); - - assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); - - // policy not found + deployed - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); - - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); - + public void computeStateTestOriginalStateUnknown() { + Exchange exchange = Mockito.mock(Exchange.class); + Message message = Mockito.mock(Message.class); + Exchange exchange2 = Mockito.mock(Exchange.class); + Mockito.when(exchange.getIn()).thenReturn(message); + Mockito.when(message.getExchange()).thenReturn(exchange2); + // policy found + deployed + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + PolicyComponent policy = new PolicyComponent(); + + ExternalComponentState state = policy.computeState(exchange); + assertThat(state.getStateName()).isEqualTo("SENT_AND_DEPLOYED"); + // policy found + not deployed + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state2 = policy.computeState(exchange); + assertThat(state2.getStateName()).isEqualTo("SENT"); + // policy not found + not deployed + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state4 = policy.computeState(exchange); + assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); + // policy not found + deployed + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + ExternalComponentState state3 = policy.computeState(exchange); + assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); } /** - * Test the computeState method. - * oldState newState expectedFinalState - * SENT SENT SENT - * SENT SENT_AND_DEPLOYED SENT - * SENT IN_ERROR IN_ERROR - * SENT NOT_SENT NOT_SENT - */ + * Test the computeState method. + * oldState newState expectedFinalState + * NOT_SENT SENT_AND_DEPLOYED NOT_SENT + * NOT_SENT SENT NOT_SENT + * NOT_SENT NOT_SENT NOT_SENT + * NOT_SENT IN_ERROR IN_ERROR + */ @Test - public void computeStateTestOriginalStateSent() throws IOException { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - - PolicyComponent policy = new PolicyComponent (); - ExternalComponentState SENT = new ExternalComponentState("SENT", - "The policies defined have been created but NOT deployed on the policy engine", 50); - policy.setState(SENT); - - // new policy state SENT - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state = policy.computeState(exchange); - - assertThat(state.getStateName()).isEqualTo("SENT"); - - // new policy state SENT_AND_DEPLOYED - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state2 = policy.computeState(exchange); - - assertThat(state2.getStateName()).isEqualTo("SENT"); - - // new policy state IN_ERROR - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); - - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); + public void computeStateTestOriginalStateNotSent() { + Exchange exchange = Mockito.mock(Exchange.class); + Message message = Mockito.mock(Message.class); + Exchange exchange2 = Mockito.mock(Exchange.class); + Mockito.when(exchange.getIn()).thenReturn(message); + Mockito.when(message.getExchange()).thenReturn(exchange2); + // policy found + deployed + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + PolicyComponent policy = new PolicyComponent(); + ExternalComponentState notSent = new ExternalComponentState("NOT_SENT", + "The policies defined have NOT yet been created on the policy engine", 90); + policy.setState(notSent); + ExternalComponentState state = policy.computeState(exchange); + assertThat(state.getStateName()).isEqualTo("NOT_SENT"); + // policy found + not deployed + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state2 = policy.computeState(exchange); + assertThat(state2.getStateName()).isEqualTo("NOT_SENT"); + // policy not found + not deployed + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state4 = policy.computeState(exchange); + assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); + // policy not found + deployed + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + ExternalComponentState state3 = policy.computeState(exchange); + assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); + } - // new policy state NOT_SENT - policy.setState(SENT); - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); - assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); + /** + * Test the computeState method. + * oldState newState expectedFinalState + * SENT SENT SENT + * SENT SENT_AND_DEPLOYED SENT + * SENT IN_ERROR IN_ERROR + * SENT NOT_SENT NOT_SENT + */ + @Test + public void computeStateTestOriginalStateSent() throws IOException { + Exchange exchange = Mockito.mock(Exchange.class); + Message message = Mockito.mock(Message.class); + Exchange exchange2 = Mockito.mock(Exchange.class); + Mockito.when(exchange.getIn()).thenReturn(message); + Mockito.when(message.getExchange()).thenReturn(exchange2); + PolicyComponent policy = new PolicyComponent(); + ExternalComponentState sent = new ExternalComponentState("SENT", + "The policies defined have been created but NOT deployed on the policy engine", 50); + policy.setState(sent); + // new policy state SENT + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state = policy.computeState(exchange); + assertThat(state.getStateName()).isEqualTo("SENT"); + // new policy state SENT_AND_DEPLOYED + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + ExternalComponentState state2 = policy.computeState(exchange); + assertThat(state2.getStateName()).isEqualTo("SENT"); + // new policy state IN_ERROR + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + ExternalComponentState state3 = policy.computeState(exchange); + assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); + // new policy state NOT_SENT + policy.setState(sent); + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state4 = policy.computeState(exchange); + assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); } /** - * Test the computeState method. - * oldState newState expectedFinalState - * SENT_AND_DEPLOYED SENT_AND_DEPLOYED SENT_AND_DEPLOYED - * SENT_AND_DEPLOYED SENT SENT - * SENT_AND_DEPLOYED IN_ERROR IN_ERROR - * SENT_AND_DEPLOYED NOT_SENT NOT_SENT - */ + * Test the computeState method. + * oldState newState expectedFinalState + * SENT_AND_DEPLOYED SENT_AND_DEPLOYED SENT_AND_DEPLOYED + * SENT_AND_DEPLOYED SENT SENT + * SENT_AND_DEPLOYED IN_ERROR IN_ERROR + * SENT_AND_DEPLOYED NOT_SENT NOT_SENT + */ @Test public void computeStateTestOriginalStateSentAndDeployed() throws IOException { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - - PolicyComponent policy = new PolicyComponent (); - ExternalComponentState SENT_AND_DEPLOYED = new ExternalComponentState("SENT_AND_DEPLOYED", - "The policies defined have been created and deployed on the policy engine", 10); - policy.setState(SENT_AND_DEPLOYED); - - // new policy state SENT_AND_DEPLOYED - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state = policy.computeState(exchange); - - assertThat(state.getStateName()).isEqualTo("SENT_AND_DEPLOYED"); - - // new policy state SENT - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state2 = policy.computeState(exchange); - - assertThat(state2.getStateName()).isEqualTo("SENT"); - - // new policy state IN_ERROR - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); - - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); - - // new policy state NOT_SENT - policy.setState(SENT_AND_DEPLOYED); - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); - - assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); + Exchange exchange = Mockito.mock(Exchange.class); + Message message = Mockito.mock(Message.class); + Exchange exchange2 = Mockito.mock(Exchange.class); + Mockito.when(exchange.getIn()).thenReturn(message); + Mockito.when(message.getExchange()).thenReturn(exchange2); + PolicyComponent policy = new PolicyComponent(); + ExternalComponentState sendDeployed = new ExternalComponentState("SENT_AND_DEPLOYED", + "The policies defined have been created and deployed on the policy engine", 10); + policy.setState(sendDeployed); + // new policy state SENT_AND_DEPLOYED + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + ExternalComponentState state = policy.computeState(exchange); + assertThat(state.getStateName()).isEqualTo("SENT_AND_DEPLOYED"); + // new policy state SENT + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state2 = policy.computeState(exchange); + assertThat(state2.getStateName()).isEqualTo("SENT"); + // new policy state IN_ERROR + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + ExternalComponentState state3 = policy.computeState(exchange); + assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); + // new policy state NOT_SENT + policy.setState(sendDeployed); + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state4 = policy.computeState(exchange); + assertThat(state4.getStateName()).isEqualTo("NOT_SENT"); } + /** - * Test the computeState method. - * oldState newState expectedFinalState - * IN_ERROR SENT_AND_DEPLOYED IN_ERROR - * IN_ERROR SENT IN_ERROR - * IN_ERROR IN_ERROR IN_ERROR - * IN_ERROR NOT_SENT IN_ERROR - */ + * Test the computeState method. + * oldState newState expectedFinalState + * IN_ERROR SENT_AND_DEPLOYED IN_ERROR + * IN_ERROR SENT IN_ERROR + * IN_ERROR IN_ERROR IN_ERROR + * IN_ERROR NOT_SENT IN_ERROR + */ @Test public void computeStateTestOriginalStateInError() throws IOException { - Exchange exchange = Mockito.mock(Exchange.class); - Message message = Mockito.mock(Message.class); - Exchange exchange2 = Mockito.mock(Exchange.class); - Mockito.when(exchange.getIn()).thenReturn(message); - Mockito.when(message.getExchange()).thenReturn(exchange2); - - PolicyComponent policy = new PolicyComponent (); - ExternalComponentState IN_ERROR = new ExternalComponentState("IN_ERROR", - "There was an error during the sending to policy, the policy engine may be corrupted or inconsistent", 100); - policy.setState(IN_ERROR); - - // new policy state SENT_AND_DEPLOYED - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state = policy.computeState(exchange); + Exchange exchange = Mockito.mock(Exchange.class); + Message message = Mockito.mock(Message.class); + Exchange exchange2 = Mockito.mock(Exchange.class); + Mockito.when(exchange.getIn()).thenReturn(message); + Mockito.when(message.getExchange()).thenReturn(exchange2); + PolicyComponent policy = new PolicyComponent(); + ExternalComponentState inError = new ExternalComponentState("IN_ERROR", + "There was an error during the sending to policy, the policy engine may be corrupted or inconsistent", + 100); + policy.setState(inError); + // new policy state SENT_AND_DEPLOYED + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + ExternalComponentState state = policy.computeState(exchange); + assertThat(state.getStateName()).isEqualTo("IN_ERROR"); + // new policy state SENT + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state2 = policy.computeState(exchange); + assertThat(state2.getStateName()).isEqualTo("IN_ERROR"); + // new policy state IN_ERROR + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); + ExternalComponentState state3 = policy.computeState(exchange); + assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); + // new policy state NOT_SENT + Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); + Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); + ExternalComponentState state4 = policy.computeState(exchange); + + assertThat(state4.getStateName()).isEqualTo("IN_ERROR"); + } - assertThat(state.getStateName()).isEqualTo("IN_ERROR"); + /** + * Test the create policies payload PdpGroup test. + */ + @Test + public void createPoliciesPayloadPdpGroupTest() throws IOException { + Loop loopTest = new Loop("ControlLoopTest", ""); + PolicyModel policyModel1 = new PolicyModel("onap.policies.monitoring.test", null, "1.0.0"); - // new policy state SENT - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state2 = policy.computeState(exchange); + MicroServicePolicy microServicePolicy = new MicroServicePolicy("configPolicyTest", policyModel1, true, + new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), null, "pdpGroup1", "pdpSubgroup1"); + loopTest.addMicroServicePolicy(microServicePolicy); - assertThat(state2.getStateName()).isEqualTo("IN_ERROR"); + PolicyModel policyModel2 = new PolicyModel("onap.policies.controlloop.Operational", null, "1.0.0"); + OperationalPolicy opPolicy = + new OperationalPolicy("opPolicy", new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), + new Gson().fromJson("{\"jsonschema\":\"schema\"}", JsonObject.class), policyModel2, null, + "pdpGroup2", + "pdpSubgroup2"); - // new policy state IN_ERROR - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true); - ExternalComponentState state3 = policy.computeState(exchange); + loopTest.addOperationalPolicy(opPolicy); - assertThat(state3.getStateName()).isEqualTo("IN_ERROR"); + LoopTemplate loopTemplate = new LoopTemplate("test", "yaml", "svg", 1, null); + loopTemplate.setDcaeBlueprintId("UUID-blueprint"); + loopTest.setLoopTemplate(loopTemplate); - // new policy state NOT_SENT - Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false); - Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false); - ExternalComponentState state4 = policy.computeState(exchange); + String payload = PolicyComponent.createPoliciesPayloadPdpGroup(loopTest); + String expectedRes = ResourceFileUtil.getResourceAsString("tosca/pdp-group-policy-payload.json"); - assertThat(state4.getStateName()).isEqualTo("IN_ERROR"); + assertThat(payload).isEqualTo(expectedRes); } }