Create get Pdp Groups flow
[clamp.git] / src / test / java / org / onap / clamp / loop / PolicyModelServiceItCase.java
index abeecd1..f8aadba 100644 (file)
@@ -25,6 +25,7 @@ package org.onap.clamp.loop;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import java.util.LinkedList;
 import java.util.List;
 import java.util.SortedSet;
 import java.util.TreeSet;
@@ -33,14 +34,20 @@ 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.template.PolicyModel;
 import org.onap.clamp.loop.template.PolicyModelId;
 import org.onap.clamp.loop.template.PolicyModelsRepository;
 import org.onap.clamp.loop.template.PolicyModelsService;
+import org.onap.clamp.policy.pdpgroup.PdpGroup;
+import org.onap.clamp.policy.pdpgroup.PdpSubgroup;
+import org.onap.clamp.policy.pdpgroup.PolicyModelKey;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import com.google.gson.JsonObject;
+
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = Application.class)
 public class PolicyModelServiceItCase {
@@ -167,4 +174,71 @@ public class PolicyModelServiceItCase {
         assertThat(listToCheck.get(1)).isEqualByComparingTo(policyModel1);
         assertThat(listToCheck.get(2)).isEqualByComparingTo(policyModel3);
     }
+
+    @Test
+    @Transactional
+    public void shouldAddPdpGroupInfo() {
+        PolicyModel policyModel1 = getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", POLICY_MODEL_TYPE_1_VERSION_1, "TEST",
+                "VARIANT", "user");
+        policyModelsService.saveOrUpdatePolicyModel(policyModel1);
+        PolicyModel policyModel2 = getPolicyModel(POLICY_MODEL_TYPE_2, "yaml", POLICY_MODEL_TYPE_2_VERSION_2, "TEST",
+                "VARIANT", "user");
+        policyModelsService.saveOrUpdatePolicyModel(policyModel2);
+        PolicyModel policyModel3 = getPolicyModel(POLICY_MODEL_TYPE_3, "yaml", POLICY_MODEL_TYPE_3_VERSION_1, "TEST",
+                "VARIANT", "user");
+        policyModelsService.saveOrUpdatePolicyModel(policyModel3);
+
+
+        PolicyModelKey type1 = new PolicyModelKey("org.onap.testos", "1.0.0");
+        PolicyModelKey type2 = new PolicyModelKey("org.onap.testos2", "2.0.0");
+
+        PdpSubgroup pdpSubgroup1 = new PdpSubgroup();
+        pdpSubgroup1.setPdpType("subGroup1");
+        List<PolicyModelKey> pdpTypeList = new LinkedList<PolicyModelKey>();
+        pdpTypeList.add(type1);
+        pdpTypeList.add(type2);
+        pdpSubgroup1.setSupportedPolicyTypes(pdpTypeList);
+
+        PolicyModelKey type3 = new PolicyModelKey("org.onap.testos3", "2.0.0");
+        PdpSubgroup pdpSubgroup2 = new PdpSubgroup();
+        pdpSubgroup2.setPdpType("subGroup2");
+        List<PolicyModelKey> pdpTypeList2 = new LinkedList<PolicyModelKey>();
+        pdpTypeList2.add(type2);
+        pdpTypeList2.add(type3);
+        pdpSubgroup2.setSupportedPolicyTypes(pdpTypeList2);
+
+        List<PdpSubgroup> pdpSubgroupList = new LinkedList<PdpSubgroup>();
+        pdpSubgroupList.add(pdpSubgroup1);
+
+        PdpGroup pdpGroup1 = new PdpGroup();
+        pdpGroup1.setName("pdpGroup1");
+        pdpGroup1.setPdpGroupState("ACTIVE");
+        pdpGroup1.setPdpSubgroups(pdpSubgroupList);
+
+        List<PdpSubgroup> pdpSubgroupList2 = new LinkedList<PdpSubgroup>();
+        pdpSubgroupList2.add(pdpSubgroup1);
+        pdpSubgroupList2.add(pdpSubgroup2);
+        PdpGroup pdpGroup2 = new PdpGroup();
+        pdpGroup2.setName("pdpGroup2");
+        pdpGroup2.setPdpGroupState("ACTIVE");
+        pdpGroup2.setPdpSubgroups(pdpSubgroupList2);
+
+        List<PdpGroup> pdpGroupList = new LinkedList<PdpGroup>();
+        pdpGroupList.add(pdpGroup1);
+        pdpGroupList.add(pdpGroup2);
+        policyModelsService.updatePdpGroupInfo(pdpGroupList);
+
+        JsonObject res1 = policyModelsService.getPolicyModel("org.onap.testos", "1.0.0").getPolicyPdpGroup();
+        String expectedRes1 = "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]},{\"pdpGroup2\":[\"subGroup1\"]}]}";
+        JsonObject expectedJson1 = JsonUtils.GSON.fromJson(expectedRes1, JsonObject.class);
+        assertThat(res1).isEqualTo(expectedJson1);
+
+        JsonObject res2 = policyModelsService.getPolicyModel("org.onap.testos2", "2.0.0").getPolicyPdpGroup();
+        String expectedRes2 = "{\"supportedPdpGroups\":[{\"pdpGroup1\":[\"subGroup1\"]},{\"pdpGroup2\":[\"subGroup1\",\"subGroup2\"]}]}";
+        JsonObject expectedJson2 = JsonUtils.GSON.fromJson(expectedRes2, JsonObject.class);
+        assertThat(res2).isEqualTo(expectedJson2);
+
+        JsonObject res3 = policyModelsService.getPolicyModel("org.onap.testos3", "1.0.0").getPolicyPdpGroup();
+        assertThat(res3).isNull();
+    }
 }