Fix the new tosca converter
[clamp.git] / src / test / java / org / onap / clamp / loop / LoopControllerTestItCase.java
index f1e5c09..4d51bb2 100644 (file)
@@ -30,19 +30,21 @@ import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
-
+import java.io.IOException;
 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.context.junit4.SpringRunner;
@@ -63,15 +65,23 @@ public class LoopControllerTestItCase {
     @Autowired
     MicroServicePolicyService microServicePolicyService;
 
+    @Autowired
+    OperationalPolicyService operationalPolicyService;
+
+    @Autowired
+    PolicyModelsService policyModelsService;
+
     @Autowired
     LoopController loopController;
 
     private void saveTestLoopToDb() {
         Loop testLoop = createTestLoop(EXAMPLE_LOOP_NAME, "blueprint", "representation");
         testLoop.setGlobalPropertiesJson(JsonUtils.GSON.fromJson(EXAMPLE_JSON, JsonObject.class));
-        LoopTemplate template =  new LoopTemplate();
+        LoopTemplate template = new LoopTemplate();
         template.setName("testTemplate");
         testLoop.setLoopTemplate(template);
+        Service modelService = new Service("{\"name\":\"serviceName\",\"UUID\":\"uuid\"}", "{}");
+        testLoop.setModelService(modelService);
         loopService.saveOrUpdateLoop(testLoop);
     }
 
@@ -129,9 +139,11 @@ public class LoopControllerTestItCase {
     @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();
     }
@@ -143,4 +155,28 @@ public class LoopControllerTestItCase {
         String svgRepresentation = loopController.getSvgRepresentation(EXAMPLE_LOOP_NAME);
         assertThat(svgRepresentation).isEqualTo("representation");
     }
+
+    @Test
+    @Transactional
+    public void testAddAndRemoveOperationalPolicies() throws IOException {
+        saveTestLoopToDb();
+        PolicyModel policyModel = new PolicyModel("testPolicyModel",
+                null, "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