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
* 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);
+ 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");
+ }
- 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);
+ /**
+ * Test the create policies payload PdpGroup test.
+ */
+ @Test
+ public void createPoliciesPayloadPdpGroupTest() throws IOException {
+ Loop loopTest = new Loop("ControlLoopTest", "<xml></xml>");
+ PolicyModel policyModel1 = new PolicyModel("onap.policies.monitoring.test", null, "1.0.0");
- // 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);
+ MicroServicePolicy microServicePolicy = new MicroServicePolicy("configPolicyTest", policyModel1, true,
+ new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), null, "pdpGroup1", "pdpSubgroup1");
+ loopTest.addMicroServicePolicy(microServicePolicy);
- assertThat(state.getStateName()).isEqualTo("IN_ERROR");
+ MicroServicePolicy microServicePolicy2 = new MicroServicePolicy("configPolicyTest2", policyModel1, true,
+ new Gson().fromJson("{\"configtype\":\"json\"}", JsonObject.class), null, "pdpGroup2", "pdpSubgroup1");
+ loopTest.addMicroServicePolicy(microServicePolicy2);
- // new policy state SENT
- Mockito.when(exchange2.getProperty("policyFound")).thenReturn(true);
- Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(false);
- ExternalComponentState state2 = policy.computeState(exchange);
+ 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");
- assertThat(state2.getStateName()).isEqualTo("IN_ERROR");
+ loopTest.addOperationalPolicy(opPolicy);
- // new policy state IN_ERROR
- Mockito.when(exchange2.getProperty("policyFound")).thenReturn(false);
- Mockito.when(exchange2.getProperty("policyDeployed")).thenReturn(true);
- ExternalComponentState state3 = policy.computeState(exchange);
+ LoopTemplate loopTemplate = new LoopTemplate("test", "yaml", "svg", 1, null);
+ loopTemplate.setDcaeBlueprintId("UUID-blueprint");
+ loopTest.setLoopTemplate(loopTemplate);
- assertThat(state3.getStateName()).isEqualTo("IN_ERROR");
+ String payload = PolicyComponent.createPoliciesPayloadPdpGroup(loopTest);
+ String expectedRes = ResourceFileUtil.getResourceAsString("tosca/pdp-group-policy-payload.json");
- // 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(payload).isEqualTo(expectedRes);
- assertThat(state4.getStateName()).isEqualTo("IN_ERROR");
+ assertThat(PolicyComponent.listPolicyNamesPdpGroup(loopTest)).containsExactlyInAnyOrder("opPolicy","configPolicyTest","configPolicyTest2");
}
}