SDC Tosca Parser – support Annotations 87/42887/3
authorSheshukov, Natalia (ns019t) <ns019t@intl.att.com>
Sun, 15 Apr 2018 10:13:59 +0000 (13:13 +0300)
committerYuli Shlosberg <ys9693@att.com>
Sun, 29 Apr 2018 08:53:01 +0000 (11:53 +0300)
Change-Id: I99079e1a8de11c5c21a54f1695ee94addcabeab2
Issue-ID: SDC-1226
Signed-off-by: Yuli Shlosberg <ys9693@att.com>
src/main/java/org/onap/sdc/tosca/parser/api/ISdcCsarHelper.java
src/main/java/org/onap/sdc/tosca/parser/impl/SdcCsarHelperImpl.java
src/test/java/org/onap/sdc/impl/SdcToscaParserBasicTest.java
src/test/java/org/onap/sdc/impl/ToscaParserNodeTemplateTest.java
src/test/resources/csars/resource-Sirovinputannotation-csar.csar [new file with mode: 0644]
src/test/resources/csars/service-AdiodVmxVpeBvService-csar.csar [new file with mode: 0644]

index 5052ddf..cc47db9 100644 (file)
@@ -560,6 +560,12 @@ public interface ISdcCsarHelper {
      * @return              the list of the node templates
      */
     public List<NodeTemplate> getGroupMembersOfOriginOfNodeTemplate(NodeTemplate nodeTemplate, String groupName);
+    
+    /**
+     * Get inputs of the topology template including existing annotations
+     * @return                         the list of the inputs
+     */
+    public List<Input> getInputsWithAnnotations();
 
        /**
         * Get all interface details for given node template.<br>
index ee4c7e8..ed6345c 100644 (file)
@@ -1120,4 +1120,9 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
     return null;
   }
 
+       @Override
+       public List<Input> getInputsWithAnnotations() {
+               return toscaTemplate.getInputs(true);
+       }
+
 }
index 08f5bf1..edcf3ca 100644 (file)
@@ -43,6 +43,8 @@ public abstract class SdcToscaParserBasicTest {
        static ISdcCsarHelper csarHelperVfGroupsPolicies;
        static ISdcCsarHelper csarHelperServiceGroupsPolicies;
        static ISdcCsarHelper csarHelperVfInterfaces;
+       static ISdcCsarHelper csarHelperServiceAnnotations;
+       static ISdcCsarHelper csarHelperServiceAdiodAnnotations;
 
        static Map<String, HashMap<String, List<String>>> fdntCsarHelper_Data;
     
@@ -72,7 +74,9 @@ public abstract class SdcToscaParserBasicTest {
                csarHelperServiceGroupsCapabilities = getCsarHelper("csars/service-VdbePx-csar.csar");
                csarHelperVfGroupsPolicies = getCsarHelper("csars/resource-Vdbe-csar.csar");
                csarHelperServiceGroupsPolicies = getCsarHelper("csars/service-VlanD2dSrv-csar.csar");
+               csarHelperServiceAnnotations = getCsarHelper("csars/resource-Sirovinputannotation-csar.csar");
                csarHelperVfInterfaces = getCsarHelper("csars/service-CxSvc-csar.csar");
+               csarHelperServiceAdiodAnnotations = getCsarHelper("csars/service-AdiodVmxVpeBvService-csar.csar");
 
                fdntCsarHelper_Data = new HashMap<String, HashMap<String, List<String>>>(){
                {
index 0acfdf6..db7e5ae 100644 (file)
@@ -18,6 +18,8 @@ import org.onap.sdc.toscaparser.api.Group;
 import org.onap.sdc.toscaparser.api.NodeTemplate;
 import org.onap.sdc.toscaparser.api.Policy;
 import org.onap.sdc.toscaparser.api.Property;
+import org.onap.sdc.toscaparser.api.parameters.Annotation;
+import org.onap.sdc.toscaparser.api.parameters.Input;
 import org.testng.annotations.Test;
 
 public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
@@ -1121,6 +1123,47 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
                assertNotNull(capability);
        }
        
+       @Test
+       public void testGetVfGroupsPolicies() {
+               List<Policy> policies = csarHelperVfGroupsPolicies.getPoliciesOfTopologyTemplate();
+               assertNotNull(policies);
+               List<Group> groups = csarHelperVfGroupsPolicies.getGroupsOfTopologyTemplate();
+               assertNotNull(groups);
+       }
+       
+       @Test
+       public void testGetServiceGroupsPolicies() {
+               NodeTemplate nt = csarHelperServiceGroupsPolicies.getNodeTemplateByName("vDBE 0");
+               List<Policy> policies = csarHelperServiceGroupsPolicies.getPoliciesOfOriginOfNodeTemplate(nt);
+               assertNotNull(policies);
+               List<Group> groups = csarHelperServiceGroupsPolicies.getGroupsOfOriginOfNodeTemplate(nt);
+               assertNotNull(groups);
+       }
+       
+       @Test
+       public void testGetResourceInputsWithAnnotations() {
+               List<Input> inputs = csarHelperServiceAnnotations.getServiceInputs();
+               assertNotNull(inputs);
+               assertEquals(inputs.size(), 19);
+               assertTrue(inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()).isEmpty());
+               
+               inputs = csarHelperServiceAnnotations.getInputsWithAnnotations();
+               assertNotNull(inputs);
+               assertEquals(inputs.size(), 19);
+               validateInputsAnnotations(inputs);
+       }
+       
+       @Test
+       public void testGetServiceInputsWithAnnotations() {
+               List<Input> inputs = csarHelperServiceAdiodAnnotations.getServiceInputs();
+               assertNotNull(inputs);
+               assertTrue(inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList()).isEmpty());
+               
+               inputs = csarHelperServiceAdiodAnnotations.getInputsWithAnnotations();
+               assertNotNull(inputs);
+               validateInputsAnnotations(inputs);
+       }
+       
        @SuppressWarnings("unchecked")
        private void validateInputsProperties(NodeTemplate vdbe0, Group group) {
                assertNotNull(group.getPropertiesObjects());
@@ -1142,21 +1185,27 @@ public class ToscaParserNodeTemplateTest extends SdcToscaParserBasicTest {
                 assertEquals(list.size(), 2);
        }
        
-       @Test
-       public void testGetVfGroupsPolicies() {
-               List<Policy> policies = csarHelperVfGroupsPolicies.getPoliciesOfTopologyTemplate();
-               assertNotNull(policies);
-               List<Group> groups = csarHelperVfGroupsPolicies.getGroupsOfTopologyTemplate();
-               assertNotNull(groups);
+       private void validateInputsAnnotations(List<Input> inputs) {
+               List<Input> inputsWithAnnotations = inputs.stream().filter(i -> i.getAnnotations() != null).collect(Collectors.toList());
+               assertTrue(!inputs.isEmpty());
+               inputsWithAnnotations.stream().forEach(i -> validateAnnotations(i));
        }
-       @Test
-       public void testGetServiceGroupsPolicies() {
-               NodeTemplate nt = csarHelperServiceGroupsPolicies.getNodeTemplateByName("vDBE 0");
-               List<Policy> policies = csarHelperServiceGroupsPolicies.getPoliciesOfOriginOfNodeTemplate(nt);
-               assertNotNull(policies);
-               List<Group> groups = csarHelperServiceGroupsPolicies.getGroupsOfOriginOfNodeTemplate(nt);
-               assertNotNull(groups);
+       
+       private void validateAnnotations(Input input) {
+               assertNotNull(input.getAnnotations());
+               assertEquals(input.getAnnotations().size(), 1);
+               Annotation annotation = input.getAnnotations().get("source");
+               assertEquals(annotation.getName(), "source");
+               assertEquals(annotation.getType().toLowerCase(), "org.openecomp.annotations.source");
+               assertNotNull(annotation.getProperties());
+               Optional<Property> source_type = annotation.getProperties()
+                               .stream()
+                               .filter(p->p.getName().equals("source_type"))
+                               .findFirst();
+               assertTrue(source_type.isPresent());
+               assertEquals(source_type.get().getValue(), "HEAT");
        }
+
 }
 
 
diff --git a/src/test/resources/csars/resource-Sirovinputannotation-csar.csar b/src/test/resources/csars/resource-Sirovinputannotation-csar.csar
new file mode 100644 (file)
index 0000000..a872843
Binary files /dev/null and b/src/test/resources/csars/resource-Sirovinputannotation-csar.csar differ
diff --git a/src/test/resources/csars/service-AdiodVmxVpeBvService-csar.csar b/src/test/resources/csars/service-AdiodVmxVpeBvService-csar.csar
new file mode 100644 (file)
index 0000000..28aa6f4
Binary files /dev/null and b/src/test/resources/csars/service-AdiodVmxVpeBvService-csar.csar differ