import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
-
import java.util.Set;
-
import javax.transaction.Transactional;
-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.onap.clamp.clds.Application;
import org.onap.clamp.clds.util.JsonUtils;
+import org.onap.clamp.loop.service.Service;
import org.onap.clamp.loop.template.LoopTemplate;
+import org.onap.clamp.loop.template.PolicyModel;
+import org.onap.clamp.loop.template.PolicyModelsService;
import org.onap.clamp.policy.microservice.MicroServicePolicy;
import org.onap.clamp.policy.microservice.MicroServicePolicyService;
import org.onap.clamp.policy.operational.OperationalPolicy;
+import org.onap.clamp.policy.operational.OperationalPolicyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.annotation.Commit;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@Autowired
MicroServicePolicyService microServicePolicyService;
+ @Autowired
+ OperationalPolicyService operationalPolicyService;
+
+ @Autowired
+ PolicyModelsService policyModelsService;
+
@Autowired
LoopController loopController;
LoopTemplate template = new LoopTemplate();
template.setName("testTemplate");
testLoop.setLoopTemplate(template);
+ Service modelService = new Service("{\"name\":\"serviceName\",\"UUID\":\"uuid\"}","{}");
+ testLoop.setModelService(modelService);
loopService.saveOrUpdateLoop(testLoop);
}
@Transactional
public void testUpdateMicroservicePolicy() {
saveTestLoopToDb();
- MicroServicePolicy policy = new MicroServicePolicy("policyName", "",
- "tosca_definitions_version: tosca_simple_yaml_1_0_0", false,
- JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null);
+ PolicyModel policyModel = new PolicyModel("testPolicyModel",
+ "tosca_definitions_version: tosca_simple_yaml_1_0_0","1.0.0");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel);
+ MicroServicePolicy policy = new MicroServicePolicy("policyName", policyModel, false,
+ JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class), null, null, null);
loopController.updateMicroservicePolicy(EXAMPLE_LOOP_NAME, policy);
assertThat(microServicePolicyService.isExisting("policyName")).isTrue();
}
String svgRepresentation = loopController.getSvgRepresentation(EXAMPLE_LOOP_NAME);
assertThat(svgRepresentation).isEqualTo("representation");
}
+
+ @Test
+ @Transactional
+ public void testAddAndRemoveOperationalPolicies() {
+ saveTestLoopToDb();
+ PolicyModel policyModel = new PolicyModel("testPolicyModel",
+ "tosca_definitions_version: tosca_simple_yaml_1_0_0","1.0.0");
+ policyModelsService.saveOrUpdatePolicyModel(policyModel);
+
+ loopController.addOperationalPolicy(EXAMPLE_LOOP_NAME, "testPolicyModel", "1.0.0");
+
+ Loop newLoop = loopController.getLoop(EXAMPLE_LOOP_NAME);
+ Set<OperationalPolicy> opPolicyList = newLoop.getOperationalPolicies();
+ assertThat(opPolicyList.size()).isEqualTo(1);
+ for(OperationalPolicy policy : opPolicyList) {
+ assertThat(policy.getName().contains("OPERATIONAL_serviceName")).isTrue();
+ assertThat(policy.getPolicyModel().getPolicyModelType()).isEqualTo("testPolicyModel");
+ assertThat(policy.getPolicyModel().getVersion()).isEqualTo("1.0.0");
+ }
+
+ loopController.removeOperationalPolicy(EXAMPLE_LOOP_NAME, "testPolicyModel", "1.0.0");
+ Loop newLoop2 = loopController.getLoop(EXAMPLE_LOOP_NAME);
+ assertThat(newLoop2.getOperationalPolicies().size()).isEqualTo(0);
+ }
}
\ No newline at end of file