[SDC-18] Tosca Parser conformance level - initial 25/4125/1
authorPavel Aharoni <pa0916@att.com>
Thu, 11 May 2017 13:41:38 +0000 (16:41 +0300)
committerPavel Aharoni <pa0916@att.com>
Thu, 11 May 2017 13:41:51 +0000 (16:41 +0300)
Change-Id: I0d8d27f4b8085d918ecc94aace423d3216337f2d
Signed-off-by: Pavel Aharoni <pa0916@att.com>
34 files changed:
.gitignore
jtosca/pom.xml
jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/ToscaTemplate.java
jtosca/src/main/java/org/openecomp/sdc/toscaparser/api/prereq/CSAR.java
jtosca/src/test/java/org.openecomp.sdc.toscaparser/JToscaMetadataParse.java [new file with mode: 0644]
jtosca/src/test/resources/csars/csar_hello_world.csar [moved from sdc-tosca-parser/src/test/resources/csars/csar_hello_world.zip with 100% similarity]
pom.xml
sdc-distribution-ci/pom.xml
sdc-distribution-client/pom.xml
sdc-tosca-parser/pom.xml
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/api/ConformanceLevel.java [new file with mode: 0644]
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/api/ISdcCsarHelper.java
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/api/Version.java [new file with mode: 0644]
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/Configuration.java [new file with mode: 0644]
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java [new file with mode: 0644]
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcCsarHelperImpl.java
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/impl/SdcToscaParserFactory.java
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/utils/GeneralUtility.java
sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/utils/YamlToObjectConverter.java [new file with mode: 0644]
sdc-tosca-parser/src/main/resources/config/configuration.yaml [new file with mode: 0644]
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/BasicTest.java
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserConfigurationTest.java [new file with mode: 0644]
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserGeneralUtilTest.java [new file with mode: 0644]
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserGroupTest.java
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserMetadataTest.java
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserNodeTemplateTest.java
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserServiceInputTest.java
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserSubsMappingsTest.java
sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserTestSuite.java [deleted file]
sdc-tosca-parser/src/test/resources/config/configuration.yaml [new file with mode: 0644]
sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-0904-2.csar
sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-rainy.csar
sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar.csar
sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-with-allotted.csar

index 68f22e6..74f7cda 100644 (file)
@@ -16,3 +16,5 @@ target/
 *.class
 *.orig
 .idea/*
+
+sdc-tosca-parser/test-output/**/*
index f74988b..ce50fec 100644 (file)
@@ -9,7 +9,7 @@
        </parent>
        
        <artifactId>jtosca</artifactId>
-       <version>0.1.2-SNAPSHOT</version>
+       <version>0.1.3-SNAPSHOT</version>
        
        <dependencies>
        
                        <scope>test</scope>
                </dependency> -->
 
-       </dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+               </dependency>
+    </dependencies>
 </project>
