package org.onap.clamp.clds.model.prop;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import java.io.IOException;
-import org.junit.Assert;
+import org.junit.Before;
import org.junit.Test;
+import org.onap.clamp.clds.model.CldsModel;
import org.onap.clamp.clds.util.ResourceFileUtil;
-
/**
* Test org.onap.clamp.ClampDesigner.model.prop package using ModelProperties.
*/
public class ModelPropertiesTest {
+ @Before
+ public void registerNewClasses() {
+ ModelProperties.registerModelElement(Holmes.class, Holmes.getType());
+ }
+
@Test
- public void testJsonParse() throws IOException {
- String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnProp.json");
- String modelProp = ResourceFileUtil.getResourceAsString("example/modelProp.json");
- String modName = "example-model-name";
- String controlName = "example-control-name";
-
- ModelProperties prop = new ModelProperties(modName, controlName, null, true, modelBpmnProp, modelProp);
- Assert.assertEquals(modName, prop.getModelName());
- Assert.assertEquals(controlName, prop.getControlName());
- Assert.assertEquals(null, prop.getActionCd());
- Global global = prop.getGlobal();
- Assert.assertEquals("0f983e18-4603-4bb4-a98c-e29691fb16a1", global.getService());
- Assert.assertEquals("[SNDGCA64]", global.getLocation().toString());
- Assert.assertEquals("[6c7aaec2-59eb-41d9-8681-b7f976ab668d]", global.getResourceVf().toString());
- StringMatch sm = prop.getType(StringMatch.class);
- Assert.assertEquals("StringMatch_", sm.getId());
+ public void testTcaModelDecoding() throws IOException {
+
+ String modelBpmnProp = ResourceFileUtil
+ .getResourceAsString("example/model-properties/tca/modelBpmnProperties.json");
+ String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmn.json");
+
+ ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn,
+ modelBpmnProp);
+
Policy policy = prop.getType(Policy.class);
- Assert.assertEquals("Policy_", policy.getId());
- Assert.assertEquals(null, policy.getTopicPublishes());
- Assert.assertEquals(null, policy.getTopicSubscribes());
+ assertTrue(policy.isFound());
+ assertEquals(1, policy.getPolicyChains().size());
+ assertEquals("0", policy.getPolicyChains().get(0).getPolicyId());
+ assertEquals(1, policy.getPolicyChains().get(0).getPolicyItems().size());
+ assertEquals("resourceid", policy.getPolicyChains().get(0).getPolicyItems().get(0).getTargetResourceId());
+ assertEquals(180, policy.getPolicyChains().get(0).getPolicyItems().get(0).getRetryTimeLimit());
+ assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries());
+ assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy());
+ assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions());
Tca tca = prop.getType(Tca.class);
- Assert.assertEquals("Narra", tca.getTcaItems().get(0).getTcaName());
- Assert.assertEquals(Integer.valueOf(4), tca.getTcaItems().get(0).getTcaThreshholds().get(0).getThreshhold());
+ assertNotNull(tca);
+ assertTrue(tca.isFound());
+ assertEquals("vFirewallBroadcastPackets", tca.getTcaItem().getEventName());
+ assertEquals("policy1", tca.getTcaItem().getPolicyId());
+ assertEquals("f734f031-10aa-t8fb-330f-04dde2886325", tca.getTcaItem().getTcaUuId());
+ assertEquals(2, tca.getTcaItem().getTcaThresholds().size());
+
+ assertEquals("ABATED", tca.getTcaItem().getTcaThresholds().get(0).getClosedLoopEventStatus());
+ assertEquals("VM", tca.getTcaItem().getTcaThresholds().get(0).getControlLoopSchema());
+ assertEquals(
+ "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+ tca.getTcaItem().getTcaThresholds().get(0).getFieldPath());
+ assertEquals("LESS_OR_EQUAL", tca.getTcaItem().getTcaThresholds().get(0).getOperator());
+ assertEquals(Integer.valueOf(123), tca.getTcaItem().getTcaThresholds().get(0).getThreshold());
+
+ assertEquals("ONSET", tca.getTcaItem().getTcaThresholds().get(1).getClosedLoopEventStatus());
+ assertEquals("VNF", tca.getTcaItem().getTcaThresholds().get(1).getControlLoopSchema());
+ assertEquals("$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
+ tca.getTcaItem().getTcaThresholds().get(1).getFieldPath());
+ assertEquals("GREATER_OR_EQUAL", tca.getTcaItem().getTcaThresholds().get(1).getOperator());
+ assertEquals(Integer.valueOf(123), tca.getTcaItem().getTcaThresholds().get(1).getThreshold());
}
@Test
- public void testPolicy() throws IOException {
-
- String modelBpmnProp = ResourceFileUtil.getResourceAsString("example/modelBpmnPropForPolicy.json");
- System.out.println(modelBpmnProp);
-
- String modelProp = ResourceFileUtil.getResourceAsString("example/modelPropForPolicy.json");
- System.out.println(modelProp);
- ModelProperties prop = new ModelProperties("example-model-name", "example-control-name",
- null, true, modelBpmnProp, modelProp);
- System.out.println("attempting prop.getGlobal()...");
- Global global = prop.getGlobal();
- System.out.println("attempting prop.getStringMatch()...");
- StringMatch stringMatch = prop.getType(StringMatch.class);
- if (stringMatch.isFound()) {
- System.out.println("stringMatch json object is present...");
- assertEquals("1", stringMatch.getResourceGroups().get(0).getPolicyId());
- }
- System.out.println("attempting prop.getPolicy()...");
+ public void testHolmesModelDecoding() throws IOException {
+
+ String modelBpmnProp = ResourceFileUtil
+ .getResourceAsString("example/model-properties/holmes/modelBpmnProperties.json");
+ String modelBpmn = ResourceFileUtil.getResourceAsString("example/model-properties/holmes/modelBpmn.json");
+
+ ModelProperties prop = new ModelProperties("example-model-name", "example-control-name", null, true, modelBpmn,
+ modelBpmnProp);
+
Policy policy = prop.getType(Policy.class);
- if (policy.isFound()) {
- System.out.println("policy json object is present...");
- assertEquals("1", policy.getPolicyChains().get(0).getPolicyId());
- }
+ assertTrue(policy.isFound());
+ assertEquals(1, policy.getPolicyChains().size());
+ assertEquals("0", policy.getPolicyChains().get(0).getPolicyId());
+ assertEquals(1, policy.getPolicyChains().get(0).getPolicyItems().size());
+ assertEquals("resourceid", policy.getPolicyChains().get(0).getPolicyItems().get(0).getTargetResourceId());
+ assertEquals(180, policy.getPolicyChains().get(0).getPolicyItems().get(0).getRetryTimeLimit());
+ assertEquals(3, policy.getPolicyChains().get(0).getPolicyItems().get(0).getMaxRetries());
+ assertEquals("", policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicy());
+ assertEquals(null, policy.getPolicyChains().get(0).getPolicyItems().get(0).getParentPolicyConditions());
+
+ Holmes holmes = prop.getType(Holmes.class);
+ assertNotNull(holmes);
+ assertTrue(holmes.isFound());
+ assertEquals("configPolicy1", holmes.getConfigPolicyName());
+ assertEquals("blabla", holmes.getCorrelationLogic());
+ }
+
+ @Test
+ public void testGetVf() throws IOException {
+ CldsModel cldsModel = new CldsModel();
+ cldsModel.setPropText(
+ ResourceFileUtil.getResourceAsString("example/model-properties/tca/modelBpmnProperties.json"));
+ assertEquals("f5213e3a-9191-4362-93b5-b67f8d770e44", ModelProperties.getVf(cldsModel));
}
}
\ No newline at end of file