aboutsummaryrefslogtreecommitdiffstats
path: root/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/interfaceoperation/InterfaceOperationsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/interfaceoperation/InterfaceOperationsTest.java')
-rw-r--r--test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/interfaceoperation/InterfaceOperationsTest.java264
1 files changed, 264 insertions, 0 deletions
diff --git a/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/interfaceoperation/InterfaceOperationsTest.java b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/interfaceoperation/InterfaceOperationsTest.java
new file mode 100644
index 0000000000..8b2343c6c9
--- /dev/null
+++ b/test-apis-ci/src/main/java/org/openecomp/sdc/ci/tests/execute/interfaceoperation/InterfaceOperationsTest.java
@@ -0,0 +1,264 @@
+package org.openecomp.sdc.ci.tests.execute.interfaceoperation;
+
+import static org.testng.AssertJUnit.fail;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import fj.data.Either;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Rule;
+import org.junit.rules.TestName;
+import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.OperationInputDefinition;
+import org.openecomp.sdc.be.datatypes.elements.OperationOutputDefinition;
+import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
+import org.openecomp.sdc.be.model.InputDefinition;
+import org.openecomp.sdc.be.model.InterfaceDefinition;
+import org.openecomp.sdc.be.model.Operation;
+import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.model.Service;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
+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.AtomicOperationUtils;
+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.InterfaceOperationsRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+public class InterfaceOperationsTest extends ComponentBaseTest {
+
+ @Rule
+ private static final TestName name = new TestName();
+ private static final String INTERFACES = "interfaces";
+ private static final String TOSCA_PRESENTATION = "toscaPresentation";
+ private static final User user = ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER);
+
+ private static Service service;
+ private static Resource resource;
+ private String resourceInterfaceUniqueId;
+ private String resourceOperationUniqueId;
+ private String serviceInterfaceUniqueId;
+ private String serviceOperationUniqueId;
+
+ public InterfaceOperationsTest() {
+ super(name, InterfaceOperationsTest.class.getName());
+ }
+
+ @BeforeClass
+ public static void init() throws Exception {
+ // Create default service
+ Either<Service, RestResponse> createDefaultServiceEither =
+ AtomicOperationUtils.createDefaultService(UserRoleEnum.DESIGNER, true);
+ if (createDefaultServiceEither.isRight()) {
+ fail("Error creating default service");
+ }
+ service = createDefaultServiceEither.left().value();
+
+ // Create default resource
+ Either<Resource, RestResponse> createDefaultResourceEither =
+ AtomicOperationUtils.createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true);
+ if (createDefaultResourceEither.isRight()) {
+ fail("Error creating default resource");
+ }
+ resource = createDefaultResourceEither.left().value();
+ }
+
+ private Map<String, Object> buildInterfaceDefinitionForResource() {
+ Operation operation = new Operation();
+ operation.setName("TestOperationOnResource");
+ operation.setWorkflowId("WorkflowId");
+ operation.setWorkflowVersionId("workflowVersionId");
+ operation.setWorkflowAssociationType("NONE");
+ PropertyDefinition property =
+ resource.getInputs().stream().filter(a -> a.getName().equalsIgnoreCase("nf_naming")).findFirst()
+ .orElse(new InputDefinition());
+ ListDataDefinition<OperationInputDefinition> operationInputDefinitionList = new ListDataDefinition<>();
+ operationInputDefinitionList.add(createOperationInputDefinition("TestInput1", property.getUniqueId()));
+ operation.setInputs(operationInputDefinitionList);
+ ListDataDefinition<OperationOutputDefinition> operationOutputDefinitionList = new ListDataDefinition<>();
+ operationOutputDefinitionList.add(createOperationOutputDefinition("TestOutput1"));
+ operation.setOutputs(operationOutputDefinitionList);
+ return buildInterfaceDefinitionMap(operation, "TestInterface", resourceInterfaceUniqueId, resourceOperationUniqueId);
+ }
+
+ private Map<String, Object> buildInterfaceDefinitionOfGlobalTypeForResource() {
+ Operation operation = new Operation();
+ operation.setName("create");
+ operation.setWorkflowId("WorkflowId");
+ operation.setWorkflowVersionId("workflowVersionId");
+ operation.setWorkflowAssociationType("NONE");
+ PropertyDefinition property =
+ resource.getInputs().stream().filter(a -> a.getName().equalsIgnoreCase("nf_naming")).findFirst()
+ .orElse(new InputDefinition());
+ ListDataDefinition<OperationInputDefinition> operationInputDefinitionList = new ListDataDefinition<>();
+ operationInputDefinitionList.add(createOperationInputDefinition("TestInput1", property.getUniqueId()));
+ operation.setInputs(operationInputDefinitionList);
+ ListDataDefinition<OperationOutputDefinition> operationOutputDefinitionList = new ListDataDefinition<>();
+ operationOutputDefinitionList.add(createOperationOutputDefinition("TestOutput1"));
+ operation.setOutputs(operationOutputDefinitionList);
+ return buildInterfaceDefinitionMap(operation,"tosca.interfaces.node.lifecycle.Standard", resourceInterfaceUniqueId, resourceOperationUniqueId);
+ }
+
+ private OperationInputDefinition createOperationInputDefinition(String name, String inputId) {
+ OperationInputDefinition operationInputDefinition = new OperationInputDefinition();
+ operationInputDefinition.setName(name);
+ operationInputDefinition.setInputId(inputId);
+ operationInputDefinition.setRequired(true);
+ operationInputDefinition.setType("string");
+ return operationInputDefinition;
+ }
+
+ private OperationOutputDefinition createOperationOutputDefinition(String name) {
+ OperationOutputDefinition operationOutputDefinition = new OperationOutputDefinition();
+ operationOutputDefinition.setName(name);
+ operationOutputDefinition.setRequired(true);
+ operationOutputDefinition.setType("string");
+ return operationOutputDefinition;
+ }
+
+ private Map<String, Object> buildInterfaceDefinitionMap(Operation operation, String interfaceType, String interfaceId,
+ String operationId) {
+ if (operationId != null) {
+ operation.setUniqueId(operationId);
+ }
+ Map<String, Operation> operationMap = new HashMap<>();
+ operationMap.put(operation.getName(), operation);
+
+ InterfaceDefinition interfaceDefinition = new InterfaceDefinition();
+ interfaceDefinition.setType(interfaceType);
+ interfaceDefinition.setOperationsMap(operationMap);
+ if (interfaceId != null) {
+ interfaceDefinition.setUniqueId(interfaceId);
+ }
+ interfaceDefinition.setOperationsMap(operationMap);
+
+ Map<String, Object> interfaceDefAsMap = getObjectAsMap(interfaceDefinition);
+ Map<String, Object> interfaceMap = new HashMap<>();
+ interfaceMap.put(interfaceDefinition.getType(), interfaceDefAsMap);
+ Map<String, Object> outerMap = new HashMap<>();
+ outerMap.put(INTERFACES, interfaceMap);
+ return outerMap;
+ }
+
+ private static Map<String, Object> getObjectAsMap(Object obj) {
+ ObjectMapper objectMapper = new ObjectMapper();
+ if (obj instanceof InterfaceDefinition) {
+ objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+ }
+ Map<String, Object> objectAsMap =
+ obj instanceof Map ? (Map<String, Object>) obj : objectMapper.convertValue(obj, Map.class);
+ objectAsMap.remove(TOSCA_PRESENTATION);
+ return objectAsMap;
+ }
+
+ private Map<String, Object> buildInterfaceDefinitionForService() {
+ Operation operation = new Operation();
+ operation.setName("TestOperationOnService");
+ operation.setWorkflowId("WorkflowId");
+ operation.setWorkflowVersionId("workflowVersionId");
+ operation.setWorkflowAssociationType("NONE");
+ return buildInterfaceDefinitionMap(operation,"TestInterface", serviceInterfaceUniqueId, serviceOperationUniqueId);
+ }
+
+ @Test
+ public void addInterfaceOperationsOnResource() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .addInterfaceOperations(resource, buildInterfaceDefinitionForResource(),
+ user);
+ logger.info("addInterfaceOperationsOnResource Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ String interfaceDefinitionStr = ResponseParser.getListFromJson(restResponse, INTERFACES).get(0).toString();
+ InterfaceDefinition interfaceDefinition =
+ ResponseParser.convertInterfaceDefinitionResponseToJavaObject(interfaceDefinitionStr);
+ resourceInterfaceUniqueId = interfaceDefinition.getUniqueId();
+ resourceOperationUniqueId = interfaceDefinition.getOperationsMap().keySet().stream().findFirst().orElse(null);
+ }
+
+ @Test(dependsOnMethods = "addInterfaceOperationsOnResource")
+ public void getInterfaceOperationsFromResource() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .getInterfaceOperations(resource, resourceInterfaceUniqueId,
+ resourceOperationUniqueId, user);
+ logger.info("getInterfaceOperationsFromResource Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ }
+
+ @Test(dependsOnMethods = "getInterfaceOperationsFromResource")
+ public void updateInterfaceOperationsOnResource() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .updateInterfaceOperations(resource, buildInterfaceDefinitionForResource(),
+ user);
+ logger.info("updateInterfaceOperationsOnResource Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ }
+
+ /*@Test(dependsOnMethods = "updateInterfaceOperationsOnResource")
+ public void deleteInterfaceOperationsFromResource() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .deleteInterfaceOperations(resource, resourceInterfaceUniqueId,
+ resourceOperationUniqueId, user);
+ logger.info("deleteInterfaceOperationsFromResource Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ }*/
+
+ @Test
+ public void addInterfaceOperationsOnService() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .addInterfaceOperations(service, buildInterfaceDefinitionForService(),
+ user);
+ logger.info("addInterfaceOperationsOnService Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ String interfaceDefinitionStr = ResponseParser.getListFromJson(restResponse, INTERFACES).get(0).toString();
+ InterfaceDefinition interfaceDefinition =
+ ResponseParser.convertInterfaceDefinitionResponseToJavaObject(interfaceDefinitionStr);
+ serviceInterfaceUniqueId = interfaceDefinition.getUniqueId();
+ serviceOperationUniqueId = interfaceDefinition.getOperationsMap().keySet().stream().findFirst().orElse(null);
+ }
+
+ @Test(dependsOnMethods = "addInterfaceOperationsOnService")
+ public void getInterfaceOperationsFromService() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .getInterfaceOperations(service, serviceInterfaceUniqueId,
+ serviceOperationUniqueId, user);
+ logger.info("getInterfaceOperationsFromService Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ }
+
+ @Test(dependsOnMethods = "getInterfaceOperationsFromService")
+ public void updateInterfaceOperationsOnService() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .updateInterfaceOperations(service, buildInterfaceDefinitionForService(),
+ user);
+ logger.info("updateInterfaceOperations Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ }
+
+ @Test(dependsOnMethods = "updateInterfaceOperationsOnService")
+ public void deleteInterfaceOperationsFromService() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .deleteInterfaceOperations(service, serviceInterfaceUniqueId,
+ serviceOperationUniqueId, user);
+ logger.info("deleteInterfaceOperations Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ }
+
+ @Test
+ public void addInterfaceOperationsOfGlobalTypeOnResource() throws Exception {
+ RestResponse restResponse = InterfaceOperationsRestUtils
+ .addInterfaceOperations(resource, buildInterfaceDefinitionOfGlobalTypeForResource(),
+ user);
+ logger.info("addInterfaceOperationsOnResource Response Code:" + restResponse.getErrorCode());
+ Assert.assertEquals((int) restResponse.getErrorCode(), BaseRestUtils.STATUS_CODE_SUCCESS);
+ String interfaceDefinitionStr = ResponseParser.getListFromJson(restResponse, INTERFACES).get(0).toString();
+ InterfaceDefinition interfaceDefinition =
+ ResponseParser.convertInterfaceDefinitionResponseToJavaObject(interfaceDefinitionStr);
+ }
+
+}