summaryrefslogtreecommitdiffstats
path: root/integration-tests
diff options
context:
space:
mode:
Diffstat (limited to 'integration-tests')
-rw-r--r--integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/Utils.java571
-rw-r--r--integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/datatypes/ToscaTypeUploadEnum.java49
-rw-r--r--integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/sanity/ModelToscaTypeImportTest.java213
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/capability-types/capabilityTypes.yml2
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/data-types/dataTypes.yml14
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.json6
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.yml9
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.zipbin0 -> 424 bytes
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/interface-lifecycle-types/interfaceLifecycleTypes.yml18
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/interface-lifecycle-types/interfaceLifecycleTypes.zipbin0 -> 419 bytes
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/node-types/Network/network.json22
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/node-types/Network/network.yml45
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/policy-types/policyTypes.json6
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/policy-types/policyTypes.yml3
-rw-r--r--integration-tests/src/test/resources/Files/imports/tosca/relationship-types/relationshipTypes.yml9
-rw-r--r--integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml1
16 files changed, 613 insertions, 355 deletions
diff --git a/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/Utils.java b/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/Utils.java
index 100d7f009a..b09c310227 100644
--- a/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/Utils.java
+++ b/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/Utils.java
@@ -7,9 +7,9 @@
* 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.
@@ -20,22 +20,13 @@
package org.onap.sdc.backend.ci.tests.utils;
-import com.google.gson.Gson;
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertNotNull;
+import static org.testng.AssertJUnit.assertTrue;
+
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
-import org.onap.sdc.backend.ci.tests.datatypes.ServiceReqDetails;
-import org.onap.sdc.backend.ci.tests.datatypes.enums.ArtifactTypeEnum;
-import org.onap.sdc.backend.ci.tests.tosca.model.ToscaMetadataFieldsPresentationEnum;
-import org.openecomp.sdc.be.model.Component;
-import org.onap.sdc.backend.ci.tests.config.Config;
-import org.openecomp.sdc.common.api.ToscaNodeTypeInfo;
-import org.openecomp.sdc.common.api.YamlConstants;
-import org.yaml.snakeyaml.Yaml;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -48,327 +39,196 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
-
-import static org.testng.AssertJUnit.*;
+import org.apache.commons.lang3.StringUtils;
+import org.onap.sdc.backend.ci.tests.config.Config;
+import org.onap.sdc.backend.ci.tests.datatypes.ServiceReqDetails;
+import org.onap.sdc.backend.ci.tests.datatypes.enums.ArtifactTypeEnum;
+import org.onap.sdc.backend.ci.tests.tosca.model.ToscaMetadataFieldsPresentationEnum;
+import org.openecomp.sdc.be.model.Component;
+import org.openecomp.sdc.common.api.ToscaNodeTypeInfo;
+import org.openecomp.sdc.common.api.YamlConstants;
+import org.yaml.snakeyaml.Yaml;
public final class Utils {
- Gson gson = new Gson();
-
- static Logger logger = LogManager.getLogger(Utils.class);
-
- String contentTypeHeaderData = "application/json";
- String acceptHeaderDate = "application/json";
-
- public Utils() {
- /*
- * super();
- *
- * StartTest.enableLogger(); logger =
- * Logger.getLogger(Utils.class.getName());
- */
-
- }
-
- // public String serviceTopologyPattern = "/topology/topology/%s";
- // public String serviceTopologyTemplatePattern =
- // "/topologytemplate/topologytemplate/%s";
- //
- // public String serviceTopologySearchPattern =
- // "topology/topology/_search?q=%s";
- // public String serviceTopologyTemplateSearchPattern =
- // "topologytemplate/topologytemplate/_search?q=%s";
- //
- // public ArtifactTypeEnum getFileTypeByExtension(String fileName) {
- //
- // String fileExtension = null;
- // if (fileName.matches("(.*)\\.(.*)")) {
- // System.out.println(fileName.substring(fileName.lastIndexOf(".") + 1));
- // fileExtension = fileName.substring(fileName.lastIndexOf(".") + 1);
- // }
- //
- // switch (fileExtension) {
- // case "sh":
- // return ArtifactTypeEnum.SHELL_SCRIPT;
- // case "png":
- // return ArtifactTypeEnum.ICON;
- // case "ppp":
- // return ArtifactTypeEnum.PUPPET;
- // case "yang":
- // return ArtifactTypeEnum.YANG;
- // default:
- // return ArtifactTypeEnum.UNKNOWN;
- // }
- //
- // }
- //
- // public ArrayList<String> getScriptList (List<UploadArtifactInfo>
- // artifactsList){
- //
- // ArrayList<String> scriptNameArray = new ArrayList<>();
- // if (artifactsList != null){
- // for (UploadArtifactInfo fileInArtifactsList : artifactsList){
- // String artifactFileName = fileInArtifactsList.getArtifactName();
- // ArtifactTypeEnum artifactFileType =
- // fileInArtifactsList.getArtifactType();
- // if (! artifactFileType.equals(ArtifactTypeEnum.ICON)){
- // scriptNameArray.add(artifactFileName);
- // }
- // continue;
- // }
- // return scriptNameArray;
- // }
- // return null;
- // }
- //
- //
- // public String getYamlFileLocation(File testResourcesPath) {
- // File[] files = testResourcesPath.listFiles();
- // if (files.length == 0){
- // return null;
- // }else{
- // for (int i = 0; i < files.length; i++){
- // if (files[i].isFile()){
- // return files[i].getAbsoluteFile().toString();
- // }
- // }
- // }
- // return null;
- // }
- //
- // public String readFileContentToString (String fileName) throws
- // IOException {
- //
- // Path path = Paths.get(fileName);
- // String stringFromFile = new String(Files.readAllBytes(path));
- // return stringFromFile;
- //
- //
- // }
- //
- @SuppressWarnings("unchecked")
- public ToscaNodeTypeInfo parseToscaNodeYaml(String fileContent) {
-
- ToscaNodeTypeInfo result = new ToscaNodeTypeInfo();
- Object templateVersion = null;
- Object templateName = null;
-
- if (fileContent != null) {
- Yaml yaml = new Yaml();
-
- Map<String, Object> yamlObject = (Map<String, Object>) yaml.load(fileContent);
-
- templateVersion = yamlObject.get(YamlConstants.TEMPLATE_VERSION);
- if (templateVersion != null) {
- result.setTemplateVersion(templateVersion.toString());
- }
- templateName = yamlObject.get(YamlConstants.TEMPLATE_NAME);
- if (templateName != null) {
- result.setTemplateName(templateName.toString());
- }
- Object nodeTypes = yamlObject.get(YamlConstants.NODE_TYPES);
-
- if (nodeTypes != null) {
- Map<String, Object> nodeTypesMap = (Map<String, Object>) nodeTypes;
- for (Entry<String, Object> entry : nodeTypesMap.entrySet()) {
-
- String nodeName = entry.getKey();
- if (nodeName != null) {
- result.setNodeName(nodeName);
- }
-
- break;
-
- }
- }
-
- }
-
- return result;
- }
-
- //
- //
- // public ArtifactsMetadata getArtifactsMetadata(String response){
- // ArtifactsMetadata artifactsMetadata = new ArtifactsMetadata();
- //
- // artifactsMetadata.setId(getJsonObjectValueByKey(response, "id"));
- // artifactsMetadata.setName(getJsonObjectValueByKey(response, "name"));
- // artifactsMetadata.setType(getJsonObjectValueByKey(response, "type"));
- //
- // artifactsMetadata.setCreator(getJsonObjectValueByKey(response,
- // "creator"));
- // artifactsMetadata.setCreationTime(getJsonObjectValueByKey(response,
- // "creationTime"));
- // artifactsMetadata.setLastUpdateTime(getJsonObjectValueByKey(response,
- // "lastUpdateTime"));
- // artifactsMetadata.setChecksum(getJsonObjectValueByKey(response,
- // "checksum"));
- // artifactsMetadata.setDescription(getJsonObjectValueByKey(response,
- // "description"));
- // artifactsMetadata.setLastUpdater(getJsonObjectValueByKey(response,
- // "lastUpdater"));
- //
- // return artifactsMetadata;
- // }
- //
- public static String getJsonObjectValueByKey(String metadata, String key) {
- JsonElement jelement = new JsonParser().parse(metadata);
-
- JsonObject jobject = jelement.getAsJsonObject();
- Object obj = jobject.get(key);
- if (obj == null) {
- return null;
- } else {
- String value;
- value = (String) jobject.get(key).getAsString();
- return value;
- }
- }
-
- public static Config getConfig() throws FileNotFoundException {
- Config config = Config.instance();
- return config;
- }
-
- public static Config getConfigHandleException() {
- Config config = null;
- try{
- config = Config.instance();
- }catch (Exception e){
- System.out.println("Configuration file not found. " + e);
- }
- return config;
- }
-
- public static void compareArrayLists(List<String> actualArraylList, List<String> expectedArrayList,
- String message) {
-
- ArrayList<String> actual = new ArrayList<String>(actualArraylList);
- ArrayList<String> expected = new ArrayList<String>(expectedArrayList);
- // assertEquals(message + " count got by rest API not match to " +
- // message + " expected count", expected.size(),actual.size());
- expected.removeAll(actual);
- assertEquals(message + " content got by rest API not match to " + message + " actual content", 0,
- expected.size());
- }
-
- public static Object parseYamlConfig(String pattern) throws FileNotFoundException {
-
- Yaml yaml = new Yaml();
- Config config = getConfig();
- String configurationFile = config.getConfigurationFile();
- File file = new File(configurationFile);
- // File file = new
- // File("../catalog-be/src/main/resources/config/configuration.yaml");
- InputStream inputStream = new FileInputStream(file);
- Map<?, ?> map = (Map<?, ?>) yaml.load(inputStream);
- Object patternMap = (Object) map.get(pattern);
-
- return patternMap;
- }
-
- public static String getDepArtLabelFromConfig(ArtifactTypeEnum artifactTypeEnum) throws FileNotFoundException {
-
- @SuppressWarnings("unchecked")
- Map<String, Object> mapOfDepResArtTypesObjects = (Map<String, Object>) parseYamlConfig(
- "deploymentResourceArtifacts");
- for (Map.Entry<String, Object> iter : mapOfDepResArtTypesObjects.entrySet()) {
- if (iter.getValue().toString().contains(artifactTypeEnum.getType())) {
- return iter.getKey().toLowerCase();
- }
- }
-
- return "defaultLabelName";
- }
-
-
- public static String multipleChar(String ch, int repeat) {
- return StringUtils.repeat(ch, repeat);
- }
-
- public static List<String> getListOfDepResArtLabels(Boolean isLowerCase) throws FileNotFoundException {
-
- List<String> listOfResDepArtTypesFromConfig = new ArrayList<String>();
- @SuppressWarnings("unchecked")
- Map<String, Object> resourceDeploymentArtifacts = (Map<String, Object>) parseYamlConfig(
- "deploymentResourceArtifacts");
- if (resourceDeploymentArtifacts != null) {
-
- if (isLowerCase) {
- for (Map.Entry<String, Object> iter : resourceDeploymentArtifacts.entrySet()) {
- listOfResDepArtTypesFromConfig.add(iter.getKey().toLowerCase());
- }
- } else {
-
- for (Map.Entry<String, Object> iter : resourceDeploymentArtifacts.entrySet()) {
- listOfResDepArtTypesFromConfig.add(iter.getKey());
- }
- }
- }
- return listOfResDepArtTypesFromConfig;
- }
-
- public static List<String> getListOfToscaArtLabels(Boolean isLowerCase) throws FileNotFoundException {
-
- List<String> listOfToscaArtTypesFromConfig = new ArrayList<String>();
- @SuppressWarnings("unchecked")
- Map<String, Object> toscaArtifacts = (Map<String, Object>) parseYamlConfig("toscaArtifacts");
- if (toscaArtifacts != null) {
-
- if (isLowerCase) {
- for (Map.Entry<String, Object> iter : toscaArtifacts.entrySet()) {
- listOfToscaArtTypesFromConfig.add(iter.getKey().toLowerCase());
- }
- } else {
- for (Map.Entry<String, Object> iter : toscaArtifacts.entrySet()) {
- listOfToscaArtTypesFromConfig.add(iter.getKey());
- }
- }
- }
- return listOfToscaArtTypesFromConfig;
- }
-
- public static List<String> getListOfResPlaceHoldersDepArtTypes() throws FileNotFoundException {
- List<String> listResDepArtTypesFromConfig = new ArrayList<String>();
- List<String> listOfResDepArtLabelsFromConfig = getListOfDepResArtLabels(false);
- assertNotNull("deployment artifact types list is null", listOfResDepArtLabelsFromConfig);
- Object parseYamlConfig = Utils.parseYamlConfig("deploymentResourceArtifacts");
- Map<String, Object> mapOfDepResArtTypesObjects = (Map<String, Object>) Utils
- .parseYamlConfig("deploymentResourceArtifacts");
-
- // assertNotNull("deployment artifact types list is null",
- // mapOfDepResArtTypesObjects);
- if (listOfResDepArtLabelsFromConfig != null) {
- for (String resDepArtType : listOfResDepArtLabelsFromConfig) {
- Object object = mapOfDepResArtTypesObjects.get(resDepArtType);
- if (object instanceof Map<?, ?>) {
- Map<String, Object> map = (Map<String, Object>) object;
- listResDepArtTypesFromConfig.add((String) map.get("type"));
- } else {
- assertTrue("return object does not instance of map", false);
- }
- }
- }
- return listResDepArtTypesFromConfig;
- }
-
- public static Long getEpochTimeFromUTC(String time) throws ParseException {
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz");
- java.util.Date date = df.parse(time);
- long epoch = date.getTime();
- return epoch;
- }
-
- public static Long getActionDuration(Runnable func) throws Exception{
- long startTime = System.nanoTime();
- func.run();
- long estimateTime = System.nanoTime();
- Long duration = TimeUnit.NANOSECONDS.toSeconds(estimateTime - startTime);
- return duration;
- }
-
- public static Long getAndValidateActionDuration (Runnable action, int regularTestRunTime){
+ @SuppressWarnings("unchecked")
+ public ToscaNodeTypeInfo parseToscaNodeYaml(String fileContent) {
+
+ ToscaNodeTypeInfo result = new ToscaNodeTypeInfo();
+
+ if (fileContent != null) {
+ Yaml yaml = new Yaml();
+ Map<String, Object> yamlObject = (Map<String, Object>) yaml.load(fileContent);
+
+ final Object templateVersion = yamlObject.get(YamlConstants.TEMPLATE_VERSION);
+ if (templateVersion != null) {
+ result.setTemplateVersion(templateVersion.toString());
+ }
+
+ final Object templateName = yamlObject.get(YamlConstants.TEMPLATE_NAME);
+ if (templateName != null) {
+ result.setTemplateName(templateName.toString());
+ }
+
+ Object nodeTypes = yamlObject.get(YamlConstants.NODE_TYPES);
+ if (nodeTypes != null) {
+ Map<String, Object> nodeTypesMap = (Map<String, Object>) nodeTypes;
+ for (Entry<String, Object> entry : nodeTypesMap.entrySet()) {
+
+ String nodeName = entry.getKey();
+ if (nodeName != null) {
+ result.setNodeName(nodeName);
+ }
+ break;
+ }
+ }
+ }
+
+ return result;
+ }
+
+ public static String getJsonObjectValueByKey(String metadata, String key) {
+ JsonElement jelement = new JsonParser().parse(metadata);
+
+ JsonObject jobject = jelement.getAsJsonObject();
+ Object obj = jobject.get(key);
+ if (obj == null) {
+ return null;
+ } else {
+ return (String) jobject.get(key).getAsString();
+ }
+ }
+
+ public static Config getConfig() throws FileNotFoundException {
+ return Config.instance();
+ }
+
+ public static Config getConfigHandleException() {
+ Config config = null;
+ try {
+ config = Config.instance();
+ } catch (Exception e) {
+ System.out.println("Configuration file not found. " + e);
+ }
+ return config;
+ }
+
+ public static void compareArrayLists(List<String> actualArraylList, List<String> expectedArrayList, String message) {
+
+ ArrayList<String> actual = new ArrayList<String>(actualArraylList);
+ ArrayList<String> expected = new ArrayList<String>(expectedArrayList);
+ expected.removeAll(actual);
+ assertEquals(message + " content got by rest API not match to " + message + " actual content", 0, expected.size());
+ }
+
+ public static Object parseYamlConfig(String pattern) throws FileNotFoundException {
+
+ Yaml yaml = new Yaml();
+ Config config = getConfig();
+ String configurationFile = config.getConfigurationFile();
+ File file = new File(configurationFile);
+ InputStream inputStream = new FileInputStream(file);
+ Map<?, ?> map = (Map<?, ?>) yaml.load(inputStream);
+ return (Object) map.get(pattern);
+ }
+
+ public static String getDepArtLabelFromConfig(ArtifactTypeEnum artifactTypeEnum) throws FileNotFoundException {
+
+ @SuppressWarnings("unchecked")
+ Map<String, Object> mapOfDepResArtTypesObjects = (Map<String, Object>) parseYamlConfig(
+ "deploymentResourceArtifacts");
+ for (Map.Entry<String, Object> iter : mapOfDepResArtTypesObjects.entrySet()) {
+ if (iter.getValue().toString().contains(artifactTypeEnum.getType())) {
+ return iter.getKey().toLowerCase();
+ }
+ }
+
+ return "defaultLabelName";
+ }
+
+
+ public static String multipleChar(String ch, int repeat) {
+ return StringUtils.repeat(ch, repeat);
+ }
+
+ public static List<String> getListOfDepResArtLabels(Boolean isLowerCase) throws FileNotFoundException {
+
+ List<String> listOfResDepArtTypesFromConfig = new ArrayList<String>();
+ @SuppressWarnings("unchecked")
+ Map<String, Object> resourceDeploymentArtifacts = (Map<String, Object>) parseYamlConfig(
+ "deploymentResourceArtifacts");
+ if (resourceDeploymentArtifacts != null) {
+
+ if (isLowerCase) {
+ for (Map.Entry<String, Object> iter : resourceDeploymentArtifacts.entrySet()) {
+ listOfResDepArtTypesFromConfig.add(iter.getKey().toLowerCase());
+ }
+ } else {
+
+ for (Map.Entry<String, Object> iter : resourceDeploymentArtifacts.entrySet()) {
+ listOfResDepArtTypesFromConfig.add(iter.getKey());
+ }
+ }
+ }
+ return listOfResDepArtTypesFromConfig;
+ }
+
+ public static List<String> getListOfToscaArtLabels(Boolean isLowerCase) throws FileNotFoundException {
+
+ List<String> listOfToscaArtTypesFromConfig = new ArrayList<String>();
+ @SuppressWarnings("unchecked")
+ Map<String, Object> toscaArtifacts = (Map<String, Object>) parseYamlConfig("toscaArtifacts");
+ if (toscaArtifacts != null) {
+
+ if (isLowerCase) {
+ for (Map.Entry<String, Object> iter : toscaArtifacts.entrySet()) {
+ listOfToscaArtTypesFromConfig.add(iter.getKey().toLowerCase());
+ }
+ } else {
+ for (Map.Entry<String, Object> iter : toscaArtifacts.entrySet()) {
+ listOfToscaArtTypesFromConfig.add(iter.getKey());
+ }
+ }
+ }
+ return listOfToscaArtTypesFromConfig;
+ }
+
+ public static List<String> getListOfResPlaceHoldersDepArtTypes() throws FileNotFoundException {
+ List<String> listResDepArtTypesFromConfig = new ArrayList<String>();
+ List<String> listOfResDepArtLabelsFromConfig = getListOfDepResArtLabels(false);
+ assertNotNull("deployment artifact types list is null", listOfResDepArtLabelsFromConfig);
+ Object parseYamlConfig = Utils.parseYamlConfig("deploymentResourceArtifacts");
+ Map<String, Object> mapOfDepResArtTypesObjects = (Map<String, Object>) Utils
+ .parseYamlConfig("deploymentResourceArtifacts");
+
+ if (listOfResDepArtLabelsFromConfig != null) {
+ for (String resDepArtType : listOfResDepArtLabelsFromConfig) {
+ Object object = mapOfDepResArtTypesObjects.get(resDepArtType);
+ if (object instanceof Map<?, ?>) {
+ Map<String, Object> map = (Map<String, Object>) object;
+ listResDepArtTypesFromConfig.add((String) map.get("type"));
+ } else {
+ assertTrue("return object does not instance of map", false);
+ }
+ }
+ }
+ return listResDepArtTypesFromConfig;
+ }
+
+ public static Long getEpochTimeFromUTC(String time) throws ParseException {
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz");
+ java.util.Date date = df.parse(time);
+ return date.getTime();
+ }
+
+ public static Long getActionDuration(Runnable func) throws Exception {
+ long startTime = System.nanoTime();
+ func.run();
+ long estimateTime = System.nanoTime();
+ return TimeUnit.NANOSECONDS.toSeconds(estimateTime - startTime);
+ }
+
+ public static Long getAndValidateActionDuration(Runnable action, int regularTestRunTime) {
Long actualTestRunTime = null;
try {
actualTestRunTime = Utils.getActionDuration(() -> {
@@ -383,30 +243,31 @@ public final class Utils {
}
double factor = 1.5;
- assertTrue("Expected test run time should be less than " + regularTestRunTime*factor + ", " +
- "actual time is " + actualTestRunTime , regularTestRunTime*factor>actualTestRunTime);
-// SetupCDTest.getExtendTest().log(Status.INFO, "Actual catalog loading time is " + actualTestRunTime + " seconds");
+ assertTrue("Expected test run time should be less than " + regularTestRunTime * factor + ", " +
+ "actual time is " + actualTestRunTime, regularTestRunTime * factor > actualTestRunTime);
return actualTestRunTime;
}
- public static Map<String, String> generateServiceMetadataToExpectedObject(ServiceReqDetails serviceReqDetails, Component component) {
-
- Map<String, String> metadata = new HashMap<>();
-
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.CATEGORY.value, serviceReqDetails.getCategories().get(0).getName());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.DESCRIPTION.value, serviceReqDetails.getDescription());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.INVARIANT_UUID.value, component.getInvariantUUID());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.TYPE.value, "Service");
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.UUID.value, component.getUUID());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.NAME.value, component.getName());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.INSTANTIATION_TYPE.value, serviceReqDetails.getInstantiationType());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_TYPE.value, serviceReqDetails.getServiceType());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_ROLE.value, serviceReqDetails.getServiceRole());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.NAMING_POLICY.value, serviceReqDetails.getNamingPolicy());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.ECOMP_GENERATED_NAMING.value, serviceReqDetails.getEcompGeneratedNaming().toString());
- metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_ECOMP_NAMING.value, serviceReqDetails.getEcompGeneratedNaming().toString());//equals to ECOMP_GENERATED_NAMING
-
- return metadata;
- }
+ public static Map<String, String> generateServiceMetadataToExpectedObject(ServiceReqDetails serviceReqDetails, Component component) {
+
+ Map<String, String> metadata = new HashMap<>();
+
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.CATEGORY.value, serviceReqDetails.getCategories().get(0).getName());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.DESCRIPTION.value, serviceReqDetails.getDescription());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.INVARIANT_UUID.value, component.getInvariantUUID());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.TYPE.value, "Service");
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.UUID.value, component.getUUID());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.NAME.value, component.getName());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.INSTANTIATION_TYPE.value, serviceReqDetails.getInstantiationType());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_TYPE.value, serviceReqDetails.getServiceType());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_ROLE.value, serviceReqDetails.getServiceRole());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.NAMING_POLICY.value, serviceReqDetails.getNamingPolicy());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.ECOMP_GENERATED_NAMING.value,
+ serviceReqDetails.getEcompGeneratedNaming().toString());
+ metadata.put(ToscaMetadataFieldsPresentationEnum.ToscaMetadataFieldsEnum.SERVICE_ECOMP_NAMING.value,
+ serviceReqDetails.getEcompGeneratedNaming().toString());//equals to ECOMP_GENERATED_NAMING
+
+ return metadata;
+ }
}
diff --git a/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/datatypes/ToscaTypeUploadEnum.java b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/datatypes/ToscaTypeUploadEnum.java
new file mode 100644
index 0000000000..9f09cc0856
--- /dev/null
+++ b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/datatypes/ToscaTypeUploadEnum.java
@@ -0,0 +1,49 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.frontend.ci.tests.datatypes;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum ToscaTypeUploadEnum {
+
+ DATA("datatypes", "dataTypes", "data-types", "dataTypesZip"),
+ CAPABILITY("capability", "capabilityTypes", "capability-types", "capabilityTypeZip"),
+ RELATIONSHIP("relationship", "relationshipTypes", "relationship-types", "relationshipTypeZip"),
+ INTERFACE("interfaceLifecycle", "interfaceLifecycleTypes", "interface-lifecycle-types", "interfaceLifecycleTypeZip"),
+ GROUP("grouptypes", "groupTypes", "group-types", "groupTypesZip", true),
+ POLICY("policytypes", "policyTypes", "policy-types", "policyTypesZip", true);
+
+ ToscaTypeUploadEnum(final String urlSuffix, final String modelParam, final String directory, final String zipParam) {
+ this.urlSuffix = urlSuffix;
+ this.modelParam = modelParam;
+ this.directory = directory;
+ this.zipParam = zipParam;
+ this.metadata = false;
+ }
+
+ private String urlSuffix;
+ private String modelParam;
+ private String directory;
+ private String zipParam;
+ private boolean metadata;
+}
diff --git a/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/sanity/ModelToscaTypeImportTest.java b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/sanity/ModelToscaTypeImportTest.java
new file mode 100644
index 0000000000..ed54f7f897
--- /dev/null
+++ b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/sanity/ModelToscaTypeImportTest.java
@@ -0,0 +1,213 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.sdc.frontend.ci.tests.execute.sanity;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.UUID;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.impl.client.HttpClients;
+import org.onap.sdc.backend.ci.tests.config.Config;
+import org.onap.sdc.backend.ci.tests.datatypes.enums.ComponentType;
+import org.onap.sdc.backend.ci.tests.datatypes.enums.ResourceCategoryEnum;
+import org.onap.sdc.backend.ci.tests.datatypes.http.HttpHeaderEnum;
+import org.onap.sdc.backend.ci.tests.utils.Utils;
+import org.onap.sdc.backend.ci.tests.utils.general.ElementFactory;
+import org.onap.sdc.frontend.ci.tests.datatypes.ComponentData;
+import org.onap.sdc.frontend.ci.tests.datatypes.ModelName;
+import org.onap.sdc.frontend.ci.tests.datatypes.ResourceCreateData;
+import org.onap.sdc.frontend.ci.tests.datatypes.ToscaTypeUploadEnum;
+import org.onap.sdc.frontend.ci.tests.execute.setup.DriverFactory;
+import org.onap.sdc.frontend.ci.tests.execute.setup.SetupCDTest;
+import org.onap.sdc.frontend.ci.tests.flow.AddNodeToCompositionFlow;
+import org.onap.sdc.frontend.ci.tests.flow.CreateVfFlow;
+import org.onap.sdc.frontend.ci.tests.flow.DownloadCsarArtifactFlow;
+import org.onap.sdc.frontend.ci.tests.flow.exception.UiTestFlowRuntimeException;
+import org.onap.sdc.frontend.ci.tests.pages.home.HomePage;
+import org.onap.sdc.frontend.ci.tests.utilities.FileHandling;
+import org.openqa.selenium.WebDriver;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+public class ModelToscaTypeImportTest extends SetupCDTest {
+
+ private final static String NODE_TYPE_TO_ADD = "Network";
+ private final static String MODEL_VNFD_TYPES = "vnfd_types";
+ private final static String MODEL_NSD_TYPES = "nsd_types";
+ private final static String TYPE_URL = "http://%s:%s/sdc2/rest/v1/catalog/uploadType/%s";
+ private final static String NODE_TYPE_URL = "http://%s:%s/sdc2/rest/v1/catalog/upload/multipart";
+ private final static String IMPORT_PATH = System.getProperty("user.dir").concat("/src/test/resources/Files/imports/tosca");
+ private final static String NODE_TYPE_DIRECTORY = IMPORT_PATH.concat(File.separator).concat("node-types");
+ private static final String TOSCA_CAPABILITIES_NETWORK_LINK = "tosca.capabilities.network.Linkable";
+
+ private WebDriver webDriver;
+
+ @BeforeMethod
+ public void init() {
+ webDriver = DriverFactory.getDriver();
+ }
+
+ @Test
+ public void importTypesForModel() throws Exception {
+ for (final var type : ToscaTypeUploadEnum.values()) {
+ assertTrue(postType(type.getUrlSuffix(), type.getModelParam(), type.getDirectory(), type.getZipParam(), type.isMetadata()));
+ }
+ }
+
+ @Test(dependsOnMethods = "importTypesForModel")
+ public void addNodeType() throws Exception {
+ assertTrue(postNodeType(NODE_TYPE_TO_ADD));
+ }
+
+ @Test(dependsOnMethods = "addNodeType")
+ public void verifyToscaTypesIncludedInCsar() throws Exception {
+ final var home = new HomePage(webDriver);
+
+ final var vf = new ResourceCreateData();
+ vf.setRandomName(ElementFactory.getResourcePrefix() + "-VF");
+ vf.setCategory(ResourceCategoryEnum.GENERIC_ABSTRACT.getSubCategory());
+ vf.setTagList(Arrays.asList(vf.getName()));
+ vf.setDescription("Test");
+ vf.setVendorName("EST");
+ vf.setVendorRelease("2.5.1");
+ vf.setVendorModelNumber("0001");
+ vf.setModel(ModelName.ETSI_SOL001_v2_5_1.getName());
+
+ final var createVfFlow = new CreateVfFlow(webDriver, vf);
+ createVfFlow.run(home);
+ final var resourceCreatePage = createVfFlow.getLandedPage()
+ .orElseThrow(() -> new UiTestFlowRuntimeException("Missing expected ResourceCreatePage"));
+ resourceCreatePage.isLoaded();
+
+ final var parentComponent = new ComponentData();
+ parentComponent.setName(vf.getName());
+ parentComponent.setVersion("0.1");
+ parentComponent.setComponentType(ComponentType.RESOURCE);
+ final var addComponent = new ComponentData();
+ addComponent.setName("Network");
+ addComponent.setVersion("1.0");
+ addComponent.setComponentType(ComponentType.RESOURCE);
+
+ final var compositionPage = resourceCreatePage.goToComposition();
+ compositionPage.isLoaded();
+ final var addNodeToCompositionFlow = new AddNodeToCompositionFlow(webDriver, parentComponent, addComponent);
+ addNodeToCompositionFlow.run(compositionPage);
+ compositionPage.isLoaded();
+ compositionPage.goToServiceGeneral();
+
+ final var downloadCsarArtifactFlow = new DownloadCsarArtifactFlow(webDriver);
+ downloadCsarArtifactFlow.setWaitBeforeGetTheFile(5L);
+ downloadCsarArtifactFlow.run(resourceCreatePage);
+ final var toscaArtifactsPage = downloadCsarArtifactFlow.getLandedPage()
+ .orElseThrow(() -> new UiTestFlowRuntimeException("Missing expected ToscaArtifactsPage"));
+ assertTrue(toscaArtifactsPage.getDownloadedArtifactList().size() > 0, "No artifact download was found");
+ toscaArtifactsPage.getDownloadedArtifactList().get(0);
+
+ final var downloadFolderPath = getConfig().getDownloadAutomationFolder();
+ final Map<String, byte[]> csarFiles = FileHandling.getFilesFromZip(downloadFolderPath, toscaArtifactsPage.getDownloadedArtifactList().get(0));
+ assertEquals(7, csarFiles.size());
+ assertTrue(csarFiles.keySet().stream().filter(filename -> filename.contains(NODE_TYPE_TO_ADD.concat("-template.yml"))).findAny().isPresent());
+ assertTrue(csarFiles.keySet().stream().filter(filename -> filename.contains(MODEL_VNFD_TYPES.concat(".yaml"))).findAny().isPresent());
+ assertTrue(csarFiles.keySet().stream().filter(filename -> filename.contains(MODEL_NSD_TYPES.concat(".yaml"))).findAny().isPresent());
+ assertTrue(csarFiles.keySet().stream().filter(filename -> filename.contains("-template-interface".concat(".yml"))).findAny().isPresent());
+ assertTrue(csarFiles.values().stream().filter(bytes -> new String(bytes).contains(TOSCA_CAPABILITIES_NETWORK_LINK)).findAny().isPresent());
+ }
+
+ private boolean postNodeType(final String directory) throws Exception {
+ final var yamlDirectory = new File(NODE_TYPE_DIRECTORY.concat(File.separator).concat(directory));
+ final var builder = MultipartEntityBuilder.create();
+ builder.addTextBody("resourceMetadata", getJsonString(yamlDirectory));
+ final var zipFile = getImportZipFile(yamlDirectory);
+ builder.addBinaryBody("resourceZip", zipFile, ContentType.APPLICATION_OCTET_STREAM, zipFile.getName());
+ try {
+ final Config config = Utils.getConfig();
+ postEntity(String.format(NODE_TYPE_URL, config.getCatalogBeHost(), config.getCatalogBePort()), "jh0003", builder.build());
+ } finally {
+ zipFile.delete();
+ }
+ return true;
+ }
+
+ private boolean postType(final String urlSuffix, final String modelParam, final String directory, final String zipParam,
+ final boolean metadata) throws Exception {
+ final var yamlDirectory = new File(IMPORT_PATH.concat(File.separator).concat(directory));
+ final var builder = MultipartEntityBuilder.create();
+ if (metadata) {
+ builder.addTextBody("toscaTypeMetadata", getJsonString(yamlDirectory));
+ }
+ builder.addTextBody("model", ModelName.ETSI_SOL001_v2_5_1.getName());
+ final var zipFile = getImportZipFile(yamlDirectory);
+ builder.addBinaryBody(zipParam, zipFile, ContentType.APPLICATION_OCTET_STREAM, zipFile.getName());
+
+ try {
+ final Config config = Utils.getConfig();
+ postEntity(String.format(TYPE_URL, config.getCatalogBeHost(), config.getCatalogBePort(), urlSuffix), "cs0008", builder.build());
+ } finally {
+ zipFile.delete();
+ }
+ return true;
+ }
+
+ private void postEntity(final String url, final String user, final HttpEntity entity) throws Exception {
+ final var httpPost = new HttpPost(String.format(url));
+ httpPost.setHeader(HttpHeaderEnum.USER_ID.getValue(), user);
+ httpPost.setEntity(entity);
+
+ try (final var client = HttpClients.createDefault()) {
+ final var response = client.execute(httpPost);
+ assertEquals(201, response.getStatusLine().getStatusCode());
+ }
+ }
+
+ private File getImportZipFile(final File yamlDirectory) throws Exception {
+ final var fileToZip = yamlDirectory.listFiles((dir, filename) -> filename.toLowerCase().endsWith(".yml"))[0];
+ final var zipName =
+ yamlDirectory.getAbsolutePath().concat(File.separator).concat(fileToZip.getName()).concat(UUID.randomUUID().toString()).concat(".zip");
+ try (final var zipOut = new ZipOutputStream(new FileOutputStream(zipName));
+ final var fis = new FileInputStream(fileToZip)) {
+ final var zipEntry = new ZipEntry(fileToZip.getName());
+ zipOut.putNextEntry(zipEntry);
+ final var bytes = new byte[1024];
+ int length;
+ while ((length = fis.read(bytes)) >= 0) {
+ zipOut.write(bytes, 0, length);
+ }
+ }
+ return new File(zipName);
+ }
+
+ private String getJsonString(final File yamlDirectory) throws Exception {
+ return new String(
+ Files.readAllBytes(Paths.get(yamlDirectory.listFiles((dir, filename) -> filename.toLowerCase().endsWith(".json"))[0].getAbsolutePath())));
+ }
+}
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/capability-types/capabilityTypes.yml b/integration-tests/src/test/resources/Files/imports/tosca/capability-types/capabilityTypes.yml
new file mode 100644
index 0000000000..e4f19ef21f
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/capability-types/capabilityTypes.yml
@@ -0,0 +1,2 @@
+tosca.capabilities.network.Linkable:
+ derived_from: tosca.capabilities.Root \ No newline at end of file
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/data-types/dataTypes.yml b/integration-tests/src/test/resources/Files/imports/tosca/data-types/dataTypes.yml
new file mode 100644
index 0000000000..657c2d874c
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/data-types/dataTypes.yml
@@ -0,0 +1,14 @@
+tosca.datatypes.nfv.AdditionalServiceData:
+ derived_from: tosca.datatypes.Root
+ description: describes the additional service data of the VirtualCp used to expose properties of the VirtualCp to NFV-MANO.
+ properties:
+ portData:
+ type: list
+ description: Service port numbers exposed by the VirtualCp.
+ required: false
+ entry_schema:
+ type: tosca.datatypes.nfv.ServicePortData
+ serviceData:
+ type: string
+ description: Service matching information exposed by the VirtualCp.
+ required: false \ No newline at end of file
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.json b/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.json
new file mode 100644
index 0000000000..af5c5858a3
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.json
@@ -0,0 +1,6 @@
+{
+ "tosca.groups.nfv.NsPlacementGroup": {
+ "displayName": "NFV NS PlacementGroup",
+ "icon": "group-nfv-placementgroup"
+ }
+} \ No newline at end of file
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.yml b/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.yml
new file mode 100644
index 0000000000..fe1f21befa
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.yml
@@ -0,0 +1,9 @@
+tosca.groups.nfv.NsPlacementGroup:
+ derived_from: tosca.groups.Root
+ description: NsPlacementGroup is used for describing the affinity or anti-affinity relationship applicable between VNF instances created using different VNFDs, the Virtual Link instances created using different VLDs or the nested NS instances created using different NSDs when used in a NSD.
+ properties:
+ description:
+ type: string
+ description: Human readable description of the group
+ required: true
+ members: [tosca.nodes.nfv.VNF, tosca.nodes.nfv.NsVirtualLink, tosca.nodes.nfv.NS] \ No newline at end of file
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.zip b/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.zip
new file mode 100644
index 0000000000..80909d2a14
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/group-types/groupTypes.zip
Binary files differ
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/interface-lifecycle-types/interfaceLifecycleTypes.yml b/integration-tests/src/test/resources/Files/imports/tosca/interface-lifecycle-types/interfaceLifecycleTypes.yml
new file mode 100644
index 0000000000..9353c6a7bd
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/interface-lifecycle-types/interfaceLifecycleTypes.yml
@@ -0,0 +1,18 @@
+tosca.interfaces.relationship.Configure:
+ derived_from: tosca.interfaces.Root
+ pre_configure_source:
+ description: Operation to pre-configure the source endpoint.
+ pre_configure_target:
+ description: Operation to pre-configure the target endpoint.
+ post_configure_source:
+ description: Operation to post-configure the source endpoint.
+ post_configure_target:
+ description: Operation to post-configure the target endpoint.
+ add_target:
+ description: Operation to notify the source node of a target node being added via a relationship.
+ add_source:
+ description: Operation to notify the target node of a source node which is now available via a relationship.
+ target_changed:
+ description: Operation to notify source some property or attribute of the target changed
+ remove_target:
+ description: Operation to remove a target node. \ No newline at end of file
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/interface-lifecycle-types/interfaceLifecycleTypes.zip b/integration-tests/src/test/resources/Files/imports/tosca/interface-lifecycle-types/interfaceLifecycleTypes.zip
new file mode 100644
index 0000000000..e0cef1709a
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/interface-lifecycle-types/interfaceLifecycleTypes.zip
Binary files differ
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/node-types/Network/network.json b/integration-tests/src/test/resources/Files/imports/tosca/node-types/Network/network.json
new file mode 100644
index 0000000000..25dbb72544
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/node-types/Network/network.json
@@ -0,0 +1,22 @@
+{
+ "payloadName": "network.yml",
+ "contactId": "jh0003",
+ "name": "Network",
+ "model": "ETSI SOL001 v2.5.1",
+ "description": "Represents a simple , logical network service.",
+ "resourceIconPath": "network",
+ "resourceType": "VL",
+ "categories": [
+ {
+ "name": "Generic",
+ "subcategories": [
+ {
+ "name": "Infrastructure"
+ }
+ ]
+ }
+],
+ "tags": [
+ "Network"
+ ]
+} \ No newline at end of file
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/node-types/Network/network.yml b/integration-tests/src/test/resources/Files/imports/tosca/node-types/Network/network.yml
new file mode 100644
index 0000000000..f3f3feda59
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/node-types/Network/network.yml
@@ -0,0 +1,45 @@
+tosca_definitions_version: tosca_simple_yaml_1_0_0
+node_types:
+ tosca.nodes.network.Network:
+ derived_from: tosca.nodes.Root
+ properties:
+ ip_version:
+ type: integer
+ required: false
+ default: 4
+ constraints:
+ - valid_values: [ 4, 6 ]
+ cidr:
+ type: string
+ required: false
+ start_ip:
+ type: string
+ required: false
+ end_ip:
+ type: string
+ required: false
+ gateway_ip:
+ type: string
+ required: false
+ network_name:
+ type: string
+ required: false
+ network_id:
+ type: string
+ required: false
+ segmentation_id:
+ type: string
+ required: false
+ network_type:
+ type: string
+ required: false
+ physical_network:
+ type: string
+ required: false
+ dhcp_enabled:
+ type: boolean
+ required: false
+ default: true
+ capabilities:
+ link:
+ type: tosca.capabilities.network.Linkable
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/policy-types/policyTypes.json b/integration-tests/src/test/resources/Files/imports/tosca/policy-types/policyTypes.json
new file mode 100644
index 0000000000..f44922c3e3
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/policy-types/policyTypes.json
@@ -0,0 +1,6 @@
+{
+ "tosca.policies.Scaling": {
+ "displayName": "Scaling",
+ "icon": "policy-scaling"
+ }
+} \ No newline at end of file
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/policy-types/policyTypes.yml b/integration-tests/src/test/resources/Files/imports/tosca/policy-types/policyTypes.yml
new file mode 100644
index 0000000000..14b8274f34
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/policy-types/policyTypes.yml
@@ -0,0 +1,3 @@
+tosca.policies.Scaling:
+ derived_from: tosca.policies.Root
+ description: The TOSCA Policy Type definition that is used to govern scaling of TOSCA nodes or groups of nodes. \ No newline at end of file
diff --git a/integration-tests/src/test/resources/Files/imports/tosca/relationship-types/relationshipTypes.yml b/integration-tests/src/test/resources/Files/imports/tosca/relationship-types/relationshipTypes.yml
new file mode 100644
index 0000000000..50c62bb9ed
--- /dev/null
+++ b/integration-tests/src/test/resources/Files/imports/tosca/relationship-types/relationshipTypes.yml
@@ -0,0 +1,9 @@
+tosca.relationships.ConnectsTo:
+ derived_from: tosca.relationships.Root
+ description: This type represents a network connection relationship between two nodes.
+ valid_target_types:
+ - tosca.capabilities.Endpoint
+ properties:
+ credential:
+ type: tosca.datatypes.Credential
+ required: false \ No newline at end of file
diff --git a/integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml b/integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml
index cb662b562b..98a3f50bf1 100644
--- a/integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml
+++ b/integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml
@@ -50,6 +50,7 @@
</methods>
</class>
<class name="org.onap.sdc.frontend.ci.tests.execute.sanity.EtsiModelUiTests"/>
+ <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.ModelToscaTypeImportTest"/>
</classes>
</test>
</suite>