fix GetEntity API method returning a map rather than a list 47/92347/4 1.6.0
authorys9693 <ys9693@att.com>
Wed, 31 Jul 2019 10:42:32 +0000 (13:42 +0300)
committerOfir Sonsino <ofir.sonsino@intl.att.com>
Wed, 31 Jul 2019 13:13:08 +0000 (13:13 +0000)
Issue-ID: SDC-2481
Change-Id: I710ed80a7e1b0e4d23176b0a3b33910b28a83bbf
Signed-off-by: Yuli Shlosberg <ys9693@att.com>
src/main/java/org/onap/sdc/tosca/parser/api/IEntityDetails.java
src/main/java/org/onap/sdc/tosca/parser/elements/EntityDetails.java
src/test/java/org/onap/sdc/impl/CapReqWithSameNamesTest.java [new file with mode: 0644]
src/test/java/org/onap/sdc/impl/GetEntityPortMirroringTest.java
src/test/java/org/onap/sdc/impl/GetEntityTest.java

index c5f98d8..ac160e0 100644 (file)
@@ -87,13 +87,13 @@ public interface IEntityDetails {
      * Retrieves map of requirements of the entity instance
      * @return map of entity requirement names and corresponding {@link RequirementAssignment} object instances
      */
-    Map<String, RequirementAssignment> getRequirements();
+    List<RequirementAssignment> getRequirements();
 
     /**
      * Retrieves map of capabilities of the entity instance
      * @return map of entity capability names and corresponding {@link CapabilityAssignment} object instances
      */
-    Map<String, CapabilityAssignment> getCapabilities();
+    List<CapabilityAssignment> getCapabilities();
 
     /**
      * Retrieves list of policy target names
index f6f961c..57559c6 100644 (file)
@@ -67,19 +67,15 @@ public abstract class EntityDetails implements IEntityDetails {
     }
 
     @Override
-    public Map<String, RequirementAssignment> getRequirements() {
+    public List<RequirementAssignment> getRequirements() {
         return entityTemplate.getRequirements()
-                .getAll()
-                .stream()
-                .collect(Collectors.toMap(RequirementAssignment::getName, ra->ra));
+                .getAll();
     }
 
     @Override
-    public Map<String, CapabilityAssignment> getCapabilities() {
+    public List<CapabilityAssignment> getCapabilities() {
         return entityTemplate.getCapabilities()
-                .getAll()
-                .stream()
-                .collect(Collectors.toMap(CapabilityAssignment::getName, ca->ca));
+                .getAll();
     }
 
     @Override
diff --git a/src/test/java/org/onap/sdc/impl/CapReqWithSameNamesTest.java b/src/test/java/org/onap/sdc/impl/CapReqWithSameNamesTest.java
new file mode 100644 (file)
index 0000000..4203293
--- /dev/null
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * sdc-tosca
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.impl;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.sdc.tosca.parser.api.IEntityDetails;
+import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
+import org.onap.sdc.tosca.parser.elements.queries.EntityQuery;
+import org.onap.sdc.tosca.parser.elements.queries.TopologyTemplateQuery;
+import org.onap.sdc.tosca.parser.enums.SdcTypes;
+import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
+import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory;
+import org.onap.sdc.toscaparser.api.RequirementAssignment;
+
+import java.net.URL;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+public class CapReqWithSameNamesTest {
+
+    private static ISdcCsarHelper helper = null;
+
+    @BeforeClass
+    public static void setUpClass() {
+        try {
+            URL resource = GetEntityPortMirroringTest.class.getClassLoader()
+                    .getResource("csars/service-VdbePx-csar.csar");
+            if (resource != null) {
+                helper = SdcToscaParserFactory.getInstance().getSdcCsarHelper(resource.getFile());
+            }
+
+        } catch (SdcToscaParserException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Test
+    public void verify2reqWithSameName() {
+        EntityQuery entityQuery = EntityQuery.newBuilder(SdcTypes.CONFIGURATION)
+                .build();
+        TopologyTemplateQuery topologyTemplateQuery = TopologyTemplateQuery.newBuilder(SdcTypes.SERVICE)
+                .build();
+
+        List<IEntityDetails> entities = helper.getEntity(entityQuery, topologyTemplateQuery, false);
+        long count = entities.stream()
+                .flatMap(f -> f.getRequirements().stream())
+                .map(RequirementAssignment::getName)
+                .filter("vlan_assignment"::equals).count();
+        assertEquals(2L, count);
+
+    }
+
+}
index 8aa08b7..33e130e 100644 (file)
@@ -115,21 +115,17 @@ public class GetEntityPortMirroringTest {
         assertEquals(2, proxyNodes.size());
         assertEquals(1, configurationNodes.size());
 
-        Map<String, RequirementAssignment> reqMap = configurationNodes.get(0).getRequirements();
-        assertEquals(cap0, reqMap.get("source").getCapabilityName());
-        assertEquals(cap1, reqMap.get("collector").getCapabilityName());
+        List<RequirementAssignment> reqMap = configurationNodes.get(0).getRequirements();
+        assertEquals(cap0, reqMap.stream().filter(f -> f.getName().equals("source")).findAny().get().getCapabilityName());
+        assertEquals(cap1, reqMap.stream().filter(f -> f.getName().equals("collector")).findAny().get().getCapabilityName());
 
         assertTrue(isCapabilityFound(proxyNodes.get(0), cap0));
         assertTrue(isCapabilityFound(proxyNodes.get(1), cap1));
     }
 
     private boolean isCapabilityFound(IEntityDetails nodeDetails, String capName) {
-        List<CapabilityAssignment> assignments = nodeDetails.getCapabilities()
-                .values()
-                .stream()
-                .filter(ca->capName.equals(ca.getDefinition()
-                        .getName()))
-                .collect(Collectors.toList());
-        return assignments.size() == 1;
+        List<CapabilityAssignment> assignments = nodeDetails.getCapabilities();
+        CapabilityAssignment capabilityAssignment = assignments.stream().filter(f -> f.getDefinition().getName().equals(capName)).findAny().orElse(null);
+        return capabilityAssignment != null;
     }
 }
index 7d37d67..f1fcf2f 100644 (file)
@@ -88,9 +88,9 @@ public class GetEntityTest {
         assertEquals("ssc_ssc_avpn_port_0", entities.get(0).getName());
         assertEquals(18, entities.get(0).getProperties().size());
         assertEquals(1, entities.get(0).getRequirements().size());
-        assertEquals(13, entities.get(0).getCapabilities().entrySet().size());
-        Map<String, CapabilityAssignment> capAssignments = entities.get(0).getCapabilities();
-        CapabilityAssignment capabilityAssignment = capAssignments.get("network.outgoing.packets.rate");
+        assertEquals(13, entities.get(0).getCapabilities().size());
+        List<CapabilityAssignment> capAssignments = entities.get(0).getCapabilities();
+        CapabilityAssignment capabilityAssignment = capAssignments.stream().filter(p -> p.getName().equals("network.outgoing.packets.rate")).findAny().orElse(null);
         assertEquals("org.openecomp.capabilities.metric.Ceilometer", capabilityAssignment.getDefinition().getType());
 
     }