\ No newline at end of file
index 942ca96..d1b0179 100644 (file)
@@ -82,8 +82,9 @@ public class ToscaTemplate extends Object {
     private ArrayList<TopologyTemplate> nestedToscaTemplatesWithTopology;
     private ToscaGraph graph;
     private String csarTempDir;
-    private int nestingLoopCounter; 
-  
+    private int nestingLoopCounter;
+       private LinkedHashMap<String, LinkedHashMap<String, Object>> metaProperties;
+
        @SuppressWarnings("unchecked")
        public ToscaTemplate(String _path,
                                                 LinkedHashMap<String,Object> _parsedParams,
@@ -480,6 +481,7 @@ public class ToscaTemplate extends Object {
                        if (csar.validate()) {
                                try {
                                        csar.decompress();
+                                       metaProperties = csar.getMetaProperties();
                                } 
                                catch (IOException e) {
                                        log.error("ToscaTemplate - _getPath - IOException trying to decompress {}", _path);
@@ -554,6 +556,10 @@ public class ToscaTemplate extends Object {
        public ArrayList<NodeTemplate> getNodeTemplates() {
                return nodeTemplates;
        }
+
+       public LinkedHashMap<String, Object> getMetaProperties(String propertiesFile) {
+               return metaProperties.get(propertiesFile);
+       }
        
        private boolean _isSubMappedNode(NodeTemplate nt,LinkedHashMap<String,Object> toscaTpl) {
                // Return True if the nodetemple is substituted
index 159ad66..2ab5d26 100644 (file)
@@ -12,10 +12,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
+import java.util.*;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 import java.util.zip.ZipInputStream;
@@ -31,6 +28,7 @@ import org.yaml.snakeyaml.Yaml;
 public class CSAR {
 
        private static Logger log = LoggerFactory.getLogger(CSAR.class.getName());
+       private static final ArrayList<String> META_PROPERTIES_FILES = new ArrayList<>(Arrays.asList("TOSCA-Metadata/TOSCA.meta", "csar.meta"));
 
        private String path;
     private boolean isFile;
@@ -38,9 +36,10 @@ public class CSAR {
     private boolean errorCaught;
     private String csar;
     private String tempDir;
-    private Metadata metaData;
+//    private Metadata metaData;
     private File tempFile;
-       
+       private LinkedHashMap<String, LinkedHashMap<String, Object>> metaProperties;
+
        public CSAR(String csarPath, boolean aFile) {
                path = csarPath;
                isFile = aFile;
@@ -49,8 +48,9 @@ public class CSAR {
         csar = null;
         tempDir = null;
         tempFile = null;
+               metaProperties = new LinkedHashMap<>();
        }
-       
+
        @SuppressWarnings("unchecked")
        public boolean validate() {
                isValidated = true;
@@ -89,8 +89,23 @@ public class CSAR {
                        return false;
                }
                
-               ZipFile zf = null;
+               _parseAndValidateMetaProperties();
+
+               if(errorCaught) {
+                       return false;
+               }
+               
+        // validate that external references in the main template actually exist and are accessible
+        _validateExternalReferences();
         
+        return !errorCaught;
+
+       }
+
+       private void _parseAndValidateMetaProperties() {
+
+               ZipFile zf = null;
+
                try {
 
                        // validate that it is a valid zip file
@@ -99,85 +114,79 @@ public class CSAR {
                        raf.close();
                        // check if Zip's magic number
                        if (n != 0x504B0304) {
-                           throw new IOException(String.format("\"%s\" is not a valid zip file", csar));
+                               throw new IOException(String.format("\"%s\" is not a valid zip file", csar));
                        }
-                       
+
                        // validate that it contains the metadata file in the correct location
                        zf = new ZipFile(csar);
                        ZipEntry ze = zf.getEntry("TOSCA-Metadata/TOSCA.meta");
-                       if(ze == null) {
+                       if (ze == null) {
                                throw new IOException(String.format(
                                                "\"%s\" is not a valid CSAR as it does not contain the " +
-                                   "required file \"TOSCA.meta\" in the folder \"TOSCA-Metadata\"", csar));
+                                                               "required file \"TOSCA.meta\" in the folder \"TOSCA-Metadata\"", csar));
                        }
-               
+
+                       //Going over expected metadata files and parsing them
+                       for (String metaFile: META_PROPERTIES_FILES) {
+
+                               byte ba[] = new byte[4096];
+                               ze = zf.getEntry(metaFile);
+                               if (ze != null) {
+                                       InputStream inputStream = zf.getInputStream(ze);
+                                       n = inputStream.read(ba, 0, 4096);
+
+                                       String md = new String(ba);
+                                       md = md.substring(0, (int) n);
+                                       Yaml yaml = new Yaml();
+                                       Object mdo = yaml.load(md);
+                                       if (!(mdo instanceof LinkedHashMap)) {
+                                               throw new IOException(String.format(
+                                                               "The file \"%s\" in the" +
+                                                                               " CSAR \"%s\" does not contain valid YAML content", ze.getName(), csar));
+                                       }
+
+                                       String[] split = ze.getName().split("/");
+                    String fileName = split[split.length - 1];
+
+                                       if (!metaProperties.containsKey(fileName)) {
+                                               metaProperties.put(fileName, (LinkedHashMap<String, Object>) mdo);
+                                       }
+                               }
+                       }
+
                        // verify it has "Entry-Definition"
-                       ZipInputStream zipIn = new ZipInputStream(new FileInputStream(csar));
-               byte ba[] = new byte[4096];
-                       while ((ze = zipIn.getNextEntry()) != null) {
-                           if (ze.getName().equals("TOSCA-Metadata/TOSCA.meta")) {
-                                       n = zipIn.read(ba,0,4096);
-                                       zipIn.close();
-                               break;
-                           }
+                       String edf = _getMetadata("Entry-Definitions");
+                       if (edf == null) {
+                               throw new IOException(String.format(
+                                               "The CSAR \"%s\" is missing the required metadata " +
+                                                               "\"Entry-Definitions\" in \"TOSCA-Metadata/TOSCA.meta\"", csar));
                        }
 
-               String md = new String(ba);
-               md = md.substring(0, (int)n);
-               Yaml yaml = new Yaml();
-               Object mdo = yaml.load(md);
-               if(!(mdo instanceof LinkedHashMap)) {
-                       throw new IOException(String.format(
-                                       "The file \"TOSCA-Metadata/TOSCA.meta\" in the" +
-                                       " CSAR \"%s\" does not contain valid YAML content",csar));
-               }
-               
-                       metaData = new Metadata((Map<String, Object>) mdo);
-               String edf = metaData.getValue("Entry-Definitions");
-               if(edf == null) {
-                       throw new IOException(String.format(
-                                       "The CSAR \"%s\" is missing the required metadata " +
-                                       "\"Entry-Definitions\" in \"TOSCA-Metadata/TOSCA.meta\"",csar));
-               }
-               
-               //validate that "Entry-Definitions' metadata value points to an existing file in the CSAR
-               boolean foundEDF = false;
-               Enumeration<? extends ZipEntry> entries = zf.entries();
-               while (entries.hasMoreElements()) {
-                   ze = entries.nextElement();
-                   if (ze.getName().equals(edf)) {
-                       foundEDF = true;
-                       break;
-                   }
-               }
-               if(!foundEDF) {
-                       throw new IOException(String.format(
-                                       "The \"Entry-Definitions\" file defined in the CSAR \"%s\" does not exist",csar));
-               }
-                       
-               }
-               catch(Exception e) {
+                       //validate that "Entry-Definitions' metadata value points to an existing file in the CSAR
+                       boolean foundEDF = false;
+                       Enumeration<? extends ZipEntry> entries = zf.entries();
+                       while (entries.hasMoreElements()) {
+                               ze = entries.nextElement();
+                               if (ze.getName().equals(edf)) {
+                                       foundEDF = true;
+                                       break;
+                               }
+                       }
+                       if (!foundEDF) {
+                               throw new IOException(String.format(
+                                               "The \"Entry-Definitions\" file defined in the CSAR \"%s\" does not exist", csar));
+                       }
+               } catch (Exception e) {
                        ExceptionCollector.appendException("ValidationError: " + e.getMessage());
-                       errorCaught = true;;
+                       errorCaught = true;
                }
-               
+
                try {
-                       if(zf != null) {
+                       if (zf != null) {
                                zf.close();
                        }
+               } catch (IOException e) {
                }
-               catch(IOException e) {
-               }
-               
-               if(errorCaught) {
-                       return false;
-               }
-               
-        // validate that external references in the main template actually exist and are accessible
-        _validateExternalReferences();
-        
-        return !errorCaught;
-
        }
        
        public void cleanup() {
@@ -190,15 +199,12 @@ public class CSAR {
                }
        }
        
-       public Metadata getMetadata() {
-               return metaData;
-       }
-       
     private String _getMetadata(String key) {
        if(!isValidated) {
                validate();
        }
-       return metaData.getValue(key);
+       Object value = _getMetaProperty("TOSCA.meta").get(key);
+       return value != null ? value.toString() : null;
     }
 
     public String getAuthor() {
@@ -208,8 +214,16 @@ public class CSAR {
     public String getVersion() {
         return _getMetadata("CSAR-Version");
     }
-    
-    public String getMainTemplate() {
+
+       public LinkedHashMap<String, LinkedHashMap<String, Object>> getMetaProperties() {
+               return metaProperties;
+       }
+
+       private LinkedHashMap<String, Object> _getMetaProperty(String propertiesFile) {
+               return metaProperties.get(propertiesFile);
+       }
+
+       public String getMainTemplate() {
        String entryDef = _getMetadata("Entry-Definitions");
        ZipFile zf;
        boolean ok = false;
@@ -259,8 +273,10 @@ public class CSAR {
         if(desc != null) {
             return desc;
         }
-        metaData.setValue("Description",(String)getMainTemplateYaml().get("description"));
-        return metaData.getValue("Description");
+
+               Map<String, Object> metaData = metaProperties.get("TOSCA.meta");
+               metaData.put("Description", getMainTemplateYaml().get("description"));
+               return _getMetadata("Description");
     }
 
     public String getTempDir() {
diff --git a/jtosca/src/test/java/org.openecomp.sdc.toscaparser/JToscaMetadataParse.java b/jtosca/src/test/java/org.openecomp.sdc.toscaparser/JToscaMetadataParse.java
new file mode 100644 (file)
index 0000000..584a0fd
--- /dev/null
@@ -0,0 +1,26 @@
+package org.openecomp.sdc.toscaparser;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+import java.util.LinkedHashMap;
+
+import org.junit.Test;
+import org.openecomp.sdc.toscaparser.api.ToscaTemplate;
+import org.openecomp.sdc.toscaparser.api.common.JToscaException;
+
+public class JToscaMetadataParse {
+
+    @Test
+    public void testMetadataParsedCorrectly() throws JToscaException {
+        String fileStr = JToscaMetadataParse.class.getClassLoader().getResource("csars/csar_hello_world.csar").getFile();
+        File file = new File(fileStr);
+        ToscaTemplate toscaTemplate = new ToscaTemplate(file.getAbsolutePath(), null, true, null);
+        LinkedHashMap<String, Object> metadataProperties = toscaTemplate.getMetaProperties("TOSCA.meta");
+        assertNotNull(metadataProperties);
+        Object entryDefinition = metadataProperties.get("Entry-Definitions");
+        assertNotNull(entryDefinition);
+        assertEquals("tosca_helloworld.yaml", entryDefinition);
+    }
+}
diff --git a/pom.xml b/pom.xml
index f03c0fe..2b3583e 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
 
        <groupId>org.openecomp.sdc.sdc-distribution-client</groupId>
        <artifactId>sdc-main-distribution-client</artifactId>
-       <version>1.1.9-SNAPSHOT</version>
+       <version>1.1.10-SNAPSHOT</version>
        <packaging>pom</packaging>
 
        <modules>
index c7b544c..f76457c 100644 (file)
@@ -6,7 +6,7 @@
        <parent>
                <groupId>org.openecomp.sdc.sdc-distribution-client</groupId>
                <artifactId>sdc-main-distribution-client</artifactId>
-               <version>1.1.9-SNAPSHOT</version>
+               <version>1.1.10-SNAPSHOT</version>
        </parent>
 
        <artifactId>sdc-distribution-ci</artifactId>
index ea13907..d7f0ea7 100644 (file)
@@ -6,7 +6,7 @@
        <parent>
                <groupId>org.openecomp.sdc.sdc-distribution-client</groupId>
                <artifactId>sdc-main-distribution-client</artifactId>
-               <version>1.1.9-SNAPSHOT</version>
+               <version>1.1.10-SNAPSHOT</version>
        </parent>
 
        <artifactId>sdc-distribution-client</artifactId>
index 6b370ce..f027a96 100644 (file)
@@ -6,7 +6,7 @@
        <parent>\r
                <groupId>org.openecomp.sdc.sdc-distribution-client</groupId>\r
                <artifactId>sdc-main-distribution-client</artifactId>\r
-               <version>1.1.9-SNAPSHOT</version>\r
+               <version>1.1.10-SNAPSHOT</version>\r
        </parent>\r
 \r
        <artifactId>sdc-tosca-parser</artifactId>\r
@@ -71,7 +71,7 @@
                <dependency>\r
                        <groupId>org.openecomp.sdc.sdc-distribution-client</groupId>\r
                        <artifactId>jtosca</artifactId>\r
-                       <version>0.1.2-SNAPSHOT</version>\r
+                       <version>0.1.3-SNAPSHOT</version>\r
                </dependency>\r
 \r
 \r
                        <scope>test</scope>\r
                </dependency>\r
 \r
+               <!--<dependency>-->\r
+                       <!--<groupId>junit</groupId>-->\r
+                       <!--<artifactId>junit</artifactId>-->\r
+                       <!--<version>4.12</version>-->\r
+                       <!--<scope>test</scope>-->\r
+               <!--</dependency>-->\r
+\r
                <dependency>\r
-                       <groupId>junit</groupId>\r
-                       <artifactId>junit</artifactId>\r
-                       <version>4.12</version>\r
+                       <groupId>org.testng</groupId>\r
+                       <artifactId>testng</artifactId>\r
+                       <version>6.11</version>\r
                        <scope>test</scope>\r
                </dependency>\r
 \r
                        <groupId>com.google.guava</groupId>\r
                        <artifactId>guava</artifactId>\r
                        <version>15.0</version>\r
-                       <scope>test</scope>\r
+                       <!--<scope>test</scope>-->\r
                </dependency>\r
                \r
                <!-- <dependency>\r
                                <version>2.19.1</version>\r
                                <configuration>\r
                                        <includes>\r
-                                               <include>**/ToscaParserTestSuite.class</include>\r
+                                               <include>**/ToscaParser***Test.class</include>\r
                                        </includes>\r
                                </configuration>\r
                        </plugin>\r
diff --git a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/api/ConformanceLevel.java b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/api/ConformanceLevel.java
new file mode 100644 (file)
index 0000000..a026938
--- /dev/null
@@ -0,0 +1,25 @@
+package org.openecomp.sdc.tosca.parser.api;
+
+public class ConformanceLevel {
+
+    private String minVersion;
+    private String maxVersion;
+
+    public String getMaxVersion() {
+        return maxVersion;
+    }
+
+    public void setMaxVersion(String maxVersion) {
+        this.maxVersion = maxVersion;
+    }
+
+    public String getMinVersion() {
+        return minVersion;
+    }
+
+    public void setMinVersion(String minVersion) {
+        this.minVersion = minVersion;
+    }
+
+
+}
index dd0e96c..7cc9022 100644 (file)
@@ -246,5 +246,7 @@ public interface ISdcCsarHelper {
         * @return - the service inputs list.
         */
        public List<Input> getServiceInputs();
-       
+
+
+       public String getConformanceLevel();
 }
diff --git a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/api/Version.java b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/api/Version.java
new file mode 100644 (file)
index 0000000..473e3a8
--- /dev/null
@@ -0,0 +1,48 @@
+package org.openecomp.sdc.tosca.parser.api;
+
+public class Version implements Comparable<Version> {
+
+    private String version;
+
+    public final String get() {
+        return this.version;
+    }
+
+    public Version(String version) {
+        if(version == null)
+            throw new IllegalArgumentException("Version can not be null");
+        if(!version.matches("[0-9]+(\\.[0-9]+)*"))
+            throw new IllegalArgumentException("Invalid version format");
+        this.version = version;
+    }
+
+    @Override public int compareTo(Version that) {
+        if(that == null)
+            return 1;
+        String[] thisParts = this.get().split("\\.");
+        String[] thatParts = that.get().split("\\.");
+        int length = Math.max(thisParts.length, thatParts.length);
+        for(int i = 0; i < length; i++) {
+            int thisPart = i < thisParts.length ?
+                    Integer.parseInt(thisParts[i]) : 0;
+            int thatPart = i < thatParts.length ?
+                    Integer.parseInt(thatParts[i]) : 0;
+            if(thisPart < thatPart)
+                return -1;
+            if(thisPart > thatPart)
+                return 1;
+        }
+        return 0;
+    }
+
+    @Override public boolean equals(Object that) {
+        if(this == that)
+            return true;
+        if(that == null)
+            return false;
+        if(this.getClass() != that.getClass())
+            return false;
+        return this.compareTo((Version) that) == 0;
+    }
+
+}
diff --git a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/Configuration.java b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/Configuration.java
new file mode 100644 (file)
index 0000000..1d00d14
--- /dev/null
@@ -0,0 +1,16 @@
+package org.openecomp.sdc.tosca.parser.config;
+
+import org.openecomp.sdc.tosca.parser.api.ConformanceLevel;
+
+public class Configuration {
+
+    private ConformanceLevel conformanceLevel;
+
+    public ConformanceLevel getConformanceLevel() {
+        return conformanceLevel;
+    }
+
+    public void setConformanceLevel(ConformanceLevel conformanceLevel) {
+        this.conformanceLevel = conformanceLevel;
+    }
+}
diff --git a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/config/ConfigurationManager.java
new file mode 100644 (file)
index 0000000..7cd9ed2
--- /dev/null
@@ -0,0 +1,51 @@
+package org.openecomp.sdc.tosca.parser.config;
+
+import com.google.common.base.Charsets;
+import com.google.common.io.Resources;
+import org.openecomp.sdc.tosca.parser.utils.YamlToObjectConverter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.net.URL;
+
+public class ConfigurationManager {
+
+       private static Logger log = LoggerFactory.getLogger(ConfigurationManager.class.getName());
+
+       private static final String CONFIGURATION_FILE = "config/configuration.yaml";
+       private static volatile ConfigurationManager instance;
+       private Configuration configuration;
+
+
+    private ConfigurationManager() {
+               URL url = Resources.getResource(CONFIGURATION_FILE);
+               String configFileContents = null;
+               try {
+                       configFileContents = Resources.toString(url, Charsets.UTF_8);
+               } catch (IOException e) {
+                       log.error("ConfigurationManager - Failed to load configuration file");
+               }
+               YamlToObjectConverter yamlToObjectConverter = new YamlToObjectConverter();
+               this.configuration = yamlToObjectConverter.convertFromString(configFileContents, Configuration.class);
+       }
+
+       public Configuration getConfiguration() {
+               return configuration;
+       }
+
+       public static ConfigurationManager getInstance() {
+               if (instance == null) {
+                       synchronized (ConfigurationManager.class){
+                               if (instance == null){
+                                       instance = new ConfigurationManager();
+                               }
+                       }
+               }
+               return instance;
+       }
+
+       public void setConfiguration(Configuration configuration) {
+               this.configuration = configuration;
+       }
+}
index 000b381..9280322 100644 (file)
@@ -407,6 +407,25 @@ public class SdcCsarHelperImpl implements ISdcCsarHelper {
                return nodeTemplate.getTypeDefinition().getType();
        }
 
+       @Override
+       public String getConformanceLevel() {
+               LinkedHashMap<String, Object> csarMeta = toscaTemplate.getMetaProperties("csar.meta");
+               if (csarMeta == null){
+                       log.warn("No csar.meta file is found in CSAR - this file should hold the conformance level of the CSAR. This might be OK for older CSARs.");
+                       return null;
+               }
+
+               Object conformanceLevel = csarMeta.get("SDC-TOSCA-Definitions-Version");
+               if (conformanceLevel != null){
+                       String confLevelStr = conformanceLevel.toString();
+                       log.debug("CSAR conformance level is {}", confLevelStr);
+                       return confLevelStr;
+               } else {
+                       log.error("Invalid csar.meta file - no entry found for SDC-TOSCA-Definitions-Version key. This entry should hold the conformance level.");
+                       return null;
+               }
+       }
+
        /************************************* helper functions ***********************************/
        private List<NodeTemplate> getNodeTemplateBySdcType(NodeTemplate nodeTemplate, String sdcType){
                if (nodeTemplate == null)  {
index 3f62e12..62b5acb 100644 (file)
@@ -1,49 +1,74 @@
 package org.openecomp.sdc.tosca.parser.impl;\r
 \r
-import java.io.IOException;\r
-import java.util.List;\r
-\r
+import org.openecomp.sdc.tosca.parser.api.ConformanceLevel;\r
 import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper;\r
+import org.openecomp.sdc.tosca.parser.config.Configuration;\r
+import org.openecomp.sdc.tosca.parser.config.ConfigurationManager;\r
 import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;\r
-import org.openecomp.sdc.toscaparser.api.NodeTemplate;\r
+import org.openecomp.sdc.tosca.parser.utils.GeneralUtility;\r
 import org.openecomp.sdc.toscaparser.api.ToscaTemplate;\r
 import org.openecomp.sdc.toscaparser.api.common.JToscaException;\r
 \r
-public class SdcToscaParserFactory{\r
-\r
-       private static SdcToscaParserFactory instance;\r
-       \r
-       private SdcToscaParserFactory(){}\r
-\r
-       /**\r
-        * Get an SdcToscaParserFactory instance.\r
-        * After parsing work is done, it must be closed using the close() method.\r
-        */\r
-       public static SdcToscaParserFactory getInstance() {\r
-               if (instance == null) {\r
-                       synchronized (SdcToscaParserFactory.class) {\r
-                               if (instance == null) {\r
-                                       instance = new SdcToscaParserFactory();\r
-                               }\r
-                       }\r
-               }\r
-               return instance;\r
-       }\r
-\r
-       /**\r
-        * Get an ISdcCsarHelper object for this CSAR file.\r
-        * @param csarPath - the path to CSAR file.\r
-        * @return ISdcCsarHelper object.\r
-        * @throws SdcToscaParserException - in case the path or CSAR are invalid.\r
-        * @throws JToscaException \r
-        */\r
-       public ISdcCsarHelper getSdcCsarHelper(String csarPath) throws SdcToscaParserException, JToscaException, IOException{\r
-               //TODO add logic to check if legal file and csar\r
-               synchronized (SdcToscaParserFactory.class) {\r
-                       ToscaTemplate tosca = new ToscaTemplate(csarPath, null, true, null);\r
-                       SdcCsarHelperImpl sdcCsarHelperImpl = new SdcCsarHelperImpl(tosca);\r
-                       return sdcCsarHelperImpl;\r
-               }\r
-       }\r
+import java.io.IOException;\r
+\r
+public class SdcToscaParserFactory {\r
+\r
+    private static volatile SdcToscaParserFactory instance;\r
+    private static Configuration configuration;\r
+\r
+    private SdcToscaParserFactory() {\r
+\r
+    }\r
+\r
+    /**\r
+     * Get an SdcToscaParserFactory instance.\r
+     * After parsing work is done, it must be closed using the close() method.\r
+     */\r
+    public static SdcToscaParserFactory getInstance() throws IOException {\r
+        if (instance == null) {\r
+            synchronized (SdcToscaParserFactory.class) {\r
+                if (instance == null) {\r
+                    instance = new SdcToscaParserFactory();\r
+                    configuration = ConfigurationManager.getInstance().getConfiguration();\r
+                }\r
+            }\r
+        }\r
+        return instance;\r
+    }\r
+\r
+    /**\r
+     * Get an ISdcCsarHelper object for this CSAR file.\r
+     *\r
+     * @param csarPath - the absolute path to CSAR file.\r
+     * @return ISdcCsarHelper object.\r
+     * @throws SdcToscaParserException - in case the path or CSAR are invalid.\r
+     * @throws JToscaException\r
+     */\r
+    public ISdcCsarHelper getSdcCsarHelper(String csarPath) throws JToscaException, IOException, SdcToscaParserException {\r
+        //TODO add logic to check if legal file and csar\r
+        synchronized (SdcToscaParserFactory.class) {\r
+\r
+\r
+            ToscaTemplate tosca = new ToscaTemplate(csarPath, null, true, null);\r
+            SdcCsarHelperImpl sdcCsarHelperImpl = new SdcCsarHelperImpl(tosca);\r
+            if (sdcCsarHelperImpl != null) {\r
+                validateCsarVersion(sdcCsarHelperImpl.getConformanceLevel());\r
+            }\r
+            return sdcCsarHelperImpl;\r
+        }\r
+    }\r
+\r
+    private void validateCsarVersion(String cSarVersion) throws SdcToscaParserException {\r
+        ConformanceLevel level = configuration.getConformanceLevel();\r
+        String minVersion = level.getMinVersion();\r
+        String maxVersion = level.getMaxVersion();\r
+        if (cSarVersion != null) {\r
+            if ((GeneralUtility.conformanceLevelCompare(cSarVersion, minVersion) < 0) || (GeneralUtility.conformanceLevelCompare(cSarVersion, maxVersion) > 0)) {\r
+                throw new SdcToscaParserException("Model is not supported. Parser supports versions " + minVersion + " to " + maxVersion);\r
+            }\r
+        } else {\r
+            throw new SdcToscaParserException("Model is not supported. Parser supports versions " + minVersion + " to " + maxVersion);\r
+        }\r
+    }\r
 \r
 }
\ No newline at end of file
index e4d92f5..da066fc 100644 (file)
@@ -1,8 +1,53 @@
 package org.openecomp.sdc.tosca.parser.utils;
 
+import java.util.Arrays;
+
 public class GeneralUtility {
-       
-       public static boolean isEmptyString(String str){
-               return str == null || str.trim().isEmpty();
-       }
+
+    public static boolean isEmptyString(String str) {
+        return str == null || str.trim().isEmpty();
+    }
+
+
+    /**
+     * Compares two version strings.
+     * <p>
+     * Use this instead of String.compareTo() for a non-lexicographical
+     * comparison that works for version strings. e.g. "1.10".compareTo("1.6").
+     *
+     * @param str1 a string of ordinal numbers separated by decimal points.
+     * @param str2 a string of ordinal numbers separated by decimal points.
+     * @return The result is a negative integer if str1 is _numerically_ less than str2.
+     * The result is a positive integer if str1 is _numerically_ greater than str2.
+     * The result is zero if the strings are _numerically_ equal.
+     * @note It does not work if "1.10" is supposed to be equal to "1.10.0".
+     */
+    public static int conformanceLevelCompare(String str1, String str2) {
+        String[] vals1 = str1.split("\\.");
+        String[] vals2 = str2.split("\\.");
+        int i = 0;
+        // set index to first non-equal ordinal or length of shortest version string
+        while (i < vals1.length && i < vals2.length && vals1[i].equals(vals2[i])) {
+            i++;
+        }
+        // compare first non-equal ordinal number
+        if (i < vals1.length && i < vals2.length) {
+            int diff = Integer.valueOf(vals1[i]).compareTo(Integer.valueOf(vals2[i]));
+            return Integer.signum(diff);
+        }
+        //in case of 0 after the . e.g: "3" = "3.0" or "3.0.0.0" = "3.0"
+        str2 = str2.substring(i).replace(".", "");
+        str1 = str1.substring(i).replace(".", "");
+        if ((!(str1.equals("")))  && Integer.valueOf(str1) == 0){
+            vals1 = Arrays.copyOf(vals1, i);
+        }
+        if ((!(str2.equals("")))  && Integer.valueOf(str2) == 0){
+            vals2 = Arrays.copyOf(vals2, i);
+        }
+
+        // the strings are equal or one string is a substring of the other
+        // e.g. "1.2.3" = "1.2.3" or "1.2.3" < "1.2.3.4"
+        return Integer.signum(vals1.length - vals2.length);
+    }
+
 }
diff --git a/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/utils/YamlToObjectConverter.java b/sdc-tosca-parser/src/main/java/org/openecomp/sdc/tosca/parser/utils/YamlToObjectConverter.java
new file mode 100644 (file)
index 0000000..44444d2
--- /dev/null
@@ -0,0 +1,123 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * sdc-distribution-client
+ * ================================================================================
+ * Copyright (C) 2017 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.openecomp.sdc.tosca.parser.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.yaml.snakeyaml.Yaml;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.HashMap;
+
+public class YamlToObjectConverter {
+
+       private static Logger log = LoggerFactory
+                       .getLogger(YamlToObjectConverter.class.getName());
+
+       private static HashMap<String, Yaml> yamls = new HashMap<String, Yaml>();
+
+       private static Yaml defaultYaml = new Yaml();
+
+       private static <T> Yaml getYamlByClassName(Class<T> className) {
+
+               Yaml yaml = yamls.get(className.getName());
+               if (yaml == null) {
+                       yaml = defaultYaml;
+               }
+
+               return yaml;
+       }
+
+       public <T> T convert(String dirPath, Class<T> className,
+                       String configFileName) {
+
+               T config = null;
+
+               try {
+
+                       String fullFileName = dirPath + File.separator + configFileName;
+
+                       config = convert(fullFileName, className);
+
+               } catch (Exception e) {
+                       log.error("Failed to convert yaml file " + configFileName
+                                       + " to object.", e);
+               } 
+
+               return config;
+       }
+
+       public <T> T convert(String fullFileName, Class<T> className) {
+
+               T config = null;
+
+               Yaml yaml = getYamlByClassName(className);
+
+               InputStream in = null;
+               try {
+
+                       File f = new File(fullFileName);
+                       if (false == f.exists()) {
+                               log.warn("The file " + fullFileName
+                                               + " cannot be found. Ignore reading configuration.");
+                               return null;
+                       }
+                       in = Files.newInputStream(Paths.get(fullFileName));
+
+                       config = yaml.loadAs(in, className);
+
+                       // System.out.println(config.toString());
+               } catch (Exception e) {
+                       log.error("Failed to convert yaml file " + fullFileName
+                                       + " to object.", e);
+               } finally {
+                       if (in != null) {
+                               try {
+                                       in.close();
+                               } catch (IOException e) {
+                                       // TODO Auto-generated catch block
+                                       e.printStackTrace();
+                               }
+                       }
+               }
+
+               return config;
+       }
+
+       public <T> T convertFromString(String yamlContents, Class<T> className) {
+
+               T config = null;
+
+               Yaml yaml = getYamlByClassName(className);
+
+               try {
+                       config = yaml.loadAs(yamlContents, className);
+               } catch (Exception e){
+                       log.error("Failed to convert YAML {} to object." , yamlContents, e);
+               }
+
+               return config;
+       }
+}
diff --git a/sdc-tosca-parser/src/main/resources/config/configuration.yaml b/sdc-tosca-parser/src/main/resources/config/configuration.yaml
new file mode 100644 (file)
index 0000000..379e962
--- /dev/null
@@ -0,0 +1,3 @@
+conformanceLevel:
+  minVersion: '3.0'
+  maxVersion: '3.0'
\ No newline at end of file
index 450e6b1..373ff97 100644 (file)
 package org.openecomp.sdc.impl;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.rules.TestName;
+import java.io.File;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
-public class BasicTest {
+import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper;
+import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory;
+import org.testng.ITestContext;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterSuite;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeSuite;
 
-    @Rule
-    public TestName testName = new TestName();
+public abstract class BasicTest {
 
-    @Before
-    public void setup(){
-        System.out.println("#### Starting Test " + testName.getMethodName() + " ###########");
+    public static final String VF_CUSTOMIZATION_UUID = "56179cd8-de4a-4c38-919b-bbc4452d2d73";
+    static SdcToscaParserFactory factory;
+    static ISdcCsarHelper rainyCsarHelperSingleVf;
+    static ISdcCsarHelper rainyCsarHelperMultiVfs;
+    static ISdcCsarHelper fdntCsarHelper;
+    static Map<String, HashMap<String, List<String>>> fdntCsarHelper_Data;
+    @BeforeSuite
+    public static void init(ITestContext context) throws Exception {
+
+        factory = SdcToscaParserFactory.getInstance();
+        long startTime = System.currentTimeMillis();
+        long estimatedTime = System.currentTimeMillis() - startTime;
+        System.out.println("Time to init factory " + estimatedTime);
+
+        String fileStr1 = BasicTest.class.getClassLoader().getResource("csars/service-ServiceFdnt-with-allotted.csar").getFile();
+        File file1 = new File(fileStr1);
+        startTime = System.currentTimeMillis();
+
+        fdntCsarHelper = factory.getSdcCsarHelper(file1.getAbsolutePath());
+
+        estimatedTime = System.currentTimeMillis() - startTime;
+        System.out.println("init CSAR Execution time: " + estimatedTime);
+
+        String fileStr2 = BasicTest.class.getClassLoader().getResource("csars/service-ServiceFdnt-csar-rainy.csar").getFile();
+        File file2 = new File(fileStr2);
+        rainyCsarHelperMultiVfs = factory.getSdcCsarHelper(file2.getAbsolutePath());
+
+        String fileStr3 = BasicTest.class.getClassLoader().getResource("csars/service-ServiceFdnt-csar.csar").getFile();
+        File file3 = new File(fileStr3);
+        rainyCsarHelperSingleVf = factory.getSdcCsarHelper(file3.getAbsolutePath());
+        
+        /* Objects for QA Validation Tests */
+        
+       fdntCsarHelper_Data = new HashMap<String, HashMap<String, List<String>>>(){
+               {
+                       HashMap<String, List<String>> FDNT ;
+                       
+                       FDNT = new HashMap<String, List<String>>();
+                       FDNT.put("VF Name", Arrays.asList("FDNT 1"));
+                       FDNT.put("capabilities", Arrays.asList(
+                                       "dnt_fw_rhrg.binding_DNT_FW_INT_DNS_TRUSTED_RVMI",
+                                       "dnt_fw_rhrg.host_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.binding_DNT_FW_CORE_DIRECT_RVMI",
+                                       "dnt_fw_rhrg.scalable_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.endpoint_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.binding_DNT_FW_INTERNET_DNS_DIRECT_RVMI",                                  
+                                       "dnt_fw_rhrg.os_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.feature",
+                                       "dnt_fw_rhrg.binding_DNT_FW_OAM_PROTECTED_RVMI",
+                                       "dnt_fw_rhrg.binding_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.binding_DNT_FW_NIMBUS_HSL_RVMI",
+                                       "dnt_fw_rsg_si_1.feature"));
+                       FDNT.put("requirements", Arrays.asList(
+                                       "DNT_FW_RSG_SI_1.dependency",
+                                       "DNT_FW_RHRG.dependency",
+                                       "DNT_FW_RHRG.link_DNT_FW_INTERNET_DNS_DIRECT_RVMI",
+                                       "DNT_FW_RHRG.link_DNT_FW_CORE_DIRECT_RVMI",
+                                       "DNT_FW_RHRG.link_DNT_FW_OAM_PROTECTED_RVMI",
+                                       "DNT_FW_RHRG.link_DNT_FW_INT_DNS_TRUSTED_RVMI", 
+                                       "DNT_FW_RHRG.link_DNT_FW_NIMBUS_HSL_RVMI",
+                                       "DNT_FW_RSG_SI_1.port",
+                                       "DNT_FW_RHRG.local_storage_DNT_FW_SERVER"));
+                       FDNT.put("capabilitiesTypes", Arrays.asList(
+                                       "tosca.capabilities.network.Bindable",
+                                       "tosca.capabilities.OperatingSystem",
+                                       "tosca.capabilities.network.Bindable",                                  
+                                       "tosca.capabilities.Scalable",
+                                       "tosca.capabilities.Endpoint.Admin",
+                                       "tosca.capabilities.network.Bindable",
+                                       "tosca.capabilities.network.Bindable",
+                                       "tosca.capabilities.network.Bindable",
+                                       "tosca.capabilities.Node",
+                                       "tosca.capabilities.Container",
+                                       "tosca.nodes.SoftwareComponent",
+                                       "tosca.capabilities.network.Bindable"));
+                       FDNT.put("capabilityProperties", Arrays.asList(
+                                       "dnt_fw_rhrg.binding_DNT_FW_INT_DNS_TRUSTED_RVMI:none",
+                                       "dnt_fw_rhrg.host_DNT_FW_SERVER:num_cpus,integer,false;",
+                                       "dnt_fw_rhrg.binding_DNT_FW_CORE_DIRECT_RVMI",
+                                       "dnt_fw_rhrg.scalable_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.endpoint_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.binding_DNT_FW_INTERNET_DNS_DIRECT_RVMI",                                  
+                                       "dnt_fw_rhrg.os_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.feature",
+                                       "dnt_fw_rhrg.binding_DNT_FW_OAM_PROTECTED_RVMI",
+                                       "dnt_fw_rhrg.binding_DNT_FW_SERVER",
+                                       "dnt_fw_rhrg.binding_DNT_FW_NIMBUS_HSL_RVMI",
+                                       "dnt_fw_rsg_si_1.feature"));
+                       
+                       put("FDNT", FDNT);                      
+               }
+       };
+    };
+
+    @AfterSuite
+    public static void after(){
+        long startTime = System.currentTimeMillis();
+        long estimatedTime = System.currentTimeMillis() - startTime;
+        System.out.println("close Execution time: "+estimatedTime);
+    };
+
+    @BeforeMethod
+    public void setupTest(Method method) {
+        System.out.println("#### Starting Test " + method.getName() + " ###########");
     }
 
-    @After
-    public void tearDown(){
-        System.out.println("#### Ended test " + testName.getMethodName() + " ###########");
+    @AfterMethod
+    public void tearDown(Method method){
+        System.out.println("#### Ended test " + method.getName() + " ###########");
     }
 }
diff --git a/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserConfigurationTest.java b/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserConfigurationTest.java
new file mode 100644 (file)
index 0000000..0e6387d
--- /dev/null
@@ -0,0 +1,21 @@
+package org.openecomp.sdc.impl;
+
+import org.testng.annotations.Test;
+import org.openecomp.sdc.tosca.parser.config.Configuration;
+import org.openecomp.sdc.tosca.parser.config.ConfigurationManager;
+
+import java.io.IOException;
+
+import static org.testng.Assert.assertNotNull;
+
+public class ToscaParserConfigurationTest extends BasicTest {
+
+    @Test
+    public void testConfigurationConformanceLevel() throws IOException {
+        Configuration config = ConfigurationManager.getInstance().getConfiguration();
+        assertNotNull(config);
+        assertNotNull(config.getConformanceLevel());
+        assertNotNull(config.getConformanceLevel().getMaxVersion());
+        assertNotNull(config.getConformanceLevel().getMinVersion());
+    }
+}
diff --git a/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserGeneralUtilTest.java b/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserGeneralUtilTest.java
new file mode 100644 (file)
index 0000000..b903867
--- /dev/null
@@ -0,0 +1,23 @@
+package org.openecomp.sdc.impl;
+
+import org.testng.annotations.Test;
+import org.openecomp.sdc.tosca.parser.utils.GeneralUtility;
+
+import static org.testng.Assert.assertTrue;
+
+public class ToscaParserGeneralUtilTest extends BasicTest {
+
+    @Test
+    public void testVersionCompare() {
+        assertTrue(GeneralUtility.conformanceLevelCompare("2", "3.0") < 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("0.5", "0.5") == 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("0.5", "0.6") < 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("1.5", "2.6") < 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("0.2", "0.1") > 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("2", "1.15") > 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("2", "2.0.0") == 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("2.0", "2.0.0.0") == 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("2.", "2.0.0.0") == 0);
+        assertTrue(GeneralUtility.conformanceLevelCompare("2.0", "2.0.0.2") < 0);
+    }
+}
index 0bda21e..706c864 100644 (file)
@@ -1,20 +1,20 @@
 package org.openecomp.sdc.impl;
 
-import org.junit.Test;
+import org.testng.annotations.Test;
 import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
 import org.openecomp.sdc.toscaparser.api.Group;
 import org.openecomp.sdc.toscaparser.api.elements.Metadata;
 
 import java.util.List;
 
-import static org.junit.Assert.*;
+import static org.testng.Assert.*;
 
 public class ToscaParserGroupTest extends BasicTest{
 
     //region getVfModulesByVf
     @Test
     public void testVfModulesFromVf(){
-        List<Group> vfModulesByVf = ToscaParserTestSuite.fdntCsarHelper.getVfModulesByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
+        List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
         assertEquals(2, vfModulesByVf.size());
         for (Group group : vfModulesByVf){
             assertTrue(group.getName().startsWith("fdnt1"));
@@ -25,7 +25,7 @@ public class ToscaParserGroupTest extends BasicTest{
 
     @Test
     public void testGetGroupMetadata(){
-        List<Group> vfModulesByVf = ToscaParserTestSuite.fdntCsarHelper.getVfModulesByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
+        List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
         boolean found = false;
         for (Group group : vfModulesByVf){
             if (group.getName().equals("fdnt1..Fdnt..base_stsi_dnt_frwl..module-0")){
@@ -40,7 +40,7 @@ public class ToscaParserGroupTest extends BasicTest{
 
     @Test
     public void testGetGroupEmptyMetadata(){
-        List<Group> vfModulesByVf = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getVfModulesByVf("56179cd8-de4a-4c38-919b-bbc4452d2d72");
+        List<Group> vfModulesByVf = rainyCsarHelperMultiVfs.getVfModulesByVf("56179cd8-de4a-4c38-919b-bbc4452d2d72");
         boolean found = false;
         for (Group group : vfModulesByVf){
             if (group.getName().equals("fdnt1..Fdnt..base_stsi_dnt_frwl..module-0")){
@@ -54,14 +54,14 @@ public class ToscaParserGroupTest extends BasicTest{
 
     @Test
     public void testGetVfModuleNonExisitingVf() {
-        List<Group> vfModulesByVf = ToscaParserTestSuite.rainyCsarHelperSingleVf.getVfModulesByVf("dummy");
+        List<Group> vfModulesByVf = rainyCsarHelperSingleVf.getVfModulesByVf("dummy");
         assertNotNull(vfModulesByVf);
         assertEquals(0, vfModulesByVf.size());
     }
 
     @Test
     public void testGetVfModuleNullVf() {
-        List<Group> vfModulesByVf = ToscaParserTestSuite.rainyCsarHelperSingleVf.getVfModulesByVf(null);
+        List<Group> vfModulesByVf = rainyCsarHelperSingleVf.getVfModulesByVf(null);
         assertNotNull(vfModulesByVf);
         assertEquals(0, vfModulesByVf.size());
     }
@@ -70,28 +70,28 @@ public class ToscaParserGroupTest extends BasicTest{
     //region getGroupPropertyLeafValue
     @Test
     public void testGroupFlatProperty() throws SdcToscaParserException {
-        List<Group> vfModulesByVf = ToscaParserTestSuite.fdntCsarHelper.getVfModulesByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
-        String volumeGroup = ToscaParserTestSuite.fdntCsarHelper.getGroupPropertyLeafValue(vfModulesByVf.get(0), "volume_group");
+        List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
+        String volumeGroup = fdntCsarHelper.getGroupPropertyLeafValue(vfModulesByVf.get(0), "volume_group");
         assertEquals("false", volumeGroup);
     }
 
     @Test
     public void testGroupPropertyLeafValueByNullProperty() {
-        List<Group> vfModulesByVf = ToscaParserTestSuite.fdntCsarHelper.getVfModulesByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
-        String groupProperty = ToscaParserTestSuite.fdntCsarHelper.getGroupPropertyLeafValue(vfModulesByVf.get(0), null);
+        List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
+        String groupProperty = fdntCsarHelper.getGroupPropertyLeafValue(vfModulesByVf.get(0), null);
         assertNull(groupProperty);
     }
 
     @Test
     public void testGroupPropertyLeafValueByDummyProperty() {
-        List<Group> vfModulesByVf = ToscaParserTestSuite.fdntCsarHelper.getVfModulesByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
-        String groupProperty = ToscaParserTestSuite.fdntCsarHelper.getGroupPropertyLeafValue(vfModulesByVf.get(0), "XXX");
+        List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
+        String groupProperty = fdntCsarHelper.getGroupPropertyLeafValue(vfModulesByVf.get(0), "XXX");
         assertNull(groupProperty);
     }
 
     @Test
     public void testGroupPropertyLeafValueByNullGroup() {
-        String groupProperty = ToscaParserTestSuite.fdntCsarHelper.getGroupPropertyLeafValue(null, "volume_group");
+        String groupProperty = fdntCsarHelper.getGroupPropertyLeafValue(null, "volume_group");
         assertNull(groupProperty);
     }
     //endregion
index 9321bc6..802d5b8 100644 (file)
@@ -1,18 +1,18 @@
 package org.openecomp.sdc.impl;
 
-import org.junit.Test;
+import org.testng.annotations.Test;
 import org.openecomp.sdc.toscaparser.api.elements.Metadata;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
 
 public class ToscaParserMetadataTest extends BasicTest {
 
     //region getServiceMetadata
     @Test
     public void testGetServiceMetadata() {
-        Metadata serviceMetadata = ToscaParserTestSuite.fdntCsarHelper.getServiceMetadata();
+        Metadata serviceMetadata = fdntCsarHelper.getServiceMetadata();
         assertNotNull(serviceMetadata);
         assertEquals("78c72999-1003-4a35-8534-bbd7d96fcae3", serviceMetadata.getValue("invariantUUID"));
         assertEquals("Service FDNT", serviceMetadata.getValue("name"));
@@ -21,7 +21,7 @@ public class ToscaParserMetadataTest extends BasicTest {
 
     @Test
     public void testServiceMetadata() {
-        Metadata metadata = ToscaParserTestSuite.rainyCsarHelperSingleVf.getServiceMetadata();
+        Metadata metadata = rainyCsarHelperSingleVf.getServiceMetadata();
         assertNull(metadata);
     }
     //endregion
@@ -29,30 +29,39 @@ public class ToscaParserMetadataTest extends BasicTest {
     //region getMetadataPropertyValue
     @Test
     public void testGetMetadataProperty(){
-        Metadata serviceMetadata = ToscaParserTestSuite.fdntCsarHelper.getServiceMetadata();
-        String metadataPropertyValue = ToscaParserTestSuite.fdntCsarHelper.getMetadataPropertyValue(serviceMetadata, "invariantUUID");
+        Metadata serviceMetadata = fdntCsarHelper.getServiceMetadata();
+        String metadataPropertyValue = fdntCsarHelper.getMetadataPropertyValue(serviceMetadata, "invariantUUID");
         assertEquals("78c72999-1003-4a35-8534-bbd7d96fcae3", metadataPropertyValue);
     }
 
     @Test
     public void testGetNullMetadataPropertyValue() {
-        String value = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getMetadataPropertyValue(null, "XXX");
+        String value = rainyCsarHelperMultiVfs.getMetadataPropertyValue(null, "XXX");
         assertNull(value);
     }
 
     @Test
     public void testGetMetadataByNullPropertyValue() {
-        Metadata metadata = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceMetadata();
-        String value = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getMetadataPropertyValue(metadata, null);
+        Metadata metadata = rainyCsarHelperMultiVfs.getServiceMetadata();
+        String value = rainyCsarHelperMultiVfs.getMetadataPropertyValue(metadata, null);
         assertNull(value);
     }
 
     @Test
     public void testGetMetadataByEmptyPropertyValue() {
-        Metadata metadata =  ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceMetadata();
-        String value = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getMetadataPropertyValue(metadata, "");
+        Metadata metadata =  rainyCsarHelperMultiVfs.getServiceMetadata();
+        String value = rainyCsarHelperMultiVfs.getMetadataPropertyValue(metadata, "");
         assertNull(value);
     }
     //endregion
 
+    //region getConformanceLevel
+    @Test
+    public void testSunnyGetConformanceLevel() {
+        String conformanceLevel = fdntCsarHelper.getConformanceLevel();
+        assertNotNull(conformanceLevel);
+        assertEquals("3.0", conformanceLevel);
+    }
+    //endregion
+
 }
index 8c748f6..9a78ed5 100644 (file)
@@ -1,14 +1,14 @@
 package org.openecomp.sdc.impl;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.lang3.tuple.Pair;
-import org.junit.Test;
+import org.testng.annotations.Test;
 import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
 import org.openecomp.sdc.toscaparser.api.Group;
 import org.openecomp.sdc.toscaparser.api.NodeTemplate;
@@ -18,7 +18,7 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getServiceVfList
        @Test
        public void testNumberOfVfSunnyFlow() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.fdntCsarHelper.getServiceVfList();
+               List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
                assertNotNull(serviceVfList);
                assertEquals(2, serviceVfList.size());
        }
@@ -26,7 +26,7 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        @Test
        public void testSingleVFWithNotMetadata() throws SdcToscaParserException {
                //If there is no metadata on VF level - There is no VF's because the type is taken from metadata values.
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.rainyCsarHelperSingleVf.getServiceVfList();
+               List<NodeTemplate> serviceVfList = rainyCsarHelperSingleVf.getServiceVfList();
                assertNotNull(serviceVfList);
                assertEquals(0, serviceVfList.size());
        }
@@ -35,54 +35,54 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getNodeTemplatePropertyLeafValue
        @Test
        public void testNodeTemplateFlatProperty() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.fdntCsarHelper.getServiceVfList();
-               assertEquals("2", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "availability_zone_max_count"));
-               assertEquals("3", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "max_instances"));
-               assertEquals("some code", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_naming_code"));
+               List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
+               assertEquals("2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "availability_zone_max_count"));
+               assertEquals("3", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "max_instances"));
+               assertEquals("some code", fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_naming_code"));
        }
 
        @Test
        public void testNodeTemplateNestedProperty() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVlList = ToscaParserTestSuite.fdntCsarHelper.getServiceVlList();
+               List<NodeTemplate> serviceVlList = fdntCsarHelper.getServiceVlList();
                NodeTemplate nodeTemplate = serviceVlList.get(0);
                //System.out.println("node template " + nodeTemplate.toString());
-               assertEquals("24", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_assignments#ipv4_subnet_default_assignment#cidr_mask"));
-               assertEquals("7a6520b-9982354-ee82992c-105720", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_flows#vpn_binding"));
+               assertEquals("24", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_assignments#ipv4_subnet_default_assignment#cidr_mask"));
+               assertEquals("7a6520b-9982354-ee82992c-105720", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "network_flows#vpn_binding"));
        }
        
        @Test
        public void testNodeTemplateNestedPropertyFromInput() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.fdntCsarHelper.getServiceVfList();
+               List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
                NodeTemplate nodeTemplate = serviceVfList.get(0);
                //System.out.println("node template " + nodeTemplate.toString());
-               assertEquals("true", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#ecomp_generated_naming"));
-               assertEquals("FDNT_instance_VF_2", ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#naming_policy"));
+               assertEquals("true", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#ecomp_generated_naming"));
+               assertEquals("FDNT_instance_VF_2", fdntCsarHelper.getNodeTemplatePropertyLeafValue(nodeTemplate, "nf_naming#naming_policy"));
        }
 
        @Test
        public void testNodeTemplateNestedPropertyNotExists() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.fdntCsarHelper.getServiceVfList();
-               String nodeTemplatePropertyLeafValue = ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_role#nf_naming#kuku");
+               List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
+               String nodeTemplatePropertyLeafValue = fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "nf_role#nf_naming#kuku");
                assertNull(nodeTemplatePropertyLeafValue);
        }
 
        @Test
        public void testNodeTemplateFlatPropertyByNotFoundProperty() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceVfList();
-               String nodeTemplatePropertyLeafValue = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "XXXX");
+               List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
+               String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), "XXXX");
                assertNull(nodeTemplatePropertyLeafValue);
        }
 
        @Test
        public void testNodeTemplateFlatPropertyByNullProperty() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceVfList();
-               String nodeTemplatePropertyLeafValue = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), null);
+               List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
+               String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(serviceVfList.get(0), null);
                assertNull(nodeTemplatePropertyLeafValue);
        }
 
        @Test
        public void testNodeTemplateFlatPropertyByNullNodeTemplate() throws SdcToscaParserException {
-               String nodeTemplatePropertyLeafValue = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(null, "availability_zone_max_count");
+               String nodeTemplatePropertyLeafValue = rainyCsarHelperMultiVfs.getNodeTemplatePropertyLeafValue(null, "availability_zone_max_count");
                assertNull(nodeTemplatePropertyLeafValue);
        }
        //endregion
@@ -90,14 +90,14 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getServiceVlList
        @Test
        public void testServiceVl() {
-               List<NodeTemplate> vlList = ToscaParserTestSuite.fdntCsarHelper.getServiceVlList();
+               List<NodeTemplate> vlList = fdntCsarHelper.getServiceVlList();
                assertEquals(1, vlList.size());
                assertEquals("exVL", vlList.get(0).getName());
        }
 
        @Test
        public void testNumberOfVLRainyFlow() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVlList = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceVlList();
+               List<NodeTemplate> serviceVlList = rainyCsarHelperMultiVfs.getServiceVlList();
                assertNotNull(serviceVlList);
                assertEquals(0, serviceVlList.size());
        }
@@ -106,21 +106,21 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getServiceNodeTemplatesByType
        @Test
        public void testServiceNodeTemplatesByType() throws SdcToscaParserException {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.fdntCsarHelper.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Fdnt");
+               List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceNodeTemplatesByType("org.openecomp.resource.vf.Fdnt");
                assertNotNull(serviceVfList);
                assertEquals(1, serviceVfList.size());
        }
 
        @Test
        public void testServiceNodeTemplatesByNull() {
-               List<NodeTemplate> nodeTemplates = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType(null);
+               List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType(null);
                assertNotNull(nodeTemplates);
                assertEquals(0, nodeTemplates.size());
        }
 
        @Test
        public void testServiceNodeTemplatesByNotFoundProperty() {
-               List<NodeTemplate> nodeTemplates = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType("XXX");
+               List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getServiceNodeTemplatesByType("XXX");
                assertNotNull(nodeTemplates);
                assertEquals(0, nodeTemplates.size());
        }
@@ -129,14 +129,14 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getTypeOfNodeTemplate
        @Test
        public void testGetTypeOfNodeTemplate() {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.fdntCsarHelper.getServiceVfList();
-               String typeOfNodeTemplate = ToscaParserTestSuite.fdntCsarHelper.getTypeOfNodeTemplate(serviceVfList.get(0));
+               List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
+               String typeOfNodeTemplate = fdntCsarHelper.getTypeOfNodeTemplate(serviceVfList.get(0));
                assertEquals("org.openecomp.resource.vf.Fdnt", typeOfNodeTemplate);
        }
 
        @Test
        public void testGetTypeOfNullNodeTemplate() {
-               String typeOfNodeTemplate = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getTypeOfNodeTemplate(null);
+               String typeOfNodeTemplate = rainyCsarHelperMultiVfs.getTypeOfNodeTemplate(null);
                assertNull(typeOfNodeTemplate);
        }
        //endregion
@@ -144,13 +144,13 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getAllottedResources
        @Test
        public void testGetAllottedResources() {
-               List<NodeTemplate> allottedResources = ToscaParserTestSuite.fdntCsarHelper.getAllottedResources();
+               List<NodeTemplate> allottedResources = fdntCsarHelper.getAllottedResources();
                assertEquals(1, allottedResources.size());
        }
 
        @Test
        public void testGetAllottedResourcesZero() {
-               List<NodeTemplate> allottedResources = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getAllottedResources();
+               List<NodeTemplate> allottedResources = rainyCsarHelperMultiVfs.getAllottedResources();
                assertNotNull(allottedResources);
                assertEquals(0, allottedResources.size());
        }
@@ -159,20 +159,20 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getVfcListByVf
        @Test
        public void testGetVfcFromVf() {
-               List<NodeTemplate> vfcListByVf = ToscaParserTestSuite.fdntCsarHelper.getVfcListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
+               List<NodeTemplate> vfcListByVf = fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID);
                assertEquals(2, vfcListByVf.size());
        }
 
        @Test
        public void testVfcListByNull() {
-               List<NodeTemplate> vfcList = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getVfcListByVf(null);
+               List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf(null);
                assertNotNull(vfcList);
                assertEquals(0, vfcList.size());
        }
 
        @Test
        public void testVfcListByNotFoundProperty() {
-               List<NodeTemplate> vfcList = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getVfcListByVf("XXX");
+               List<NodeTemplate> vfcList = rainyCsarHelperMultiVfs.getVfcListByVf("XXX");
                assertNotNull(vfcList);
                assertEquals(0, vfcList.size());
        }
@@ -181,7 +181,7 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getCpListByVf
        @Test
        public void testGetCpFromVf() {
-               List<NodeTemplate> cpListByVf = ToscaParserTestSuite.fdntCsarHelper.getCpListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
+               List<NodeTemplate> cpListByVf = fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID);
                assertEquals(1, cpListByVf.size());
                NodeTemplate nodeTemplate = cpListByVf.get(0);
                assertEquals("DNT_PORT", nodeTemplate.getName());
@@ -189,14 +189,14 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
 
        @Test
        public void testGetCpFromVfByNullId() {
-               List<NodeTemplate> cpListByVf = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getCpListByVf(null);
+               List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf(null);
                assertNotNull(cpListByVf);
                assertEquals(0, cpListByVf.size());
        }
 
        @Test
        public void testGetCpFromVfXxx() {
-               List<NodeTemplate> cpListByVf = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getCpListByVf("XXXXX");
+               List<NodeTemplate> cpListByVf = rainyCsarHelperMultiVfs.getCpListByVf("XXXXX");
                assertNotNull(cpListByVf);
                assertEquals(0, cpListByVf.size());
        }
@@ -205,7 +205,7 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getNodeTemplatePairsByReqName
        @Test
        public void testGetNodeTemplatePairsByReqName() {
-               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePairsByReqName(ToscaParserTestSuite.fdntCsarHelper.getCpListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), ToscaParserTestSuite.fdntCsarHelper.getVfcListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), "binding");
+               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
                assertNotNull(nodeTemplatePairsByReqName);
                assertEquals(1, nodeTemplatePairsByReqName.size());
                Pair<NodeTemplate, NodeTemplate> pair = nodeTemplatePairsByReqName.get(0);
@@ -217,40 +217,40 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
 
        @Test
        public void testGetNodeTemplatePairsByReqNameWithNullVF() {
-               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePairsByReqName(
-                               null, ToscaParserTestSuite.fdntCsarHelper.getVfcListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), "binding");
+               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
+                               null, fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
                assertNotNull(nodeTemplatePairsByReqName);
                assertEquals(0, nodeTemplatePairsByReqName.size());
        }
 
        @Test
        public void testGetNodeTemplatePairsByReqNameWithEmptyVF() {
-               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePairsByReqName(
-                               new ArrayList<>(), ToscaParserTestSuite.fdntCsarHelper.getVfcListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), "binding");
+               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
+                               new ArrayList<>(), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "binding");
                assertNotNull(nodeTemplatePairsByReqName);
                assertEquals(0, nodeTemplatePairsByReqName.size());
        }
 
        @Test
        public void testGetNodeTemplatePairsByReqNameWithNullCap() {
-               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePairsByReqName(
-                               ToscaParserTestSuite.fdntCsarHelper.getCpListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), null, "binding");
+               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
+                               fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), null, "binding");
                assertNotNull(nodeTemplatePairsByReqName);
                assertEquals(0, nodeTemplatePairsByReqName.size());
        }
 
        @Test
        public void testGetNodeTemplatePairsByReqNameWithEmptyCap() {
-               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePairsByReqName(
-                               ToscaParserTestSuite.fdntCsarHelper.getCpListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), new ArrayList<>(), "binding");
+               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
+                               fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), new ArrayList<>(), "binding");
                assertNotNull(nodeTemplatePairsByReqName);
                assertEquals(0, nodeTemplatePairsByReqName.size());
        }
 
        @Test
        public void testGetNodeTemplatePairsByReqNameWithNullReq() {
-               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePairsByReqName(
-                               ToscaParserTestSuite.fdntCsarHelper.getCpListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), ToscaParserTestSuite.fdntCsarHelper.getVfcListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), null);
+               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
+                               fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), null);
                assertNotNull(nodeTemplatePairsByReqName);
                assertEquals(0, nodeTemplatePairsByReqName.size());
        }
@@ -258,8 +258,8 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        @Test
        public void testGetNodeTemplatePairsByReqNameWithDummyReq() {
 
-               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = ToscaParserTestSuite.fdntCsarHelper.getNodeTemplatePairsByReqName(
-                               ToscaParserTestSuite.fdntCsarHelper.getCpListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), ToscaParserTestSuite.fdntCsarHelper.getVfcListByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID), "XXX");
+               List<Pair<NodeTemplate, NodeTemplate>> nodeTemplatePairsByReqName = fdntCsarHelper.getNodeTemplatePairsByReqName(
+                               fdntCsarHelper.getCpListByVf(VF_CUSTOMIZATION_UUID), fdntCsarHelper.getVfcListByVf(VF_CUSTOMIZATION_UUID), "XXX");
                assertNotNull(nodeTemplatePairsByReqName);
                assertEquals(0, nodeTemplatePairsByReqName.size());
        }
@@ -268,11 +268,11 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
        //region getMembersOfVfModule
        @Test
        public void testGetMembersOfVfModule() {
-               NodeTemplate vf = ToscaParserTestSuite.fdntCsarHelper.getServiceVfList().get(0);
-               List<Group> vfModulesByVf = ToscaParserTestSuite.fdntCsarHelper.getVfModulesByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
+               NodeTemplate vf = fdntCsarHelper.getServiceVfList().get(0);
+               List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
                assertEquals(2, vfModulesByVf.size());
                for (Group group : vfModulesByVf) {
-                       List<NodeTemplate> membersOfVfModule = ToscaParserTestSuite.fdntCsarHelper.getMembersOfVfModule(vf, group);
+                       List<NodeTemplate> membersOfVfModule = fdntCsarHelper.getMembersOfVfModule(vf, group);
                        assertNotNull(membersOfVfModule);
                        if (group.getName().equals("fdnt1..Fdnt..base_stsi_dnt_frwl..module-0")) {
                                assertEquals(1, membersOfVfModule.size());
@@ -289,16 +289,16 @@ public class ToscaParserNodeTemplateTest extends BasicTest {
 
        @Test
        public void testMembersOfVfModuleByNullVf() {
-               List<Group> vfModulesByVf = ToscaParserTestSuite.fdntCsarHelper.getVfModulesByVf(ToscaParserTestSuite.VF_CUSTOMIZATION_UUID);
-               List<NodeTemplate> nodeTemplates = ToscaParserTestSuite.fdntCsarHelper.getMembersOfVfModule(null, vfModulesByVf.get(0));
+               List<Group> vfModulesByVf = fdntCsarHelper.getVfModulesByVf(VF_CUSTOMIZATION_UUID);
+               List<NodeTemplate> nodeTemplates = fdntCsarHelper.getMembersOfVfModule(null, vfModulesByVf.get(0));
                assertNotNull(nodeTemplates);
                assertEquals(0, nodeTemplates.size());
        }
 
        @Test
        public void testMembersOfVfModuleByNullGroup() {
-               List<NodeTemplate> serviceVfList = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceVfList();
-               List<NodeTemplate> nodeTemplates = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getMembersOfVfModule(serviceVfList.get(0), null);
+               List<NodeTemplate> serviceVfList = rainyCsarHelperMultiVfs.getServiceVfList();
+               List<NodeTemplate> nodeTemplates = rainyCsarHelperMultiVfs.getMembersOfVfModule(serviceVfList.get(0), null);
                assertNotNull(nodeTemplates);
                assertEquals(0, nodeTemplates.size());
        }
index 3444e53..d357d21 100644 (file)
@@ -1,27 +1,27 @@
 package org.openecomp.sdc.impl;
 
-import org.junit.Test;
+import org.testng.annotations.Test;
 import org.openecomp.sdc.toscaparser.api.parameters.Input;
 
 import java.util.List;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
 
 public class ToscaParserServiceInputTest extends BasicTest {
 
     //region getServiceInputs
     @Test
     public void testGetServiceInputs(){
-        List<Input> serviceInputs = ToscaParserTestSuite.fdntCsarHelper.getServiceInputs();
+        List<Input> serviceInputs = fdntCsarHelper.getServiceInputs();
         assertNotNull(serviceInputs);
         assertEquals(1, serviceInputs.size());
     }
 
     @Test
     public void testServiceInputs() {
-        List<Input> inputs = ToscaParserTestSuite.rainyCsarHelperSingleVf.getServiceInputs();
+        List<Input> inputs = rainyCsarHelperSingleVf.getServiceInputs();
         assertNotNull(inputs);
         assertEquals(0, inputs.size());
     }
@@ -30,19 +30,19 @@ public class ToscaParserServiceInputTest extends BasicTest {
     //region getServiceInputLeafValueOfDefault
     @Test
     public void testGetServiceInputLeafValue(){
-        String serviceInputLeafValue = ToscaParserTestSuite.fdntCsarHelper.getServiceInputLeafValueOfDefault("service_naming#default");
+        String serviceInputLeafValue = fdntCsarHelper.getServiceInputLeafValueOfDefault("service_naming#default");
         assertEquals("test service naming", serviceInputLeafValue);
     }
 
     @Test
     public void testGetServiceInputLeafValueNotExists(){
-        String serviceInputLeafValue = ToscaParserTestSuite.fdntCsarHelper.getServiceInputLeafValueOfDefault("service_naming#default#kuku");
+        String serviceInputLeafValue = fdntCsarHelper.getServiceInputLeafValueOfDefault("service_naming#default#kuku");
         assertNull(serviceInputLeafValue);
     }
 
     @Test
     public void testGetServiceInputLeafValueNull(){
-        String serviceInputLeafValue = ToscaParserTestSuite.fdntCsarHelper.getServiceInputLeafValueOfDefault(null);
+        String serviceInputLeafValue = fdntCsarHelper.getServiceInputLeafValueOfDefault(null);
         assertNull(serviceInputLeafValue);
     }
     //endregion
index fc0aff5..c61f465 100644 (file)
 package org.openecomp.sdc.impl;
 
-import org.junit.Test;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
+import org.openecomp.sdc.toscaparser.api.Capability;
+import org.openecomp.sdc.toscaparser.api.NodeTemplate;
+import org.openecomp.sdc.toscaparser.api.elements.CapabilityTypeDef;
+//import org.testng.ReporterConfig.Property;
+import org.testng.annotations.Test;
+import org.openecomp.sdc.toscaparser.api.Property;
+
+//import static org.junit.Assert.assertEquals;
+//import static org.junit.Assert.assertNull;
 
 public class ToscaParserSubsMappingsTest extends BasicTest {
 
     //region getServiceSubstitutionMappingsTypeName
     @Test
     public void testGetServiceSubstitutionMappingsTypeName() {
-        String serviceSubstitutionMappingsTypeName = ToscaParserTestSuite.fdntCsarHelper.getServiceSubstitutionMappingsTypeName();
+        String serviceSubstitutionMappingsTypeName = fdntCsarHelper.getServiceSubstitutionMappingsTypeName();
         assertEquals("org.openecomp.service.ServiceFdnt", serviceSubstitutionMappingsTypeName);
     }
 
     @Test
     public void testServiceSubstitutionMappingsTypeName() {
-        String substitutionMappingsTypeName = ToscaParserTestSuite.rainyCsarHelperMultiVfs.getServiceSubstitutionMappingsTypeName();
+        String substitutionMappingsTypeName = rainyCsarHelperMultiVfs.getServiceSubstitutionMappingsTypeName();
         assertNull(substitutionMappingsTypeName);
     }
     //endregion
+    
+  //Added by QA - Check for Capabilities in VF level (Capabilities QTY and Names).
+               //@Test // - BUG 283369
+               public void testCapabilitiesofVFNames_QTY() throws SdcToscaParserException {
+                       List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
+                       String sName = serviceVfList.get(0).getName();
+                       assertEquals(sName,fdntCsarHelper_Data.get("FDNT").get("VF Name").get(0));                      
+                       LinkedHashMap<String, Capability> lCapabilitys = serviceVfList.get(0).getCapabilities();
+                       List<String> CPkeys = new ArrayList<>(lCapabilitys.keySet());                   
+                       List<String> CapabilitiesNames = new ArrayList<String>(CPkeys.size());                          
+                       
+                       for (int i = 0; i < CPkeys.size(); i++) {
+                               
+                               Capability cCp = lCapabilitys.get(CPkeys.get(i));  
+
+                               CapabilitiesNames.add(cCp.getName());
+                               
+                               assertEquals(CPkeys.get(i).toLowerCase(), CapabilitiesNames.get(i).toLowerCase());// Compare keys to values, Should it be checked as Case sensitive????
+                               
+                               //System.out.println(String.format("Value of key: %s , Value of capability: %s", keys.get(i).toLowerCase(), Capabilities.get(i).toLowerCase()));
+                               //System.out.println(String.format("Value of key: %s , Value of capability: %s", ActualValues.get(i).toLowerCase(), Capabilities.get(i).toLowerCase()));
+                               //System.out.println(String.format("*******%d*******",i));
+                       }
+                       
+                       for (int i = 0; i < CPkeys.size(); i++) {                       
+                               assertEquals(true, CapabilitiesNames.stream().map(String::toLowerCase).collect(Collectors.toList()).contains(fdntCsarHelper_Data.get("FDNT").get("capabilities").get(i).toLowerCase())); // Compare capabilities predefined list to actual one. 
+                       }
+                       
+                       assertEquals(fdntCsarHelper_Data.get("FDNT").get("capabilities").size(), CapabilitiesNames.size()); // Compare capabilities qty expected vs actual
+               }
+               
+       //Added by QA - Check for Capabilities in VF level (Capabilities Types and Properties).
+               //@Test 
+               public void testCapabilitiesofVFTypes_Properties() throws SdcToscaParserException {
+                       List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
+                       String sName = serviceVfList.get(0).getName();
+                       assertEquals(sName,fdntCsarHelper_Data.get("FDNT").get("VF Name").get(0));                      
+                       LinkedHashMap<String, Capability> lCapabilitys = serviceVfList.get(0).getCapabilities();
+                       
+                       List<String> CPkeys = new ArrayList<>(lCapabilitys.keySet());
+                       List<String> CPPropkeys = new ArrayList<>(lCapabilitys.keySet());
+                       List<String> CapabilitiesTypes = new ArrayList<String>(CPkeys.size());
+                       
+                       //int iKeysSize = keys.size(); //for debug
+                       
+                       for (int i = 0; i < CPkeys.size(); i++) {
+                               
+                               Capability cCp = lCapabilitys.get(CPkeys.get(i));  
+                               CapabilityTypeDef CpDef = cCp.getDefinition();
+                               CapabilitiesTypes.add(CpDef.getType());
+                               
+                               //LinkedHashMap<String,Object> lProperties = cCp.getDefinition().getProperties();                               
+                               LinkedHashMap<String, Property> lPropertiesR = cCp.getProperties();
+                               
+                               List<String> CP_Propkeys = new ArrayList<>(lPropertiesR.keySet());
+                       
+                               for (int j = 0; j < CP_Propkeys.size(); j++) {
+                                       
+                               Property p = lPropertiesR.get(CP_Propkeys.get(j));
+
+                               if(p !=  null){
+                                       String sPType = p.getType();
+                                       Boolean bPRequired = p.isRequired();
+                                       
+                                       System.out.println(sPType + "  " + bPRequired);
+                                       
+                                       }
+                               
+                       }
+                               
+                       }                       
+                       
+                       for (int i = 0; i < CPkeys.size(); i++) {                               
+
+                       }       
+                       
+                       assertEquals(fdntCsarHelper_Data.get("FDNT").get("capabilitiesTypes").size(), CapabilitiesTypes.size()); // Compare capabilities qty expected vs actual
+               }
+               
+           //@Test // - BUG 283387
+               public void testRequirmentsofVF() throws SdcToscaParserException {
+                       List<NodeTemplate> serviceVfList = fdntCsarHelper.getServiceVfList();
+                       String sName = serviceVfList.get(0).getName();
+                       assertEquals(sName,"FDNT 1");
+                       
+                       List<String> ActualReqsValues = new ArrayList<>(Arrays.asList( ));
+                       
+                       ArrayList<Object> lRequirements = serviceVfList.get(0).getRequirements();
+                       
+                       assertEquals(fdntCsarHelper_Data.get("FDNT").get("requirements").size(),lRequirements.size()); //
+                       
+                       // Continue from here after bug is fixed ! ! ! !  - Test the Requirements values
+               }
 
 }
diff --git a/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserTestSuite.java b/sdc-tosca-parser/src/test/java/org/openecomp/sdc/impl/ToscaParserTestSuite.java
deleted file mode 100644 (file)
index 83e7d13..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.openecomp.sdc.impl;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-import org.junit.BeforeClass;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper;
-import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
-import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory;
-import org.openecomp.sdc.toscaparser.api.common.ExceptionCollector;
-import org.openecomp.sdc.toscaparser.api.common.JToscaException;
-
-@RunWith( Suite.class )
-@Suite.SuiteClasses( {
-        ToscaParserNodeTemplateTest.class,
-        ToscaParserSubsMappingsTest.class,
-        ToscaParserGroupTest.class,
-        ToscaParserMetadataTest.class,
-        ToscaParserServiceInputTest.class,
-} )
-public class ToscaParserTestSuite {
-
-    public static final String VF_CUSTOMIZATION_UUID = "56179cd8-de4a-4c38-919b-bbc4452d2d73";
-    static SdcToscaParserFactory factory;
-    static ISdcCsarHelper rainyCsarHelperSingleVf;
-    static ISdcCsarHelper rainyCsarHelperMultiVfs;
-    static ISdcCsarHelper fdntCsarHelper;
-
-    @BeforeClass
-    public static void init() throws SdcToscaParserException, JToscaException, IOException {
-
-        factory = SdcToscaParserFactory.getInstance();
-        fdntCsarHelper = getCsarHelper("csars/service-ServiceFdnt-with-allotted.csar");
-        rainyCsarHelperMultiVfs = getCsarHelper("csars/service-ServiceFdnt-csar-rainy.csar");
-        rainyCsarHelperSingleVf = getCsarHelper("csars/service-ServiceFdnt-csar.csar");
-    }
-
-       private static ISdcCsarHelper getCsarHelper(String path) throws JToscaException, IOException, SdcToscaParserException {
-               System.out.println("Parsing CSAR "+path+"...");
-               String fileStr1 = ToscaParserTestSuite.class.getClassLoader().getResource(path).getFile();
-        File file1 = new File(fileStr1);
-        ISdcCsarHelper sdcCsarHelper = factory.getSdcCsarHelper(file1.getAbsolutePath());
-        ArrayList<String> exceptionReport = ExceptionCollector.getExceptionReport();
-               if (!exceptionReport.isEmpty()){
-               System.out.println("TOSCA Errors found in CSAR - failing the tests...");
-               System.out.println(exceptionReport.toString());
-               ExceptionCollector.clear();
-               throw new SdcToscaParserException("CSAR didn't pass validation");
-        }
-               return sdcCsarHelper;
-       }
-
-}
diff --git a/sdc-tosca-parser/src/test/resources/config/configuration.yaml b/sdc-tosca-parser/src/test/resources/config/configuration.yaml
new file mode 100644 (file)
index 0000000..379e962
--- /dev/null
@@ -0,0 +1,3 @@
+conformanceLevel:
+  minVersion: '3.0'
+  maxVersion: '3.0'
\ No newline at end of file
index fc21af3..4f57b71 100644 (file)
Binary files a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-0904-2.csar and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-0904-2.csar differ
index 7752244..f3b3a46 100644 (file)
Binary files a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-rainy.csar and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar-rainy.csar differ
index 6179316..983dc9b 100644 (file)
Binary files a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar.csar and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-csar.csar differ
index a343e84..ef6d03e 100644 (file)
Binary files a/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-with-allotted.csar and b/sdc-tosca-parser/src/test/resources/csars/service-ServiceFdnt-with-allotted.csar differ