summaryrefslogtreecommitdiffstats
path: root/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaCapabilitiesWithProperties.java
diff options
context:
space:
mode:
Diffstat (limited to 'test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaCapabilitiesWithProperties.java')
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaCapabilitiesWithProperties.java411
1 files changed, 0 insertions, 411 deletions
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaCapabilitiesWithProperties.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaCapabilitiesWithProperties.java
deleted file mode 100644
index 4338a1b151..0000000000
--- a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/imports/ImportToscaCapabilitiesWithProperties.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * 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.ci.tests.execute.imports;
-
-import com.google.gson.Gson;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-import org.junit.Rule;
-import org.junit.rules.TestName;
-import org.openecomp.sdc.be.dao.api.ActionStatus;
-import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
-import org.openecomp.sdc.be.model.*;
-import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
-import org.openecomp.sdc.ci.tests.datatypes.ImportReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
-import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
-import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
-import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ResourceRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
-import org.testng.annotations.Test;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertTrue;
-
-/**
- * US US730518 Story [BE] - TOSCA capabilities with properties - import "As a
- * resource designer, I would like to add my VFC capabilities with properties."
- *
- * @author ns019t
- *
- */
-public class ImportToscaCapabilitiesWithProperties extends ComponentBaseTest {
- @Rule
- public static TestName name = new TestName();
-
- Gson gson = new Gson();
-
- /**
- * public Constructor ImportToscaCapabilitiesWithProperties
- */
- public ImportToscaCapabilitiesWithProperties() {
- super(name, ImportToscaCapabilitiesWithProperties.class.getName());
- }
-
- /**
- * String constants
- */
- public static String propertyForTestName = "propertyfortest";
- public static String rootPath = System.getProperty("user.dir");
- public static String scalable = "tosca.capabilities.Scalable";
- public static String container = "tosca.capabilities.Container";
- public static String minInstances = "min_instances";
- public static String userDefinedNodeYaml = "mycompute.yml";
-
- /**
- * Capability Type - capability type on the graph should already have
- * properties modeled on it. please verify. The import of the capability
- * types should support adding those properties. when importing, validate
- * name uniqueness between the capability's properties see capability
- * tosca.capabilities.Container
- *
- * Acceptance Criteria: validate capability type properties (for example,
- * compute have capability Container -> the properties of this capability
- * should be in the Json response)
- *
- * @throws IOException
- */
- @Test
- public void validateCapabilityTypePropertiesSucceed() throws IOException {
- User user = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
- RestResponse createResourceRes = ResourceRestUtils.getResourceByNameAndVersion(user.getUserId(), "Compute",
- "1.0");
- BaseRestUtils.checkSuccess(createResourceRes);
- Resource resource = ResponseParser.convertResourceResponseToJavaObject(createResourceRes.getResponse());
- Map<String, List<CapabilityDefinition>> capabilities = resource.getCapabilities();
- assertEquals(capabilities.size(), 6);
-
- CapabilityDefinition capability = capabilities.get(scalable).get(0);
- List<ComponentInstanceProperty> properties = capability.getProperties();
- assertEquals(properties.size(), 3);
- assertTrue(!properties.stream().filter(p -> p.getName().equalsIgnoreCase(propertyForTestName)).findAny()
- .isPresent());
-
- ComponentInstanceProperty originalProperty = properties.stream()
- .filter(p -> p.getName().equalsIgnoreCase(minInstances)).findAny().get();
- assertEquals(originalProperty.getType(), "integer");
- assertEquals(originalProperty.getDefaultValue(), "1");
-
- capability = capabilities.get(container).get(0);
- properties = capability.getProperties();
- assertEquals(properties.size(), 4);
- }
-
- /**
- * Capability Definition on VFC / CP / VL - properties can also be defined
- * on the capability when the capability is declared. (property definition
- * with default value) If the property name (case insensitive) already
- * defined on the capability type, it overrides the capability from the
- * capability type Import of VFC / CP /VL should support adding properties
- * to the capability. when importing, validate name uniqueness between the
- * capability's properties
- *
- * Acceptance Criteria: import node type with capability definition on it.
- * use the attached "myCompute"
- *
- * @throws Exception
- */
- @Test
- public void importNodeTypeWithCapabilityWithPropertiesFromYmlSucceed() throws Exception {
- User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
- ImportReqDetails resourceDetails = ElementFactory.getDefaultImportResource();
- RestResponse createResource = importUserDefinedNodeType(userDefinedNodeYaml, sdncModifierDetails,
- resourceDetails);
- BaseRestUtils.checkCreateResponse(createResource);
- Resource resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
-
- Map<String, List<CapabilityDefinition>> capabilities = resource.getCapabilities();
- assertEquals(capabilities.size(), 6);
-
- CapabilityDefinition capability = capabilities.get(scalable).get(0);
- List<ComponentInstanceProperty> properties = capability.getProperties();
- assertEquals(properties.size(), 4);
-
- ComponentInstanceProperty newProperty = properties.stream()
- .filter(p -> p.getName().equalsIgnoreCase(propertyForTestName)).findAny().get();
- assertEquals(newProperty.getType(), "string");
- assertEquals(newProperty.getDescription(), "test");
- assertEquals(newProperty.getDefaultValue(), "success");
-
- ComponentInstanceProperty overriddenProperty = properties.stream()
- .filter(p -> p.getName().equalsIgnoreCase(minInstances)).collect(Collectors.toList()).get(0);
- assertEquals(overriddenProperty.getType(), "integer");
- assertEquals(overriddenProperty.getDefaultValue(), "3");
-
- }
-
- /**
- * importNodeTypeWithCapabilityWithPropertiesFromYmlFailed
- *
- * @throws Exception
- */
- @Test
- public void importNodeTypeWithCapabilityWithPropertiesFromYmlFailed() throws Exception {
- User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
- ImportReqDetails resourceDetails = ElementFactory.getDefaultImportResource();
- RestResponse createResource = importUserDefinedNodeType("mycompute_failed.yml", sdncModifierDetails,
- resourceDetails);
- BaseRestUtils.checkErrorMessageResponse(createResource, ActionStatus.PROPERTY_NAME_ALREADY_EXISTS);
- }
-
- /**
- * Capability Assignment (on node_template / resource instance) - should
- * support assignment of the property (property value). On the resource
- * instance level, value can be assigned to either properties that are
- * defined on the capability type or on the capability definition. When
- * importing a VF - the node_template can have capability's property value.
- * It should be imported and saved on the graph Acceptance Criteria: import
- * a VF that assign values to property of capability that was defined on the
- * capability type
- *
- * @throws Exception
- */
- @Test
- public void importResourceWithCapabilityWithPropertiesOverridingCapTypePropertiesSucceed() throws Exception {
- User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
- String payloadName = "vf_with_cap_prop_override_cap_type_prop.csar";
- ImportReqDetails resourceDetails = ElementFactory.getDefaultImportResource();
- Path path = Paths.get(rootPath + "/src/test/resources/CI/csars/vf_with_cap_prop_override_cap_type_prop.csar");
- byte[] data = Files.readAllBytes(path);
- String payloadData = Base64.encodeBase64String(data);
- resourceDetails.setPayloadData(payloadData);
-
- resourceDetails.setPayloadName(payloadName);
- resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
- RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, sdncModifierDetails);
- BaseRestUtils.checkCreateResponse(createResource);
-
- List<ImmutablePair<String, String>> propertyNamesValues = new ArrayList<>();
- propertyNamesValues.add(new ImmutablePair<String, String>("num_cpus", "2"));
- propertyNamesValues.add(new ImmutablePair<String, String>("mem_size", "2000 MB"));
- checkResource(createResource, 8, container, "DBMS", propertyNamesValues);
-
- ResourceReqDetails resourceDetails2 = ElementFactory.getDefaultResource();
- resourceDetails2.setCsarUUID("vf_with_cap_prop_override_cap_type_prop.csar");
- resourceDetails2.setResourceType(ResourceTypeEnum.VF.name());
- createResource = ResourceRestUtils.createResource(resourceDetails2, sdncModifierDetails);
- BaseRestUtils.checkCreateResponse(createResource);
-
- checkResource(createResource, 8, container, "DBMS", propertyNamesValues);
- }
-
- /**
- * importResourceWithCapabilityWithPropertiesOverridingCapTypePropertiesFailed
- *
- * @throws Exception
- */
- @Test
- public void importResourceWithCapabilityWithPropertiesOverridingCapTypePropertiesFailed() throws Exception {
- User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
- String payloadName = "vf_with_cap_prop_override_cap_type_prop_failed.csar";
- ImportReqDetails resourceDetails = ElementFactory.getDefaultImportResource();
- Path path = Paths
- .get(rootPath + "/src/test/resources/CI/csars/vf_with_cap_prop_override_cap_type_prop_failed.csar");
- byte[] data = Files.readAllBytes(path);
- String payloadData = Base64.encodeBase64String(data);
- resourceDetails.setPayloadData(payloadData);
-
- resourceDetails.setPayloadName(payloadName);
- resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
- RestResponse createResource = ResourceRestUtils.createResource(resourceDetails, sdncModifierDetails);
- BaseRestUtils.checkErrorMessageResponse(createResource, ActionStatus.INVALID_PROPERTY);
-
- ResourceReqDetails resourceDetails2 = ElementFactory.getDefaultResource();
- resourceDetails2.setCsarUUID("vf_with_cap_prop_override_cap_type_prop_failed.csar");
- resourceDetails2.setResourceType(ResourceTypeEnum.VF.name());
- createResource = ResourceRestUtils.createResource(resourceDetails2, sdncModifierDetails);
- BaseRestUtils.checkErrorMessageResponse(createResource, ActionStatus.INVALID_PROPERTY);
-
- }
-
- /**
- * Capability Assignment (on node_template / resource instance) - should
- * support assignment of the property (property value). On the resource
- * instance level, value can be assigned to either properties that are
- * defined on the capability type or on the capability definition. When
- * importing a VF - the node_template can have capability's property value.
- * It should be imported and saved on the graph Acceptance Criteria: import
- * a VF that assign values to property of capability that was defined on the
- * capability definition (on the node type)
- *
- * @throws Exception
- */
- @Test
- public void importResourceWithCapabilityWithPropertiesOverridingNodeTypeCapPropertiesSucceed() throws Exception {
-
- User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
- ImportReqDetails resourceDetails = ElementFactory.getDefaultImportResource();
- RestResponse createResource = importUserDefinedNodeType(userDefinedNodeYaml, sdncModifierDetails,
- resourceDetails);
- BaseRestUtils.checkCreateResponse(createResource);
- Resource userDefinedNodeType = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(),
- Resource.class);
-
- String payloadName = "vf_with_cap_prop_override_cap_type_prop1.csar";
- resourceDetails = ElementFactory.getDefaultImportResource();
- Path path = Paths.get(rootPath + "/src/test/resources/CI/csars/vf_with_cap_prop_override_cap_type_prop1.csar");
- byte[] data = Files.readAllBytes(path);
- String payloadData = Base64.encodeBase64String(data);
- resourceDetails.setPayloadData(payloadData);
-
- resourceDetails.setPayloadName(payloadName);
- resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
- createResource = ResourceRestUtils.createResource(resourceDetails, sdncModifierDetails);
- BaseRestUtils.checkCreateResponse(createResource);
-
- List<ImmutablePair<String, String>> propertyNamesValues = new ArrayList<>();
- propertyNamesValues.add(new ImmutablePair<String, String>("num_cpus", "2"));
- propertyNamesValues.add(new ImmutablePair<String, String>("mem_size", "2000 MB"));
- checkResource(createResource, 8, container, "DBMS", propertyNamesValues);
-
- List<ImmutablePair<String, String>> propertyNamesValues1 = new ArrayList<>();
- propertyNamesValues1.add(new ImmutablePair<String, String>(propertyForTestName, "success_again"));
- propertyNamesValues1.add(new ImmutablePair<String, String>(minInstances, "4"));
- checkResource(createResource, 8, scalable, userDefinedNodeType.getName(), propertyNamesValues1);
-
- ResourceReqDetails resourceDetails2 = ElementFactory.getDefaultResource();
- resourceDetails2.setCsarUUID("vf_with_cap_prop_override_cap_type_prop1.csar");
- resourceDetails2.setResourceType(ResourceTypeEnum.VF.name());
- createResource = ResourceRestUtils.createResource(resourceDetails2, sdncModifierDetails);
- BaseRestUtils.checkCreateResponse(createResource);
-
- checkResource(createResource, 8, container, "DBMS", propertyNamesValues);
- checkResource(createResource, 8, scalable, userDefinedNodeType.getName(), propertyNamesValues1);
-
- }
-
- /**
- * importResourceWithCapabilityWithPropertiesOverridingNodeTypeCapPropertiesFailed
- *
- * @throws Exception
- */
- @Test
- public void importResourceWithCapabilityWithPropertiesOverridingNodeTypeCapPropertiesFailed() throws Exception {
-
- User sdncModifierDetails = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
- ImportReqDetails resourceDetails = ElementFactory.getDefaultImportResource();
- RestResponse createResource = importUserDefinedNodeType(userDefinedNodeYaml, sdncModifierDetails,
- resourceDetails);
- BaseRestUtils.checkCreateResponse(createResource);
-
- String payloadName = "vf_with_cap_prop_override_cap_type_prop1_failed.csar";
- resourceDetails = ElementFactory.getDefaultImportResource();
- Path path = Paths
- .get(rootPath + "/src/test/resources/CI/csars/vf_with_cap_prop_override_cap_type_prop1_failed.csar");
- byte[] data = Files.readAllBytes(path);
- String payloadData = Base64.encodeBase64String(data);
- resourceDetails.setPayloadData(payloadData);
-
- resourceDetails.setPayloadName(payloadName);
- resourceDetails.setResourceType(ResourceTypeEnum.VF.name());
- createResource = ResourceRestUtils.createResource(resourceDetails, sdncModifierDetails);
- BaseRestUtils.checkErrorResponse(createResource, ActionStatus.PROPERTY_NAME_ALREADY_EXISTS,
- propertyForTestName);
-
- ResourceReqDetails resourceDetails2 = ElementFactory.getDefaultResource();
- resourceDetails2.setCsarUUID("vf_with_cap_prop_override_cap_type_prop1_failed.csar");
- resourceDetails2.setResourceType(ResourceTypeEnum.VF.name());
- createResource = ResourceRestUtils.createResource(resourceDetails2, sdncModifierDetails);
- BaseRestUtils.checkErrorResponse(createResource, ActionStatus.PROPERTY_NAME_ALREADY_EXISTS,
- propertyForTestName);
- }
-
- private RestResponse importUserDefinedNodeType(String payloadName, User sdncModifierDetails,
- ImportReqDetails resourceDetails) throws Exception {
-
- Path path = Paths.get(rootPath + "/src/test/resources/CI/csars/" + payloadName);
- byte[] data = Files.readAllBytes(path);
- String payloadData = Base64.encodeBase64String(data);
- resourceDetails.setPayloadData(payloadData);
-
- resourceDetails.setPayloadName(payloadName);
- resourceDetails.setResourceType(ResourceTypeEnum.VFC.name());
- return ResourceRestUtils.createResource(resourceDetails, sdncModifierDetails);
- }
-
- // TODO Tal: Since Cashing change partial resource returned that causes null
- // pointer exception
- // commented out till fixing
- private void checkResource(RestResponse createResource, int capNum, String capType, String riName,
- List<ImmutablePair<String, String>> propertyNamesValues) {
- Resource resource = ResponseParser.parseToObjectUsingMapper(createResource.getResponse(), Resource.class);
-
- Map<String, List<CapabilityDefinition>> capabilities = resource.getCapabilities();
- // TODO Tal: Since Cashing change partial resource returned that causes
- // null pointer exception
- /* assertEquals(capabilities.size(), capNum); */
- /*
- * List<CapabilityDefinition> capabilitesContainer =
- * capabilities.get(capType);
- */
-
- ComponentInstance resourceRI = resource.getComponentInstances().stream()
- .filter(ri -> ri.getComponentName().equals(riName)).collect(Collectors.toList()).get(0);
- // TODO Tal: Since Cashing change partial resource returned that causes
- // null pointer exception
- /*
- * CapabilityDefinition capabilityFromContainer =
- * capabilitesContainer.stream()
- * .filter(cap->cap.getOwnerId().equals(resourceRI.getUniqueId())).
- * collect(Collectors.toList()).get(0);
- */
-
- CapabilityDefinition capabilityFromRI = resourceRI.getCapabilities().get(capType).get(0);
- for (ImmutablePair<String, String> propValuePair : propertyNamesValues) {
- // TODO Tal: Since Cashing change partial resource returned that
- // causes null pointer exception
- /*
- * Map<String, ComponentInstanceProperty> propertiesFromContainer =
- * capabilityFromContainer.getProperties()
- * .stream().filter(p->p.getName().equalsIgnoreCase(propValuePair.
- * getLeft())) .collect(Collectors.toMap(p->p.getName(), p->p));
- */
-
- List<ComponentInstanceProperty> propertiesFromRI = capabilityFromRI.getProperties().stream()
- .filter(p -> p.getName().equalsIgnoreCase(propValuePair.getLeft())).collect(Collectors.toList());
- // TODO Tal: Since Cashing change partial resource returned that
- // causes null pointer exception
- /*
- * for(ComponentInstanceProperty riProp : propertiesFromRI){
- * assertTrue(propertiesFromContainer.containsKey(riProp.getName()))
- * ; ComponentInstanceProperty containerProp =
- * propertiesFromContainer.get(riProp.getName());
- * assertEquals(riProp.getValue(), containerProp.getValue());
- * if(riProp.getName().equals(propValuePair.getLeft()))
- * assertEquals(riProp.getValue(), propValuePair.getRight());
- *
- * }
- */
- }
- }
-
-}