Fix the bug of cannot return multiple versions of particular tosca policy and policy... 38/90038/1
authorChenfei Gao <cgao@research.att.com>
Mon, 17 Jun 2019 20:54:28 +0000 (16:54 -0400)
committerChenfei Gao <cgao@research.att.com>
Mon, 17 Jun 2019 20:54:41 +0000 (16:54 -0400)
Issue-ID: POLICY-1807
Change-Id: I831c720993930a911d301a82b59a74cda7cb0c50
Signed-off-by: Chenfei Gao <cgao@research.att.com>
models-provider/src/test/java/org/onap/policy/models/provider/impl/DatabasePolicyModelsProviderTest.java
models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyPersistenceTest.java
models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java
models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java

index 565b3fe..c188560 100644 (file)
@@ -403,7 +403,7 @@ public class DatabasePolicyModelsProviderTest {
             assertTrue(databaseProvider.getPolicyTypes("name", "1.0.0").getPolicyTypes().isEmpty());
             assertEquals(0, databaseProvider.getPolicyTypeList("name", "1.0.0").size());
             assertEquals(0, databaseProvider.getFilteredPolicyTypes(ToscaPolicyTypeFilter.builder().build())
-                    .getPolicyTypes().get(0).size());
+                    .getPolicyTypes().size());
             assertEquals(0, databaseProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().build()).size());
 
             assertThatThrownBy(() -> {
@@ -422,7 +422,7 @@ public class DatabasePolicyModelsProviderTest {
                     databaseProvider.getPolicies("name", "1.0.0").getToscaTopologyTemplate().getPolicies().isEmpty());
             assertEquals(0, databaseProvider.getPolicyList("name", "1.0.0").size());
             assertEquals(0, databaseProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build())
-                    .getToscaTopologyTemplate().getPolicies().get(0).size());
+                    .getToscaTopologyTemplate().getPolicies().size());
             assertEquals(0, databaseProvider.getFilteredPolicyList(ToscaPolicyFilter.builder().build()).size());
 
             assertThatThrownBy(() -> {
index 7fa21b0..a08ad66 100644 (file)
@@ -27,6 +27,7 @@ import static org.junit.Assert.fail;
 import com.google.gson.GsonBuilder;
 
 import java.util.Base64;
+import java.util.List;
 import java.util.Map;
 
 import lombok.NonNull;
@@ -162,8 +163,9 @@ public class PolicyPersistenceTest {
 
                 gotToscaServiceTemplate = databaseProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build());
 
-                assertEquals(gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies().get(0)
-                        .get(policy.getName()).getType(), policy.getType());
+                assertEquals(getToscaPolicyFromMapList(
+                        gotToscaServiceTemplate.getToscaTopologyTemplate().getPolicies(), policy.getName()).getType(),
+                        policy.getType());
 
                 gotToscaServiceTemplate = databaseProvider.getFilteredPolicies(
                         ToscaPolicyFilter.builder().name(policy.getName()).version(policy.getVersion()).build());
@@ -174,6 +176,18 @@ public class PolicyPersistenceTest {
         }
     }
 
+    private ToscaPolicy getToscaPolicyFromMapList(List<Map<String, ToscaPolicy>> toscaPolicyMapList,
+            String policyName) {
+        ToscaPolicy toscaPolicy = new ToscaPolicy();
+        for (Map<String, ToscaPolicy> policyMap: toscaPolicyMapList) {
+            if (policyMap.get(policyName) != null) {
+                toscaPolicy = policyMap.get(policyName);
+                break;
+            }
+        }
+        return toscaPolicy;
+    }
+
     private void createPolicyTypes() throws CoderException, PfModelException {
         Object yamlObject = new Yaml().load(
                 ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.yaml"));
index 0fae304..cd73ae5 100644 (file)
@@ -368,15 +368,17 @@ public class AuthorativeToscaProvider {
     /**
      * Return the contents of a list of concepts as a list of maps of concepts.
      *
-     * @param comceptList the concept list
-     * @return the concept map
+     * @param conceptList the concept list
+     * @return the list of concept map
      */
     private <T extends ToscaEntity> List<Map<String, T>> asConceptMap(List<T> conceptList) {
-        Map<String, T> conceptMap = new LinkedHashMap<>();
+        List<Map<String, T>> toscaEntityMapList = new ArrayList<>();
         for (T concept : conceptList) {
+            Map<String, T> conceptMap = new LinkedHashMap<>();
             conceptMap.put(concept.getName(), concept);
+            toscaEntityMapList.add(conceptMap);
         }
 
-        return Collections.singletonList(conceptMap);
+        return toscaEntityMapList;
     }
 }
index ded2cde..4ae5614 100644 (file)
@@ -207,7 +207,7 @@ public class AuthorativeToscaProviderPolicyTypeTest {
         ToscaServiceTemplate gotServiceTemplate =
                 new AuthorativeToscaProvider().getFilteredPolicyTypes(pfDao, ToscaPolicyTypeFilter.builder().build());
 
-        ToscaPolicyType gotPolicyType = gotServiceTemplate.getPolicyTypes().get(0).get(policyTypeKey.getName());
+        ToscaPolicyType gotPolicyType = gotServiceTemplate.getPolicyTypes().get(1).get(policyTypeKey.getName());
         assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
         assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), gotPolicyType.getDescription()));