summaryrefslogtreecommitdiffstats
path: root/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java
diff options
context:
space:
mode:
Diffstat (limited to 'asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java')
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java4044
1 files changed, 3274 insertions, 770 deletions
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java
index 418e8f6dc8..7e8d5cf8cc 100644
--- a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/devCI/CRUDExternalAPI.java
@@ -22,7 +22,9 @@ package org.openecomp.sdc.ci.tests.execute.devCI;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.http.HttpEntity;
@@ -35,13 +37,19 @@ import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.util.EntityUtils;
+import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig.Feature;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.junit.Rule;
import org.junit.rules.TestName;
+import org.openecomp.sdc.be.config.BeEcompErrorManager;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
import org.openecomp.sdc.be.datatypes.enums.AssetTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
import org.openecomp.sdc.be.model.ArtifactDefinition;
import org.openecomp.sdc.be.model.ArtifactUiDownloadData;
@@ -54,10 +62,11 @@ import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
import org.openecomp.sdc.ci.tests.api.ComponentBaseTest;
import org.openecomp.sdc.ci.tests.config.Config;
import org.openecomp.sdc.ci.tests.datatypes.ArtifactReqDetails;
-import org.openecomp.sdc.ci.tests.datatypes.ResourceDetailedAssetStructure;
import org.openecomp.sdc.ci.tests.datatypes.ResourceReqDetails;
import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
import org.openecomp.sdc.ci.tests.datatypes.enums.ArtifactTypeEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.DistributionNotificationStatusEnum;
+import org.openecomp.sdc.ci.tests.datatypes.enums.ErrorInfo;
import org.openecomp.sdc.ci.tests.datatypes.enums.LifeCycleStatesEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.NormativeTypesEnum;
import org.openecomp.sdc.ci.tests.datatypes.enums.ResourceCategoryEnum;
@@ -68,13 +77,13 @@ 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.ArtifactRestUtils;
-import org.openecomp.sdc.ci.tests.utils.rest.AssetRestUtils;
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.openecomp.sdc.ci.tests.utils.validation.AuditValidationUtils;
+import org.openecomp.sdc.ci.tests.utils.validation.DistributionValidationUtils;
+import org.openecomp.sdc.ci.tests.utils.validation.ErrorValidationUtils;
import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
import org.openecomp.sdc.common.api.Constants;
+import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
import org.openecomp.sdc.common.util.GeneralUtility;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -86,9 +95,13 @@ import org.testng.annotations.Test;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
+import com.relevantcodes.extentreports.LogStatus;
import fj.data.Either;
+
+import static java.util.Arrays.asList;
+
public class CRUDExternalAPI extends ComponentBaseTest {
private static Logger log = LoggerFactory.getLogger(CRUDExternalAPI.class.getName());
@@ -99,781 +112,3254 @@ public class CRUDExternalAPI extends ComponentBaseTest {
protected String contentTypeHeaderData = "application/json";
protected String acceptHeaderDate = "application/json";
+
+
protected Gson gson = new Gson();
protected JSONParser jsonParser = new JSONParser();
+
protected String serviceVersion;
protected ResourceReqDetails resourceDetails;
protected User sdncUserDetails;
protected ServiceReqDetails serviceDetails;
+
@BeforeMethod
- public void init() throws Exception {
+ public void init() throws Exception{
AtomicOperationUtils.createDefaultConsumer(true);
}
-
- @Rule
+
+
+ @Rule
public static TestName name = new TestName();
public CRUDExternalAPI() {
super(name, CRUDExternalAPI.class.getName());
}
+
+
+
+ @DataProvider(name="uploadArtifactOnVfcVlCpViaExternalAPI")
+ public static Object[][] dataProviderUploadArtifactOnVfcVlCpViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.CP}
+ };
+ }
+
- @DataProvider(name = "uploadArtifactOnVFViaExternalAPI")
+
+ // External API
+ // Upload artifact on VFC, VL, CP via external API - happy flow
+ @Test(dataProvider="uploadArtifactOnVfcVlCpViaExternalAPI")
+ public void uploadArtifactOnVfcVlCpViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s, resourceTypeEnum: %s", chosenLifeCycleState, artifactType, resourceTypeEnum));
+ uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE, chosenLifeCycleState, artifactType, resourceTypeEnum);
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @DataProvider(name="uploadArtifactOnVFViaExternalAPI")
public static Object[][] dataProviderUploadArtifactOnVFViaExternalAPI() {
- return new Object[][] { { LifeCycleStatesEnum.CHECKIN, "DCAE_JSON" },
- { LifeCycleStatesEnum.CHECKOUT, "DCAE_POLICY" }, { LifeCycleStatesEnum.CHECKOUT, "DCAE_EVENT" },
- { LifeCycleStatesEnum.CHECKOUT, "APPC_CONFIG" }, { LifeCycleStatesEnum.CHECKOUT, "DCAE_DOC" },
- { LifeCycleStatesEnum.CHECKOUT, "DCAE_TOSCA" }, { LifeCycleStatesEnum.CHECKOUT, "YANG_XML" },
- { LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG" }, { LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE" },
- { LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE" },
- { LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE" },
- { LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC" }, { LifeCycleStatesEnum.CHECKOUT, "OTHER" } };
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CHECKOUT, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CHECKIN, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER"},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER"}
+ };
}
+
+
// External API
// Upload artifact on VF via external API - happy flow
- @Test(dataProvider = "uploadArtifactOnVFViaExternalAPI")
- public void uploadArtifactOnVFViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType)
- throws Exception {
- // Method passed variable
- // artifactType = "YANG_XML";
- // chosenLifeCycleState = LifeCycleStatesEnum.CHECKOUT;
+ @Test(dataProvider="uploadArtifactOnVFViaExternalAPI")
+ public void uploadArtifactOnVFViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE, chosenLifeCycleState, artifactType, null);
+ }
+
+
+
+
+
+ @DataProvider(name="uploadArtifactOnServiceViaExternalAPI")
+ public static Object[][] dataProviderUploadArtifactOnServiceViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER"}
+ };
+ }
+
+
+
+
+
+ @Test(dataProvider="uploadArtifactOnServiceViaExternalAPI")
+ public void uploadArtifactOnServiceViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.SERVICE, chosenLifeCycleState, artifactType, null);
+ }
+
+
+ @DataProvider(name="uploadArtifactOnServiceViaExternalAPIIncludingDistribution")
+ public static Object[][] dataProviderUploadArtifactOnServiceViaExternalAPIIncludingDistribution() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
+ };
+ }
+
+ @Test(dataProvider="uploadArtifactOnServiceViaExternalAPIIncludingDistribution")
+ public void uploadArtifactOnServiceViaExternalAPIIncludingDistribution(LifeCycleStatesEnum chosenLifeCycleState, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.SERVICE, chosenLifeCycleState, artifactType, null);
+
+ component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, true).getLeft();
+
+ if(config.getIsDistributionClientRunning()){
+ List<String> distributionStatusList = Arrays.asList(DistributionNotificationStatusEnum.DOWNLOAD_OK.toString(), DistributionNotificationStatusEnum.DEPLOY_OK.toString(), DistributionNotificationStatusEnum.NOTIFIED.toString());
+ DistributionValidationUtils.validateDistributedArtifactsByAudit((Service)component, distributionStatusList);
+ }
+ }
+
+
+ // Happy flow - get chosen life cycle state, artifact type and asset type
+ // Create asset, upload artifact via external API + check audit & response code
+ // Download artifact via external API + check audit & response code
+ protected Component uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum componentTypeEnum, LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ Component component = null;
+ RestResponse restResponse;
+ int numberOfArtifact = 0;
+
+ // get artifact data
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, false);
+
+ // create component/s & upload artifact via external api
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+
+ component = getComponentWithResourceInstanceInTargetLifeCycleState(chosenLifeCycleState, resourceTypeEnum);
+ restResponse = uploadArtifactOfRIIncludingValiditionOfAuditAndResponseCode(component, component.getComponentInstances().get(0), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, 200);
+
+ if((LifeCycleStatesEnum.CERTIFICATIONREQUEST == chosenLifeCycleState) && (!component.getComponentType().toString().equals(ComponentTypeEnum.RESOURCE.toString()))) {
+ numberOfArtifact = (component.getComponentInstances().get(0).getDeploymentArtifacts() == null ? 0 : component.getComponentInstances().get(0).getDeploymentArtifacts().size()) + 1;
+ } else {
+ numberOfArtifact = (component.getComponentInstances().get(0).getDeploymentArtifacts() == null ? 0 : component.getComponentInstances().get(0).getDeploymentArtifacts().size()) + 1;
+ }
+ } else {
+ component = getComponentInTargetLifeCycleState(componentTypeEnum.toString(), UserRoleEnum.DESIGNER, chosenLifeCycleState, resourceTypeEnum);
+
+ restResponse = uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, 200);
+ numberOfArtifact = component.getDeploymentArtifacts().size() + 1;
+ }
+
+
+
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+ component = getNewerVersionOfComponent(component, chosenLifeCycleState);
+
+ // Get list of deployment artifact + download them via external API
+ Map<String, ArtifactDefinition> deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+ Assert.assertEquals(numberOfArtifact, deploymentArtifacts.keySet().size(), "Expected that number of deployment artifact will be increase by one.");
+
+ // Download the uploaded artifact via external API
+ downloadResourceDeploymentArtifactExternalAPI(component, deploymentArtifacts.get(responseArtifact.getArtifactLabel()), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentTypeEnum);
+
+ return component;
+ }
+
+ // Upload artifact via external API + Check auditing for upload operation + Check response of external API
+ protected RestResponse uploadArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, ComponentInstance componentInstance, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, resourceDetails.getComponentInstances().get(0));
+
+ // Check response of external API
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
+
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, componentInstance.getNormalizedName());
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts");
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), body);
+
+ return restResponse;
+ }
+
+
+
+
+ protected Component getComponentWithResourceInstanceInTargetLifeCycleState(LifeCycleStatesEnum lifeCycleStatesEnum, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ Component component;
+ if(resourceTypeEnum == ResourceTypeEnum.VF) {
+ component = getComponentInTargetLifeCycleState(ComponentTypeEnum.SERVICE.toString(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, null);
+
+ Component resourceInstanceDetails = getComponentInTargetLifeCycleState(ComponentTypeEnum.RESOURCE.getValue(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, null);
+ AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceInstanceDetails, component, UserRoleEnum.DESIGNER, true).left().value();
+
+ // Add artifact to service if asked for certifcationrequest - must be at least one artifact for the flow
+ if((LifeCycleStatesEnum.CERTIFICATIONREQUEST == lifeCycleStatesEnum) || (LifeCycleStatesEnum.STARTCERTIFICATION == lifeCycleStatesEnum)) {
+ }
+ AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, component, UserRoleEnum.DESIGNER, true, true).left().value();
+ component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, lifeCycleStatesEnum, true).getLeft();
+ } else {
+ component = getComponentInTargetLifeCycleState(ComponentTypeEnum.RESOURCE.toString(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, null);
+ Component resourceInstanceDetails = getComponentInTargetLifeCycleState(ComponentTypeEnum.RESOURCE.getValue(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFY, resourceTypeEnum);
+ AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceInstanceDetails, component, UserRoleEnum.DESIGNER, true).left().value();
+ component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, lifeCycleStatesEnum, true).getLeft();
+ }
+
+
+ return component;
+ }
+
+
+
+
+ // Upload artifact via external API + Check auditing for upload operation + Check response of external API
+ protected RestResponse uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails, sdncModifierDetails, artifactReqDetails);
+
+ // Check response of external API
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
+
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), body);
+
+ return restResponse;
+ }
+
+
+
+ // Check Component version (increase by one if not in checkout)
+ // Input: component, componentLifeCycleState
+ // for any LifeCycleState != checkout
+ // find component of version +0.1
+ // check that this version different for input version
+ // check that this component uniqueID different from input uniqueID
+ // Return: that version
+ protected Component getNewerVersionOfComponent(Component component, LifeCycleStatesEnum lifeCycleStatesEnum) throws Exception {
+ Component resourceDetails = null;
+
+ if((!lifeCycleStatesEnum.equals(LifeCycleStatesEnum.CHECKOUT)) && (!lifeCycleStatesEnum.equals(LifeCycleStatesEnum.STARTCERTIFICATION))) {
+
+
+ String resourceVersion = component.getVersion();
+ String resourceUniqueID = component.getUniqueId();
+
+ if(component.getComponentType().equals(ComponentTypeEnum.SERVICE)) {
+ resourceDetails = AtomicOperationUtils.getServiceObjectByNameAndVersion(UserRoleEnum.DESIGNER, component.getName(), String.format("%.1f", Double.parseDouble(component.getVersion()) + 0.1));
+ } else {
+ resourceDetails = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, component.getName(), String.format("%.1f", Double.parseDouble(component.getVersion()) + 0.1));
+ }
+
+ String resourceNewVersion = resourceDetails.getVersion();
+ String resourceNewUniqueID = resourceDetails.getUniqueId();
+
+ System.out.println(resourceNewVersion);
+ System.out.println("Service UUID: " + resourceDetails.getUUID());
+ System.out.println("Service UniqueID: " + resourceDetails.getUniqueId());
+
+ // Checking that new version exist + different from old one by unique id
+ Assert.assertNotEquals(resourceVersion, resourceNewVersion, "Expected for diffrent resource version.");
+ Assert.assertNotEquals(resourceUniqueID, resourceNewUniqueID, "Expected that resource will have new unique ID.");
+ } else {
+ if(component.getComponentType().equals(ComponentTypeEnum.SERVICE)) {
+ resourceDetails = AtomicOperationUtils.getServiceObjectByNameAndVersion(UserRoleEnum.DESIGNER, component.getName(), component.getVersion());
+ } else {
+ resourceDetails = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, component.getName(), component.getVersion());
+ }
+ }
+ return resourceDetails;
+ }
+
+
+
+
+
+ // download deployment via external api + check response code for success (200) + get artifactReqDetails and verify payload + verify audit
+ protected RestResponse downloadResourceDeploymentArtifactExternalAPI(Component resourceDetails, ArtifactDefinition artifactDefinition, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, ComponentTypeEnum componentTypeEnum) throws Exception {
+ RestResponse restResponse;
+
+ if(componentTypeEnum == ComponentTypeEnum.RESOURCE_INSTANCE) {
+ restResponse = ArtifactRestUtils.getComponentInstanceDeploymentArtifactExternalAPI(resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID(), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentType().toString());
+ } else {
+ restResponse = ArtifactRestUtils.getResourceDeploymentArtifactExternalAPI(resourceDetails.getUUID(), artifactDefinition.getArtifactUUID(), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentType().toString());
+ }
+
+ Integer responseCode = restResponse.getErrorCode();
+ Integer expectedCode = 200;
+ Assert.assertEquals(responseCode,expectedCode, "Response code is not correct.");
+
+
+ // For known artifact/payload - verify payload of downloaded artfaict
+ if (artifactReqDetails != null) {
+ String response = restResponse.getResponse();
+ String payloadData = artifactReqDetails.getPayload();
+ String decodedPaypload = org.openecomp.sdc.ci.tests.utils.Decoder.decode(payloadData);
+
+ Assert.assertEquals(response, decodedPaypload, "Response artifact payload not correct.");
+ }
+
+ //TODO - including body - resourceDetails.getName()
+// // Verify audit
+// String auditAction = "DownloadArtifact";
+//
+// Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+// body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
+// body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+//
+// ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
+// expectedResourceAuditJavaObject.setAction(auditAction);
+// expectedResourceAuditJavaObject.setResourceType(resourceDetails.getComponentType().getValue());
+// expectedResourceAuditJavaObject.setStatus("200");
+// expectedResourceAuditJavaObject.setDesc("OK");
+// expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
+//
+// if(componentTypeEnum == ComponentTypeEnum.RESOURCE_INSTANCE) {
+// expectedResourceAuditJavaObject.setResourceName(resourceDetails.getComponentInstances().get(0).getName());
+// String resource_url = String.format("/asdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s", resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID());
+// expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
+//
+// AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
+// } else {
+// expectedResourceAuditJavaObject.setResourceName(resourceDetails.getName());
+// String resource_url = String.format("/asdc/v1/catalog/services/%s/artifacts/%s", resourceDetails.getUUID(), artifactDefinition.getArtifactUUID());
+// expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
+// }
+//
+// AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
+
+ return restResponse;
+
+ }
+
+ // download deployment via external api + check response code for success (200) + verify audit
+ protected void downloadResourceDeploymentArtifactExternalAPI(Component resourceDetails, ArtifactDefinition artifactDefinition, User sdncModifierDetails) throws Exception {
+ downloadResourceDeploymentArtifactExternalAPI(resourceDetails, artifactDefinition, sdncModifierDetails, null, resourceDetails.getComponentType());
+ }
+
+
+
+
+
+
+
+
+
+ @DataProvider(name="uploadArtifactOnRIViaExternalAPI")
+ public static Object[][] dataProviderUploadArtifactOnRIViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT"},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL"},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP"},
+
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT"},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL"},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP"},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP"}
+
+ };
+ }
+
+
+
+
+
+ @Test(dataProvider="uploadArtifactOnRIViaExternalAPI")
+ public void uploadArtifactOnRIViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE_INSTANCE, chosenLifeCycleState, artifactType, null);
+ }
+
+
+
+ @DataProvider(name="uploadArtifactOnVfcVlCpRIViaExternalAPI")
+ public static Object[][] dataProviderUploadArtifactOnVfcVlCpRIViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.CP}
+
+ };
+ }
+
+
+
+
+
+ @Test(dataProvider="uploadArtifactOnVfcVlCpRIViaExternalAPI")
+ public void uploadArtifactOnVfcVlCpRIViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE_INSTANCE, chosenLifeCycleState, artifactType, resourceTypeEnum);
+ }
+
+
+
+
+ @DataProvider(name="uploadInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI")
+ public static Object[][] dataProviderUploadInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI() {
+ return new Object[][] {
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidTypeToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidTypeToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidTypeToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidTypeToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidTypeToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidTypeToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidTypeToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidTypeToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidTypeToLong"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidTypeEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidTypeEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidTypeEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidTypeEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidTypeEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidTypeEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidTypeEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidTypeEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidTypeEmpty"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidNameToLong"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidNameEmpty"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidLabelToLong"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidLabelEmpty"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidDescriptionToLong"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidDescriptionEmpty"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithSameLabel"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithSameLabel"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidCheckSum"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidCheckSum"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidCheckSum"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidCheckSum"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidCheckSum"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidCheckSum"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "uploadArtifactWithInvalidCheckSum"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "uploadArtifactWithInvalidCheckSum"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "uploadArtifactWithInvalidCheckSum"},
+ };
+ }
+
+
+
+
+ // InvalidArtifact + check audit & response code function
+ @Test(dataProvider="uploadInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI")
+ public void uploadInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState,
+ ComponentTypeEnum componentTypeEnum, String uploadArtifactTestType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, componentTypeEnum: %s, uploadArtifactTestType: %s", chosenLifeCycleState, componentTypeEnum, uploadArtifactTestType));
+ Component resourceDetails;
+ ComponentInstance componentResourceInstanceDetails = null;
+ ArtifactReqDetails artifactReqDetails;
+
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ artifactReqDetails = ElementFactory.getArtifactByType("Abcd", ArtifactTypeEnum.DCAE_INVENTORY_DOC.toString(), true, false);
+
+ resourceDetails = getComponentInTargetLifeCycleState(ComponentTypeEnum.SERVICE.toString(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, null);
+ resourceDetails = getComponentWithResourceInstanceInTargetLifeCycleState(chosenLifeCycleState, null);
+ componentResourceInstanceDetails = resourceDetails.getComponentInstances().get(0);
+ } else {
+ artifactReqDetails = ElementFactory.getArtifactByType("Abcd", ArtifactTypeEnum.OTHER.toString(), true, false);
+
+ resourceDetails = getComponentInTargetLifeCycleState(componentTypeEnum.toString(), UserRoleEnum.DESIGNER, chosenLifeCycleState, null);
+ }
+
+
+ switch (uploadArtifactTestType) {
+ case "uploadArtifactWithInvalidTypeToLong":
+ uploadArtifactWithInvalidTypeToLong(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithInvalidTypeEmpty":
+ uploadArtifactWithInvalidTypeEmpty(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithInvalidCheckSum":
+ uploadArtifactWithInvalidCheckSum(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithInvalidNameToLong":
+ uploadArtifactWithInvalidNameToLong(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithInvalidNameEmpty":
+ uploadArtifactWithInvalidNameEmpty(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithInvalidLabelToLong":
+ uploadArtifactWithInvalidLabelToLong(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithInvalidLabelEmpty":
+ uploadArtifactWithInvalidLabelEmpty(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithInvalidDescriptionToLong":
+ uploadArtifactWithInvalidDescriptionToLong(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithInvalidDescriptionEmpty":
+ uploadArtifactWithInvalidDescriptionEmpty(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ case "uploadArtifactWithSameLabel":
+ default:
+ uploadArtifactWithSameLabel(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ break;
+ }
+ }
+
+ // Upload artifact with invalid type via external API - to long type
+ protected void uploadArtifactWithInvalidTypeToLong(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+ artifactReqDetails.setArtifactType("dsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfdsdsfdsfds");
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_TYPE_NOT_SUPPORTED.name());
+ List<String> variables = asList(artifactReqDetails.getArtifactType());
+
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+ // Upload artifact with invalid type via external API - empty type
+ protected void uploadArtifactWithInvalidTypeEmpty(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+ artifactReqDetails.setArtifactType("");
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_TYPE_NOT_SUPPORTED.name());
+ List<String> variables = asList(artifactReqDetails.getArtifactType());
+
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+ // Upload artifact with invalid checksum via external API
+ protected void uploadArtifactWithInvalidCheckSum(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_INVALID_MD5.name());
+ List<String> variables = asList();
+ uploadArtifactWithInvalidCheckSumOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables);
+ }
+
+
+ // Upload artifact with valid type & invalid name via external API - name to long
+ protected void uploadArtifactWithInvalidNameToLong(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.EXCEEDS_LIMIT.name());
+ List<String> variables = asList("artifact name", "255");
+ artifactReqDetails.setArtifactName("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+
+ // Upload artifact with valid type & invalid name via external API - name is empty
+ protected void uploadArtifactWithInvalidNameEmpty(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.MISSING_ARTIFACT_NAME.name());
+ List<String> variables = asList();
+
+ artifactReqDetails.setArtifactName("");
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+
+ // Upload artifact with valid type & invalid label via external API - label to long
+ protected void uploadArtifactWithInvalidLabelToLong(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.EXCEEDS_LIMIT.name());
+ List<String> variables = asList("artifact label", "25");
+ artifactReqDetails.setArtifactLabel("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+
+ // Upload artifact with valid type & invalid label via external API - label is empty
+ protected void uploadArtifactWithInvalidLabelEmpty(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.MISSING_DATA.name());
+ List<String> variables = asList("artifact label");
+ artifactReqDetails.setArtifactLabel("");
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+
+ // Upload artifact with invalid description via external API - to long description
+ protected void uploadArtifactWithInvalidDescriptionToLong(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.EXCEEDS_LIMIT.name());
+ List<String> variables = asList("artifact description", "256");
+ artifactReqDetails.setDescription("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+
+ // Upload artifact with invalid description via external API - empty description
+ protected void uploadArtifactWithInvalidDescriptionEmpty(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.MISSING_DATA.name());
+ List<String> variables = asList("artifact description");
+ artifactReqDetails.setDescription("");
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+
+
+
+ // Upload artifact with same label via external API
+ protected void uploadArtifactWithSameLabel(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ ComponentInstance componentResourceInstanceDetails) throws Exception {
+
+ RestResponse restResponse = null;
+ if(componentResourceInstanceDetails != null) {
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ } else {
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails);
- // String operationType = "Upload";
- UserRoleEnum creatorUser = UserRoleEnum.DESIGNER;
- String specificUser = "DESIGNER";
+ }
+
+ ArtifactDefinition artifactDefinition = getArtifactDataFromJson(restResponse.getResponse());
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_EXIST.name());
+
+ List<String> variables = asList(artifactDefinition.getArtifactDisplayName());
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables, null);
+ }
+
+
+
+
+
+
+
+
+ protected RestResponse uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ Integer expectedResponseCode, ComponentInstance componentResourceInstanceDetails, ErrorInfo errorInfo, List<String> variables, LifeCycleStatesEnum lifeCycleStatesEnum) throws Exception {
+ RestResponse restResponse;
+
+ if(componentResourceInstanceDetails != null) {
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfComponentInstanceOnAsset(resourceDetails, sdncModifierDetails, artifactReqDetails, componentResourceInstanceDetails);
+ } else {
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails, sdncModifierDetails, artifactReqDetails);
- Component resourceDetails = getComponentInTargetLifeCycleState("vf", creatorUser, chosenLifeCycleState);
+ }
+
+ // validate response code
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+// ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+
+ responseArtifact.setUpdaterFullName("");
+ responseArtifact.setUserIdLastUpdater(sdncModifierDetails.getUserId());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, resourceDetails.getUUID(), errorInfo, variables);
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
+ expectedExternalAudit.setRESOURCE_TYPE(resourceDetails.getComponentType().getValue());
+ expectedExternalAudit.setARTIFACT_DATA(null);
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
+ if(componentResourceInstanceDetails != null) {
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ } else {
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ }
+
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), body);
+
+ return restResponse;
+
+ }
- String resourceUUID = resourceDetails.getUUID();
- System.out.println("Resource UUID: " + resourceUUID);
+
+
+
+
+
+ protected RestResponse uploadArtifactWithInvalidCheckSumOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails,
+ Integer expectedResponseCode, ComponentInstance componentResourceInstanceDetails, ErrorInfo errorInfo, List<String> variables) throws Exception {
+ RestResponse restResponse;
+
+ if(componentResourceInstanceDetails != null) {
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactWithInvalidCheckSumOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentResourceInstanceDetails);
+ } else {
+ restResponse = ArtifactRestUtils.externalAPIUploadArtifactWithInvalidCheckSumOfTheAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails);
- // get artifact data
- ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("Abcd", artifactType, true);
+ }
+
+ // validate response code
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+ // Check auditing for upload operation
+// ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.DEPLOYMENT_ARTIFACT_NAME_ALREADY_EXISTS.name());
+// = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.EXCEEDS_LIMIT.name());
+// List<String> variables = asList("artifact name", "255");
+
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+// ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+
+ responseArtifact.setUpdaterFullName("");
+ responseArtifact.setUserIdLastUpdater(sdncModifierDetails.getUserId());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, resourceDetails.getUUID(), errorInfo, variables);
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
+ expectedExternalAudit.setRESOURCE_TYPE(resourceDetails.getComponentType().getValue());
+ expectedExternalAudit.setARTIFACT_DATA(null);
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
+ if(componentResourceInstanceDetails != null) {
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts");
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ } else {
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ }
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), body);
+
+ return restResponse;
+
+ }
+
+
+
+
+
+
+
+
+ @DataProvider(name="uploadArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset")
+ public static Object[][] dataProviderUploadArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset() {
+ return new Object[][] {
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT},
+ };
+ }
+
+
+ // External API
+ // Upload artifact by diffrent user then creator of asset - Fail
+ @Test(dataProvider="uploadArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset")
+ public void uploadArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset(ComponentTypeEnum componentTypeEnum, UserRoleEnum userRoleEnum, LifeCycleStatesEnum lifeCycleStatesEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s, userRoleEnum: %s, lifeCycleStatesEnum: %s", componentTypeEnum, userRoleEnum, lifeCycleStatesEnum));
+ Component resourceDetails;
+ ComponentInstance componentResourceInstanceDetails = null;
+ ArtifactReqDetails artifactReqDetails;
+
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ artifactReqDetails = ElementFactory.getArtifactByType("Abcd", ArtifactTypeEnum.DCAE_INVENTORY_DOC.toString(), true, false);
+
+ resourceDetails = getComponentWithResourceInstanceInTargetLifeCycleState(lifeCycleStatesEnum, null);
+ componentResourceInstanceDetails = resourceDetails.getComponentInstances().get(0);
+ } else {
+ artifactReqDetails = ElementFactory.getArtifactByType("Abcd", ArtifactTypeEnum.OTHER.toString(), true, false);
+
+ resourceDetails = getComponentInTargetLifeCycleState(componentTypeEnum.toString(), UserRoleEnum.DESIGNER, lifeCycleStatesEnum, null);
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESTRICTED_OPERATION.name());
+ List<String> variables = asList();
+
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(userRoleEnum),
+ artifactReqDetails, 409, componentResourceInstanceDetails, errorInfo, variables, lifeCycleStatesEnum);
+
+ if(lifeCycleStatesEnum.equals(LifeCycleStatesEnum.CHECKIN)) {
+ performeClean();
+ }
+ }
+
+
+
+
+
+ @DataProvider(name="uploadArtifactOnAssetWhichNotExist")
+ public static Object[][] dataProviderUploadArtifactOnAssetWhichNotExist() {
+ return new Object[][] {
+ {ComponentTypeEnum.SERVICE},
+ {ComponentTypeEnum.RESOURCE},
+ {ComponentTypeEnum.RESOURCE_INSTANCE},
+ };
+ }
+
- RestResponse restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails,
- ElementFactory.getDefaultUser(UserRoleEnum.valueOf(specificUser.toUpperCase())), artifactReqDetails);
+ // External API
+ // Upload artifact on VF via external API - happy flow
+ @Test(dataProvider="uploadArtifactOnAssetWhichNotExist")
+ public void uploadArtifactOnAssetWhichNotExist(ComponentTypeEnum componentTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s", componentTypeEnum));
+ Component resourceDetails;
+ ComponentInstance componentResourceInstanceDetails = null;
+ ArtifactReqDetails artifactReqDetails;
+
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ artifactReqDetails = ElementFactory.getArtifactByType("Abcd", ArtifactTypeEnum.DCAE_INVENTORY_DOC.toString(), true, false);
+
+ resourceDetails = getComponentWithResourceInstanceInTargetLifeCycleState(LifeCycleStatesEnum.CHECKIN, null);
+ componentResourceInstanceDetails = resourceDetails.getComponentInstances().get(0);
+
+ resourceDetails.setUUID("12345");
+ componentResourceInstanceDetails.setNormalizedName("12345");
+ } else {
+ artifactReqDetails = ElementFactory.getArtifactByType("Abcd", "OTHER", true, false);
+
+ resourceDetails = getComponentInTargetLifeCycleState(componentTypeEnum.toString(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, null);
+
+ resourceDetails.setUUID("12345");
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESOURCE_NOT_FOUND.name());
+ List<String> variables = asList("null");
+
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 404, componentResourceInstanceDetails, errorInfo, variables, LifeCycleStatesEnum.CHECKIN);
+
+ performeClean();
+
+ }
+
+
+ @DataProvider(name="uploadArtifactOnAssetWhichInInvalidStateForUploading")
+ public static Object[][] dataProviderUploadArtifactOnAssetWhichInInvalidStateForUploading() {
+ return new Object[][] {
+ {ComponentTypeEnum.SERVICE},
+ {ComponentTypeEnum.RESOURCE},
+ {ComponentTypeEnum.RESOURCE_INSTANCE},
+ };
+ }
+
+
+ @Test(dataProvider="uploadArtifactOnAssetWhichInInvalidStateForUploading")
+ public void uploadArtifactOnAssetWhichInInvalidStateForUploading(ComponentTypeEnum componentTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s", componentTypeEnum));
+ Component resourceDetails;
+ ComponentInstance componentResourceInstanceDetails = null;
+ ArtifactReqDetails artifactReqDetails;
+
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ artifactReqDetails = ElementFactory.getArtifactByType("Abcd", ArtifactTypeEnum.DCAE_INVENTORY_DOC.toString(), true, false);
+
+ resourceDetails = getComponentWithResourceInstanceInTargetLifeCycleState(LifeCycleStatesEnum.STARTCERTIFICATION, null);
+ componentResourceInstanceDetails = resourceDetails.getComponentInstances().get(0);
+ } else {
+ artifactReqDetails = ElementFactory.getArtifactByType("Abcd", ArtifactTypeEnum.OTHER.toString(), true, false);
- Integer responseCode = restResponse.getErrorCode();
- Integer expectedCode = 200;
- Assert.assertEquals(responseCode, expectedCode, "Response code is not correct.");
+ resourceDetails = getComponentInTargetLifeCycleState(componentTypeEnum.toString(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.STARTCERTIFICATION, null);
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE.name());
+ List<String> variables = asList(resourceDetails.getName(), resourceDetails.getComponentType().toString().toLowerCase(), resourceDetails.getLastUpdaterFullName().split(" ")[0],
+ resourceDetails.getLastUpdaterFullName().split(" ")[1], resourceDetails.getLastUpdaterUserId());
+
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ artifactReqDetails, 403, componentResourceInstanceDetails, errorInfo, variables, LifeCycleStatesEnum.STARTCERTIFICATION);
+
+ performeClean();
+ }
+
+
+ ////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+ // Update External API //
+ ////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+
+ @DataProvider(name="updateArtifactForServiceViaExternalAPI")
+ public static Object[][] dataProviderUpdateArtifactForServiceViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER"},
+ {LifeCycleStatesEnum.CERTIFY, "YANG_XML"},
+ {LifeCycleStatesEnum.CERTIFY, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CERTIFY, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CERTIFY, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CERTIFY, "OTHER"}
+ };
+ }
+
+
+
+
+ // Update artifact for Service - Success
+ @Test(dataProvider="updateArtifactForServiceViaExternalAPI")
+ public void updateArtifactForServiceViaExternalAPI(LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("lifeCycleStatesEnum: %s, artifactType: %s", lifeCycleStatesEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.SERVICE, LifeCycleStatesEnum.CHECKOUT, artifactType, null);
+ updateArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.SERVICE, lifeCycleStatesEnum, artifactType);
+
+ // for certify version check that previous version exist, and that it artifact can be download + checksum
+ if(lifeCycleStatesEnum.equals(LifeCycleStatesEnum.CERTIFY)) {
+ // Download the uploaded artifact via external API
+ downloadResourceDeploymentArtifactExternalAPIAndComparePayLoadOfArtifactType(component, artifactType, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), ComponentTypeEnum.SERVICE);
+ }
+ }
+
+ @DataProvider(name="updateArtifactForVFViaExternalAPI")
+ public static Object[][] dataProviderUpdateArtifactForVFViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CHECKOUT, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CHECKIN, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER"},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER"}
+ };
+ }
+
+
+ // Update artifact for VF - Success
+ @Test(dataProvider="updateArtifactForVFViaExternalAPI")
+ public void updateArtifactForVFViaExternalAPI(LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("lifeCycleStatesEnum: %s, artifactType: %s", lifeCycleStatesEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE, LifeCycleStatesEnum.CHECKOUT, artifactType, null);
+ updateArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE, lifeCycleStatesEnum, artifactType);
+
+ // for certify version check that previous version exist, and that it artifact can be download + checksum
+ if(lifeCycleStatesEnum.equals(LifeCycleStatesEnum.CERTIFY)) {
+ // Download the uploaded artifact via external API
+ downloadResourceDeploymentArtifactExternalAPIAndComparePayLoadOfArtifactType(component, artifactType, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), ComponentTypeEnum.RESOURCE);
+ }
+ }
+
+ @DataProvider(name="updateArtifactForVfcVlCpViaExternalAPI")
+ public static Object[][] dataProviderUpdateArtifactForVfcVlCpViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.CP}
+ };
+ }
+
+
+ // Update artifact for VFC/VL/CP - Success
+ @Test(dataProvider="updateArtifactForVfcVlCpViaExternalAPI")
+ public void updateArtifactForVfcVlCpViaExternalAPI(LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("lifeCycleStatesEnum: %s, artifactType: %s, resourceTypeEnum: %s", lifeCycleStatesEnum, artifactType, resourceTypeEnum));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE, LifeCycleStatesEnum.CHECKOUT, artifactType, resourceTypeEnum);
+ updateArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE, lifeCycleStatesEnum, artifactType);
+
+ // for certify version check that previous version exist, and that it artifact can be download + checksum
+ if(lifeCycleStatesEnum.equals(LifeCycleStatesEnum.CERTIFY)) {
+ // Download the uploaded artifact via external API
+ downloadResourceDeploymentArtifactExternalAPIAndComparePayLoadOfArtifactType(component, artifactType, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), ComponentTypeEnum.RESOURCE);
+ }
+ }
+
+ @DataProvider(name="updateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI")
+ public static Object[][] dataProviderUpdateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI() {
+ return new Object[][] {
+ {ResourceTypeEnum.VFC},
+ {ResourceTypeEnum.VL},
+ {ResourceTypeEnum.CP}
+ };
+ }
+
+
+ // Verify that it cannot update VFC/VL/CP artifact on VFCi/VLi/CPi - Failure flow
+ @Test(dataProvider="updateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI")
+ public void updateArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI(ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("resourceTypeEnum: %s", resourceTypeEnum));
+
+ Component resourceInstanceDetails = getComponentInTargetLifeCycleState(ComponentTypeEnum.RESOURCE.getValue(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, resourceTypeEnum);
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", "SNMP_TRAP", true, false);
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceInstanceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, 200);
+ resourceInstanceDetails = AtomicOperationUtils.changeComponentState(resourceInstanceDetails, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
+ Component component = getComponentInTargetLifeCycleState(ComponentTypeEnum.RESOURCE.toString(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, null);
+ AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceInstanceDetails, component, UserRoleEnum.DESIGNER, true).left().value();
+ component = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, component.getName(), component.getVersion());
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_NOT_FOUND.name());
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ deploymentArtifacts = getDeploymentArtifactsOfAsset(component, ComponentTypeEnum.RESOURCE_INSTANCE);
+ String artifactUUID = null;
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+ List<String> variables = asList(artifactUUID);
+ updateArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE_INSTANCE, LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", errorInfo, variables, UserRoleEnum.DESIGNER, 404);
- // ArtifactDefinition artifactJavaObject =
- // ResponseParser.convertArtifactDefinitionResponseToJavaObject(restResponse.getResponse());
- // AuditingActionEnum action =
- // AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
- // ExpectedExternalAudit expectedExternalAudit =
- // ElementFactory.getDefaultExternalArtifactAuditSuccess(AssetTypeEnum.RESOURCES,
- // action, artifactJavaObject, resourceUUID);
- // AuditValidationUtils.validateExternalAudit(expectedExternalAudit,
- // AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), null);
}
+
+
+
+
+
+ @DataProvider(name="updateArtifactOnRIViaExternalAPI")
+ public static Object[][] dataProviderUpdateArtifactOnRIViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", null},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", null},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VF}
+
+ };
+ }
+
+
+
+
+
+ @Test(dataProvider="updateArtifactOnRIViaExternalAPI")
+ public void updateArtifactOnRIViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE_INSTANCE, LifeCycleStatesEnum.CHECKOUT, artifactType, resourceTypeEnum);
+ updateArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE_INSTANCE, chosenLifeCycleState, artifactType);
+
+ // for certify version check that previous version exist, and that it artifact can be download + checksum
+ if(chosenLifeCycleState.equals(LifeCycleStatesEnum.CERTIFY)) {
+ // Download the uploaded artifact via external API
+ downloadResourceDeploymentArtifactExternalAPIAndComparePayLoadOfArtifactType(component, artifactType, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), ComponentTypeEnum.RESOURCE_INSTANCE);
+ }
+ }
+
+
+
+
+
+
+
+ @DataProvider(name="updateArtifactOnVfcVlCpRIViaExternalAPI")
+ public static Object[][] dataProviderUpdateArtifactOnVfcVlCpRIViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.CP}
+
+ };
+ }
+
+
+
+
+
+ @Test(dataProvider="updateArtifactOnVfcVlCpRIViaExternalAPI")
+ public void updateArtifactOnVfcVlCpRIViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE_INSTANCE, LifeCycleStatesEnum.CHECKOUT, artifactType, resourceTypeEnum);
+ updateArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE_INSTANCE, chosenLifeCycleState, artifactType);
+
+
+ // for certify version check that previous version exist, and that it artifact can be download + checksum
+ if(chosenLifeCycleState.equals(LifeCycleStatesEnum.CERTIFY)) {
+ // Download the uploaded artifact via external API
+ downloadResourceDeploymentArtifactExternalAPIAndComparePayLoadOfArtifactType(component, artifactType, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), ComponentTypeEnum.RESOURCE_INSTANCE);
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+ @DataProvider(name="updateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset")
+ public static Object[][] dataProviderUpdateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset() {
+ return new Object[][] {
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+ };
+ }
+
- @DataProvider(name = "uploadArtifactOnServiceViaExternalAPI")
- public static Object[][] dataProviderUploadArtifactOnServiceViaExternalAPI() {
+
+ // External API
+ // Update artifact by diffrent user then creator of asset - Fail
+ @Test(dataProvider="updateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset")
+ public void updateArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset(ComponentTypeEnum componentTypeEnum, UserRoleEnum userRoleEnum, LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s, userRoleEnum: %s, lifeCycleStatesEnum: %s, artifactType: %s", componentTypeEnum, userRoleEnum, lifeCycleStatesEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(componentTypeEnum, LifeCycleStatesEnum.CHECKIN, artifactType, null);
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESTRICTED_OPERATION.name());
+ List<String> variables = asList();
+ updateArtifactOnAssetViaExternalAPI(component, componentTypeEnum, lifeCycleStatesEnum, artifactType, errorInfo, variables, userRoleEnum, 409);
+ }
+
+
+ @DataProvider(name="updateArtifactOnAssetWhichNotExist")
+ public static Object[][] dataProviderUpdateArtifactOnAssetWhichNotExist() {
return new Object[][] {
- // {LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
- // {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG"},
- // {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE"},
- // {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC"},
- // {LifeCycleStatesEnum.CHECKOUT, "OTHER"},
- { LifeCycleStatesEnum.CHECKIN, "YANG_XML" }, { LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG" },
- { LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE" },
- { LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC" }, { LifeCycleStatesEnum.CHECKIN, "OTHER" },
- { LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML" },
- { LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG" },
- { LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE" },
- { LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC" },
- { LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER" } };
- }
-
- @Test(dataProvider = "uploadArtifactOnServiceViaExternalAPI")
- public void uploadArtifactOnServiceViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType)
- throws Exception {
- Component resourceDetails = getComponentInTargetLifeCycleState("service", UserRoleEnum.DESIGNER,
- chosenLifeCycleState);
- double resourceVersion = Double.parseDouble(resourceDetails.getVersion());
+ {ComponentTypeEnum.SERVICE, "OTHER", null},
+ {ComponentTypeEnum.RESOURCE, "OTHER", null},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VF},
+ };
+ }
+
- // get artifact data
- ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("Abcd", artifactType, true);
- System.out.println("Service UUID: " + resourceDetails.getUUID());
- System.out.println("Service Version: " + resourceVersion);
- System.out.println("Service life cycle state: " + chosenLifeCycleState);
- System.out.println("Artifact Type: " + artifactReqDetails.getArtifactType());
+ // External API
+ // Upload artifact on VF via external API - happy flow
+ @Test(dataProvider="updateArtifactOnAssetWhichNotExist")
+ public void updateArtifactOnAssetWhichNotExist(ComponentTypeEnum componentTypeEnum, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s, artifactType: %s", componentTypeEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(componentTypeEnum, LifeCycleStatesEnum.CHECKIN, artifactType, resourceTypeEnum);
+
+ // get updated artifact data
+ Map<String, ArtifactDefinition> deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+ ArtifactReqDetails artifactReqDetails = getUpdatedArtifact(deploymentArtifacts, artifactType);
+ String artifactUUID = deploymentArtifacts.get(artifactReqDetails.getArtifactLabel()).getArtifactUUID();
+
+ // Invalid artifactUUID
+ String invalidArtifactUUID = "12341234-1234-1234-1234-123412341234";
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_NOT_FOUND.name());
+ List<String> variables = asList(invalidArtifactUUID);
+
+ if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, component.getComponentInstances().get(0), artifactReqDetails, invalidArtifactUUID, errorInfo, variables, null);
+ } else {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, null, artifactReqDetails, invalidArtifactUUID, errorInfo, variables, null);
- RestResponse restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails,
- ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails);
+ }
+
+ // Invalid componentUUID
+// errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESOURCE_NOT_FOUND.name());
+// variables = asList("null");
+
+ if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
+ component.getComponentInstances().get(0).setNormalizedName("invalidNormalizedName");
+
+ errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_INSTANCE_NOT_FOUND_ON_CONTAINER.name());
+
+ variables = asList("invalidNormalizedName", ComponentTypeEnum.RESOURCE_INSTANCE.getValue().toLowerCase(), ComponentTypeEnum.SERVICE.getValue(), component.getName());
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, LifeCycleStatesEnum.CHECKIN);
+ } else {
+ component.setUUID("invalidComponentUUID");
+
+ errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESOURCE_NOT_FOUND.name());
+ variables = asList("null");
+
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, null, artifactReqDetails, artifactUUID, errorInfo, variables, LifeCycleStatesEnum.CHECKIN);
+ }
+ }
+
+
+ @DataProvider(name="updateArtifactOnAssetWhichInInvalidStateForUploading")
+ public static Object[][] dataProviderUpdateProviderDeleteArtifactOnAssetWhichInInvalidStateForUploading() {
+ return new Object[][] {
+// {ComponentTypeEnum.SERVICE, "OTHER"},
+// {ComponentTypeEnum.RESOURCE, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, "DCAE_INVENTORY_TOSCA"},
+ };
+ }
+
+
+ @Test(dataProvider="updateArtifactOnAssetWhichInInvalidStateForUploading")
+ public void updateArtifactOnAssetWhichInInvalidStateForUploading(ComponentTypeEnum componentTypeEnum, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s, artifactType: %s", componentTypeEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(componentTypeEnum, LifeCycleStatesEnum.CHECKIN, artifactType, null);
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE.name());
+ List<String> variables = asList(component.getName(), component.getComponentType().toString().toLowerCase(), ElementFactory.getDefaultUser(UserRoleEnum.TESTER).getFirstName(),
+ ElementFactory.getDefaultUser(UserRoleEnum.TESTER).getLastName(), ElementFactory.getDefaultUser(UserRoleEnum.TESTER).getUserId());
+ updateArtifactOnAssetViaExternalAPI(component, componentTypeEnum, LifeCycleStatesEnum.STARTCERTIFICATION, artifactType, errorInfo, variables, UserRoleEnum.DESIGNER, 403);
+
+ }
+
+
+
+
+
+ @DataProvider(name="updateInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI")
+ public static Object[][] dataProviderUpdateInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI() {
+ return new Object[][] {
+// {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidCheckSum"},
+// {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidCheckSum"},
+// {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidCheckSum"},
+// {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidCheckSum"},
+// {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidCheckSum"},
+// {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidCheckSum"},
+// {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidCheckSum"},
+// {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidCheckSum"},
+// {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidCheckSum"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidNameToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidNameToLong"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidNameEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidNameEmpty"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidLabelToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidLabelToLong"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidLabelEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidLabelEmpty"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidDescriptionToLong"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidDescriptionToLong"},
+
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKOUT, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CHECKIN, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE, "updateArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.SERVICE, "updateArtifactWithInvalidDescriptionEmpty"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, ComponentTypeEnum.RESOURCE_INSTANCE, "updateArtifactWithInvalidDescriptionEmpty"},
+ };
+ }
+
+
+
+
+ // InvalidArtifact + check audit & response code function
+ @Test(dataProvider="updateInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI")
+ public void updateInvalidArtifactTypeExtensionLabelDescriptionCheckSumDuplicateLabelViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState,
+ ComponentTypeEnum componentTypeEnum, String uploadArtifactTestType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, componentTypeEnum: %s, uploadArtifactTestType: %s", chosenLifeCycleState, componentTypeEnum, uploadArtifactTestType));
+ Component component;
+ ComponentInstance componentInstance = null;
+ String artifactType;
+
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ artifactType = ArtifactTypeEnum.DCAE_INVENTORY_DOC.toString();
+ component = uploadArtifactOnAssetViaExternalAPI(componentTypeEnum, LifeCycleStatesEnum.CHECKIN, artifactType, null);
+ componentInstance = component.getComponentInstances().get(0);
+ } else {
+ artifactType = ArtifactTypeEnum.OTHER.toString();
+ component = uploadArtifactOnAssetViaExternalAPI(componentTypeEnum, LifeCycleStatesEnum.CHECKIN, artifactType, null);
+ }
+
+ component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, chosenLifeCycleState, true).getLeft();
+
+ switch (uploadArtifactTestType) {
+ case "updateArtifactWithInvalidCheckSum":
+ updateArtifactWithInvalidCheckSum(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactType, componentInstance);
+ break;
+ case "updateArtifactWithInvalidNameToLong":
+ updateArtifactWithInvalidNameToLong(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactType, componentInstance);
+ break;
+ case "updateArtifactWithInvalidNameEmpty":
+ updateArtifactWithInvalidNameEmpty(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactType, componentInstance);
+ break;
+ case "updateArtifactWithInvalidLabelToLong":
+ updateArtifactWithInvalidLabelToLong(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactType, componentInstance);
+ break;
+ case "updateArtifactWithInvalidLabelEmpty":
+ updateArtifactWithInvalidLabelEmpty(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactType, componentInstance);
+ break;
+ case "updateArtifactWithInvalidDescriptionToLong":
+ updateArtifactWithInvalidDescriptionToLong(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactType, componentInstance);
+ break;
+ case "updateArtifactWithInvalidDescriptionEmpty":
+ default:
+ updateArtifactWithInvalidDescriptionEmpty(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactType, componentInstance);
+ break;
+ }
+
+///////////////////////////////////////////////////////////////////////////////
+// // TODO: there is defect when checking invalid type
+//// // Upload artifact with invalid type via external API
+//// // invalid type
+//// String artifactType = artifactReqDetails.getArtifactType();
+//// artifactReqDetails.setArtifactType("invalidType");
+//// restResponse = uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, 400, componentResourceInstanceDetails);
+//// // empty type
+//// artifactReqDetails.setArtifactType("");
+//// restResponse = uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, 400, componentResourceInstanceDetails);
+//// artifactReqDetails.setArtifactType(artifactType);
+///////////////////////////////////////////////////////////////////////////////
+ }
+
+ // TODO
+ // Update artifact with invalid checksum via external API
+ protected void updateArtifactWithInvalidCheckSum(Component component, User sdncModifierDetails, String artifactType,
+ ComponentInstance componentInstance) throws Exception {
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_INVALID_MD5.name());
+ List<String> variables = asList();
+// uploadArtifactWithInvalidCheckSumOfAssetIncludingValiditionOfAuditAndResponseCode(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+// artifactReqDetails, 400, componentResourceInstanceDetails, errorInfo, variables);
+ }
+
+
+ // Update artifact with valid type & invalid name via external API - name to long
+ protected void updateArtifactWithInvalidNameToLong(Component component, User sdncModifierDetails, String artifactType,
+ ComponentInstance componentInstance) throws Exception {
+
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, true);
+ String artifactUUID = null;
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ if(componentInstance != null) {
+ deploymentArtifacts = component.getComponentInstances().get(0).getDeploymentArtifacts();
+ } else {
+ deploymentArtifacts = component.getDeploymentArtifacts();
+ }
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.EXCEEDS_LIMIT.name());
+ List<String> variables = asList("artifact name", "255");
+ artifactReqDetails.setArtifactName("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
+
+ if(componentInstance != null) {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null);
+ } else {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null);
- // Check response of external API
- Integer responseCode = restResponse.getErrorCode();
- Integer expectedCode = 200;
- Assert.assertEquals(responseCode, expectedCode, "Response code is not correct.");
-
- // TODO: Check auditing for upload opeartion
- // ArtifactDefinition artifactJavaObject =
- // ResponseParser.convertArtifactDefinitionResponseToJavaObject(restResponse.getResponse());
- // AuditingActionEnum action =
- // AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
- // ExpectedExternalAudit expectedExternalAudit =
- // ElementFactory.getDefaultExternalArtifactAuditSuccess(AssetTypeEnum.RESOURCES,
- // action, artifactJavaObject, resourceUUID);
- // AuditValidationUtils.validateExternalAudit(expectedExternalAudit,
- // AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), null);
-
- // Check Service version (increase by one if not in checkout)
- if (!chosenLifeCycleState.equals(LifeCycleStatesEnum.CHECKOUT)) {
- double resourceNewVersion = Double.parseDouble(resourceDetails.getVersion());
-
- System.out.println(resourceVersion);
- System.out.println(resourceNewVersion);
}
}
+
+
+ // Update artifact with valid type & invalid name via external API - name is empty
+ protected void updateArtifactWithInvalidNameEmpty(Component component, User sdncModifierDetails, String artifactType,
+ ComponentInstance componentInstance) throws Exception {
+
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, true);
+ String artifactUUID = null;
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ if(componentInstance != null) {
+ deploymentArtifacts = component.getComponentInstances().get(0).getDeploymentArtifacts();
+ } else {
+ deploymentArtifacts = component.getDeploymentArtifacts();
+ }
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.MISSING_ARTIFACT_NAME.name());
+ List<String> variables = asList();
+ artifactReqDetails.setArtifactName("");
+
+ if(componentInstance != null) {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null);
+ } else {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null);
- @Test
- public void artifactOperationOnRIViaExternalAPI() throws Exception {
- // Method passed variable
- String operationType = "Upload";
- LifeCycleStatesEnum chosenLifeCycleState = LifeCycleStatesEnum.CHECKOUT;
- UserRoleEnum creatorUser = UserRoleEnum.DESIGNER;
- String specificUser = "DESIGNER";
- String artifactType = "OTHER";
+ }
+ }
+
+
+ // Update artifact with valid type & invalid label via external API - label to long
+ protected void updateArtifactWithInvalidLabelToLong(Component component, User sdncModifierDetails, String artifactType,
+ ComponentInstance componentInstance) throws Exception {
+
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, true);
+ String artifactUUID = null;
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ if(componentInstance != null) {
+ deploymentArtifacts = component.getComponentInstances().get(0).getDeploymentArtifacts();
+ } else {
+ deploymentArtifacts = component.getDeploymentArtifacts();
+ }
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_LOGICAL_NAME_CANNOT_BE_CHANGED.name());
+ List<String> variables = asList();
+ artifactReqDetails.setArtifactLabel("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
+
+ if(componentInstance != null) {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null);
+ } else {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null);
- Component resourceDetails = getComponentInTargetLifeCycleState("service", creatorUser, chosenLifeCycleState);
- Component resourceInstanceDetails = getComponentInTargetLifeCycleState("vf", creatorUser, chosenLifeCycleState);
- ComponentInstance componentResourceInstanceDetails = AtomicOperationUtils
- .addComponentInstanceToComponentContainer(resourceInstanceDetails, resourceDetails,
- UserRoleEnum.DESIGNER, true)
- .left().value();
+ }
+ }
+
+
+ // Update artifact with valid type & invalid label via external API - label is empty
+ protected void updateArtifactWithInvalidLabelEmpty(Component component, User sdncModifierDetails, String artifactType,
+ ComponentInstance componentInstance) throws Exception {
+
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, true);
+ String artifactUUID = null;
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ if(componentInstance != null) {
+ deploymentArtifacts = component.getComponentInstances().get(0).getDeploymentArtifacts();
+ } else {
+ deploymentArtifacts = component.getDeploymentArtifacts();
+ }
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.MISSING_DATA.name());
+ List<String> variables = asList("artifact label");
+ artifactReqDetails.setArtifactLabel("");
+
+ if(componentInstance != null) {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null);
+ } else {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null);
- String resourceUUID = resourceDetails.getUUID();
- System.out.println("Resource UUID: " + resourceUUID);
+ }
+ }
+
+
+ // Update artifact with invalid description via external API - to long description
+ protected void updateArtifactWithInvalidDescriptionToLong(Component component, User sdncModifierDetails, String artifactType,
+ ComponentInstance componentInstance) throws Exception {
+
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, true);
+ String artifactUUID = null;
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ if(componentInstance != null) {
+ deploymentArtifacts = component.getComponentInstances().get(0).getDeploymentArtifacts();
+ } else {
+ deploymentArtifacts = component.getDeploymentArtifacts();
+ }
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_LOGICAL_NAME_CANNOT_BE_CHANGED.name());
+ List<String> variables = asList();
+ artifactReqDetails.setDescription("invalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeinvalGGfdsiofhdsouhfoidshfoidshoifhsdoifhdsouihfdsofhiufdsghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidTypeghiufghodhfioudsgafodsgaiofudsghifudsiugfhiufawsouipfhgawseiupfsadiughdfsoiuhgfaighfpasdghfdsaqgfdsgdfgidType");
+
+ if(componentInstance != null) {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null);
+ } else {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null);
- // get artifact data
- ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("Abcd", artifactType, true);
+ }
+ }
+
+
+ // Update artifact with invalid description via external API - empty description
+ protected void updateArtifactWithInvalidDescriptionEmpty(Component component, User sdncModifierDetails, String artifactType,
+ ComponentInstance componentInstance) throws Exception {
+
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, true);
+ String artifactUUID = null;
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ if(componentInstance != null) {
+ deploymentArtifacts = component.getComponentInstances().get(0).getDeploymentArtifacts();
+ } else {
+ deploymentArtifacts = component.getDeploymentArtifacts();
+ }
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_LOGICAL_NAME_CANNOT_BE_CHANGED.name());
+ List<String> variables = asList("artifact description");
+ artifactReqDetails.setDescription("");
+
+ if(componentInstance != null) {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, null);
+ } else {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 400, null, artifactReqDetails, artifactUUID, errorInfo, variables, null);
+ }
+ }
+
+ // Unhappy flow - get chosen life cycle state, artifact type and asset type
+ // update artifact via external API + check audit & response code
+ // Download artifact via external API + check audit & response code
+ // Check artifact version, uuid & checksusm
+ protected Component updateArtifactOnAssetViaExternalAPI(Component component, ComponentTypeEnum componentTypeEnum, LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ErrorInfo errorInfo, List<String> variables, UserRoleEnum userRoleEnum, Integer expectedResponseCode) throws Exception {
+ String componentVersionBeforeUpdate = null;
+
+ // get updated artifact data
+ component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, chosenLifeCycleState, true).getLeft();
+ componentVersionBeforeUpdate = component.getVersion();
+
+ Map<String, ArtifactDefinition> deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+ ArtifactReqDetails artifactReqDetails = getUpdatedArtifact(deploymentArtifacts, artifactType);
+
+ String artifactName = artifactReqDetails.getArtifactLabel();
+ String artifactUUID = deploymentArtifacts.get(artifactName).getArtifactUUID();
+ String artifactVersionBeforeUpdate = deploymentArtifacts.get(artifactName).getArtifactVersion();
+ int numberOfArtifact = deploymentArtifacts.size();
+
+ // create component/s & upload artifact via external api
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(userRoleEnum),
+ expectedResponseCode, component.getComponentInstances().get(0), artifactReqDetails, artifactUUID, errorInfo, variables, chosenLifeCycleState);
+ } else {
+ updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(userRoleEnum),
+ expectedResponseCode, null, artifactReqDetails, artifactUUID, errorInfo, variables, chosenLifeCycleState);
+ }
+
+ if(component.getComponentType().equals(ComponentTypeEnum.SERVICE)) {
+ component = AtomicOperationUtils.getServiceObjectByNameAndVersion(UserRoleEnum.DESIGNER, component.getName(), component.getVersion());
+ } else {
+ component = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, component.getName(), component.getVersion());
+ }
+
+ // Get list of deployment artifact + download them via external API
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ deploymentArtifacts = component.getComponentInstances().get(0).getDeploymentArtifacts();
+ } else {
+ deploymentArtifacts = component.getDeploymentArtifacts();
+ }
+ Assert.assertEquals(numberOfArtifact, deploymentArtifacts.keySet().size(), "Expected that number of deployment artifact will be same as before.");
+ Assert.assertEquals(String.valueOf((Integer.parseInt(artifactVersionBeforeUpdate))), deploymentArtifacts.get(artifactName).getArtifactVersion(), "Expected that aftifact will not change.");
+ Assert.assertEquals(artifactUUID, deploymentArtifacts.get(artifactName).getArtifactUUID(), "Expected that aftifactUUID will not change.");
+ Assert.assertEquals(componentVersionBeforeUpdate, component.getVersion(), "Expected that check-out component will not change version number.");
+
+ return component;
+ }
+
+ protected RestResponse updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails,
+ Integer expectedResponseCode, ComponentInstance componentInstance, ArtifactReqDetails artifactReqDetails, String artifactUUID, ErrorInfo errorInfo, List<String> variables, LifeCycleStatesEnum lifeCycleStatesEnum) throws Exception {
+ RestResponse restResponse;
+
+ if(componentInstance != null) {
+ restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfComponentInstanceOnAsset(resourceDetails, sdncModifierDetails, artifactReqDetails, componentInstance, artifactUUID);
+ } else {
+ restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfTheAsset(resourceDetails, sdncModifierDetails, artifactReqDetails, artifactUUID);
+
+ }
+
+ // validate response code
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+ //TODO
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPDATE_BY_API;
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+// ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+
+ responseArtifact.setUpdaterFullName("");
+ responseArtifact.setUserIdLastUpdater(sdncModifierDetails.getUserId());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, resourceDetails.getUUID(), errorInfo, variables);
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
+ expectedExternalAudit.setRESOURCE_TYPE(resourceDetails.getComponentType().getValue());
+ expectedExternalAudit.setARTIFACT_DATA("");
+ expectedExternalAudit.setCURR_ARTIFACT_UUID(artifactUUID);
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
+ if(componentInstance != null) {
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ } else {
+ expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL() + "/" + artifactUUID);
+ if((lifeCycleStatesEnum == LifeCycleStatesEnum.CHECKIN) || (lifeCycleStatesEnum == LifeCycleStatesEnum.STARTCERTIFICATION)) {
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ } else {
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ }
+ }
+
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPDATE_BY_API.getName(), body);
+
+ return restResponse;
+
+ }
+
+
+ // This function get component, user & if updatedPayload or not
+ // It will create default payload / updated payload of artifact
+ // And download artifact of component which starts with ci
+ protected RestResponse downloadResourceDeploymentArtifactExternalAPIAndComparePayLoadOfArtifactType(Component component, String artifactType, User sdncModifierDetails, ComponentTypeEnum componentTypeEnum) throws IOException, Exception {
+ // Download the uploaded artifact via external API
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("abcd", artifactType, true, false);
+ String artifactName = null;
+ for (String key : component.getDeploymentArtifacts().keySet()) {
+ if (key.startsWith("ci")) {
+ artifactName = key;
+ break;
+ }
+ }
+ return downloadResourceDeploymentArtifactExternalAPI(component, component.getDeploymentArtifacts().get(artifactName), sdncModifierDetails, artifactReqDetails, componentTypeEnum);
+ }
+
+ // Get deployment artifact of asset
+ protected Map<String, ArtifactDefinition> getDeploymentArtifactsOfAsset(Component component, ComponentTypeEnum componentTypeEnum) {
+ Map<String, ArtifactDefinition> deploymentArtifacts = null;
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ for(ComponentInstance componentInstance: component.getComponentInstances()) {
+ if(componentInstance.getNormalizedName().startsWith("ci")) {
+ deploymentArtifacts = componentInstance.getDeploymentArtifacts();
+ break;
+ }
+ }
+ } else {
+ deploymentArtifacts = component.getDeploymentArtifacts();
+ }
+ return deploymentArtifacts;
+ }
+
+ // get deploymentArtifact of asset and artifactType -> generate new artifact that can be updated on the asset
+ protected ArtifactReqDetails getUpdatedArtifact(Map<String, ArtifactDefinition> deploymentArtifacts, String artifactType) throws IOException, Exception {
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, true);
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactReqDetails.setArtifactDisplayName(deploymentArtifacts.get(key).getArtifactDisplayName());
+ artifactReqDetails.setArtifactName(deploymentArtifacts.get(key).getArtifactName());
+ artifactReqDetails.setArtifactLabel(deploymentArtifacts.get(key).getArtifactLabel());
+ break;
+ }
+ }
+
+ return artifactReqDetails;
+ }
+
+ // Happy flow - get chosen life cycle state, artifact type and asset type
+ // update artifact via external API + check audit & response code
+ // Download artifact via external API + check audit & response code
+ // Check artifact version, uuid & checksusm
+ protected Component updateArtifactOnAssetViaExternalAPI(Component component, ComponentTypeEnum componentTypeEnum, LifeCycleStatesEnum chosenLifeCycleState, String artifactType) throws Exception {
RestResponse restResponse = null;
+ int numberOfArtifact = 0;
+ String artifactVersionBeforeUpdate = null;
+ String artifactName = null;
+ String componentVersionBeforeUpdate = null;
+
+ // get updated artifact data
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", artifactType, true, true);
+ String artifactUUID = null;
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactName = key;
+ artifactVersionBeforeUpdate = deploymentArtifacts.get(key).getArtifactVersion();
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ artifactReqDetails.setArtifactDisplayName(deploymentArtifacts.get(key).getArtifactDisplayName());
+ artifactReqDetails.setArtifactName(deploymentArtifacts.get(key).getArtifactName());
+ artifactReqDetails.setArtifactLabel(deploymentArtifacts.get(key).getArtifactLabel());
+ break;
+ }
+ }
+
+ component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, chosenLifeCycleState, true).getLeft();
+ componentVersionBeforeUpdate = component.getVersion();
+ deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+ numberOfArtifact = deploymentArtifacts.size();
+
+
+ // create component/s & upload artifact via external api
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ if((chosenLifeCycleState == LifeCycleStatesEnum.CERTIFICATIONREQUEST) && (!component.getComponentType().toString().equals(ComponentTypeEnum.RESOURCE.toString()))) {
+ numberOfArtifact = numberOfArtifact - 1;
+ }
+ restResponse = updateArtifactOfRIIncludingValiditionOfAuditAndResponseCode(component, component.getComponentInstances().get(0), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, artifactUUID, 200);
+ } else {
+
+ restResponse = updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, artifactUUID, 200);
+ }
+
+
+
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+ component = getNewerVersionOfComponent(component, chosenLifeCycleState);
+
+ // Get list of deployment artifact + download them via external API
+ deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+ Assert.assertEquals(numberOfArtifact, deploymentArtifacts.keySet().size(), "Expected that number of deployment artifact will be same as before.");
+ Assert.assertEquals(String.valueOf((Integer.parseInt(artifactVersionBeforeUpdate) + 1)), deploymentArtifacts.get(artifactName).getArtifactVersion(), "Expected that aftifact version will increase by one.");
+
+ if(chosenLifeCycleState == LifeCycleStatesEnum.CHECKOUT) {
+ Assert.assertEquals(componentVersionBeforeUpdate, component.getVersion(), "Expected that check-out component will not change version number.");
+ } else {
+ Assert.assertEquals(String.format("%.1f", (Double.parseDouble(componentVersionBeforeUpdate) + 0.1)), component.getVersion(), "Expected that non check-out component version will increase by 0.1.");
+ }
+
+ // Download the uploaded artifact via external API
+ downloadResourceDeploymentArtifactExternalAPI(component, deploymentArtifacts.get(responseArtifact.getArtifactLabel()), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, componentTypeEnum);
+
+ return component;
+ }
+
+
+ // Update artifact via external API + Check auditing for upload operation + Check response of external API
+ protected RestResponse updateArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, ComponentInstance componentInstance, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, resourceDetails.getComponentInstances().get(0), artifactUUID);
+
+ // Check response of external API
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPDATE_BY_API;
+
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, componentInstance.getNormalizedName());
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+// expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPDATE_BY_API.getName(), body);
+
+ return restResponse;
+ }
+
+
+ // Update artifact via external API + Check auditing for upload operation + Check response of external API
+ protected RestResponse updateArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, ArtifactReqDetails artifactReqDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIUpdateArtifactOfTheAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, artifactUUID);
+
+ // Check response of external API
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPDATE_BY_API;
+
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_UPDATE_BY_API.getName(), body);
+
+ return restResponse;
+ }
+
+
+
+
+ ////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+ // Delete External API //
+ ////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////
+ @DataProvider(name="deleteArtifactForServiceViaExternalAPI")
+ public static Object[][] dataProviderDeleteArtifactForServiceViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER"},
+ {LifeCycleStatesEnum.CERTIFY, "YANG_XML"},
+ {LifeCycleStatesEnum.CERTIFY, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CERTIFY, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CERTIFY, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CERTIFY, "OTHER"}
+ };
+ }
+
+
+
+
+ // Delete artifact for Service - Success
+ @Test(dataProvider="deleteArtifactForServiceViaExternalAPI")
+ public void deleteArtifactForServiceViaExternalAPI(LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("lifeCycleStatesEnum: %s, artifactType: %s", lifeCycleStatesEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.SERVICE, LifeCycleStatesEnum.CHECKOUT, artifactType, null);
+ deleteArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.SERVICE, lifeCycleStatesEnum);
+ }
+
+ @DataProvider(name="deleteArtifactForVFViaExternalAPI")
+ public static Object[][] dataProviderDeleteArtifactForVFViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CHECKOUT, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CHECKIN, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML"},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER"},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_JSON"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_POLICY"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_EVENT"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "APPC_CONFIG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_DOC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_TOSCA"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC"},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER"},
+ };
+ }
+
+
+ // Delete artifact for VF - Success
+ @Test(dataProvider="deleteArtifactForVFViaExternalAPI")
+ public void deleteArtifactForVFViaExternalAPI(LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("lifeCycleStatesEnum: %s, artifactType: %s", lifeCycleStatesEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE, LifeCycleStatesEnum.CHECKOUT, artifactType, null);
+ deleteArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE, lifeCycleStatesEnum);
+ }
+
+ @DataProvider(name="deleteArtifactForVfcVlCpViaExternalAPI")
+ public static Object[][] dataProviderDeleteArtifactForVfcVlCpViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKOUT, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CHECKIN, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.CP},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "YANG_XML", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VNF_CATALOG", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VF_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "VENDOR_LICENSE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_INVENTORY_PROFILE", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "MODEL_QUERY_SPEC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "OTHER", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.CP}
+ };
+ }
+
+
+ // Delete artifact for VFC, VL, CP - Success
+ @Test(dataProvider="deleteArtifactForVfcVlCpViaExternalAPI")
+ public void deleteArtifactForVfcVlCpViaExternalAPI(LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("lifeCycleStatesEnum: %s, artifactType: %s, resourceTypeEnum: %s", lifeCycleStatesEnum, artifactType, resourceTypeEnum));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE, LifeCycleStatesEnum.CHECKOUT, artifactType, resourceTypeEnum);
+ deleteArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE, lifeCycleStatesEnum);
+ }
+
+ @DataProvider(name="deleteArtifactOnRIViaExternalAPI")
+ public static Object[][] dataProviderDeleteArtifactOnRIViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", null},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", null},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VF},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VF}
+
+ };
+ }
+
+
+
+
+
+ @Test(dataProvider="deleteArtifactOnRIViaExternalAPI")
+ public void deleteArtifactOnRIViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE_INSTANCE, LifeCycleStatesEnum.CHECKOUT, artifactType, resourceTypeEnum);
+ deleteArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE_INSTANCE, chosenLifeCycleState);
+ }
+
+
+ @DataProvider(name="deleteArtifactOnVfcVlCpRIViaExternalAPI")
+ public static Object[][] dataProviderDeleteArtifactOnVfcVlCpRIViaExternalAPI() {
+ return new Object[][] {
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VFC, null},
+
+
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.VL, null},
+
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_POLL", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKOUT, "SNMP_TRAP", ResourceTypeEnum.CP, null},
+
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VFC, null},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VFC, null},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.VL, null},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.VL, null},
+
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_POLL", ResourceTypeEnum.CP, null},
+ {LifeCycleStatesEnum.CHECKIN, "SNMP_TRAP", ResourceTypeEnum.CP, null},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VFC},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VFC},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.VL},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.VL},
+
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_JSON", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_POLICY", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_DOC", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_BLUEPRINT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "DCAE_INVENTORY_EVENT", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_POLL", ResourceTypeEnum.CP},
+ {LifeCycleStatesEnum.CERTIFICATIONREQUEST, "SNMP_TRAP", ResourceTypeEnum.CP}
+
+ };
+ }
+
+
+
+
+
+ @Test(dataProvider="deleteArtifactOnVfcVlCpRIViaExternalAPI")
+ public void deleteArtifactOnVfcVlCpRIViaExternalAPI(LifeCycleStatesEnum chosenLifeCycleState, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("chosenLifeCycleState: %s, artifactType: %s", chosenLifeCycleState, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(ComponentTypeEnum.RESOURCE_INSTANCE, LifeCycleStatesEnum.CHECKOUT, artifactType, resourceTypeEnum);
+ deleteArtifactOnAssetViaExternalAPI(component, ComponentTypeEnum.RESOURCE_INSTANCE, chosenLifeCycleState);
+ }
+
+
+ @DataProvider(name="deleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset")
+ public static Object[][] dataProviderDeleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset() {
+ return new Object[][] {
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.DESIGNER2, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.TESTER, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.ADMIN, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.OPS, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+//
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.GOVERNOR, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_STRATEGIST1, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKIN, "DCAE_INVENTORY_TOSCA"},
+ {ComponentTypeEnum.RESOURCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.SERVICE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, UserRoleEnum.PRODUCT_MANAGER1, LifeCycleStatesEnum.CHECKOUT, "DCAE_INVENTORY_TOSCA"},
+ };
+ }
+
- if (operationType.toLowerCase().equals("upload")) {
- restResponse = ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails,
- ElementFactory.getDefaultUser(UserRoleEnum.valueOf(specificUser.toUpperCase())),
- artifactReqDetails);
- System.out.println("1234");
+ // External API
+ // Delete artifact by diffrent user then creator of asset - Fail
+ @Test(dataProvider="deleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset")
+ public void deleteArtifactOnVFViaExternalAPIByDiffrentUserThenCreatorOfAsset(ComponentTypeEnum componentTypeEnum, UserRoleEnum userRoleEnum, LifeCycleStatesEnum lifeCycleStatesEnum, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s, userRoleEnum %s, lifeCycleStatesEnum %s, artifactType: %s", componentTypeEnum, userRoleEnum, lifeCycleStatesEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(componentTypeEnum, lifeCycleStatesEnum, artifactType, null);
+ Map<String, ArtifactDefinition> deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+
+ String artifactUUID = null;
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESTRICTED_OPERATION.name());
+ List<String> variables = asList();
+
+ if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(userRoleEnum),
+ 409, component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, lifeCycleStatesEnum);
+ } else {
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(userRoleEnum),
+ 409, null, artifactUUID, errorInfo, variables, lifeCycleStatesEnum);
}
+
+ //TODO
+// downloadResourceDeploymentArtifactExternalAPI(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactUUID, componentTypeEnum);
+ }
+
+
+ @DataProvider(name="deleteArtifactOnAssetWhichNotExist")
+ public static Object[][] dataProviderDeleteArtifactOnAssetWhichNotExist() {
+ return new Object[][] {
+ {ComponentTypeEnum.SERVICE, "OTHER", null},
+ {ComponentTypeEnum.RESOURCE, "OTHER", null},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, "DCAE_INVENTORY_TOSCA", ResourceTypeEnum.VF},
+ };
+ }
+
- ArtifactDefinition artifactJavaObject = ResponseParser
- .convertArtifactDefinitionResponseToJavaObject(restResponse.getResponse());
- AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
- ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(
- AssetTypeEnum.RESOURCES, action, artifactJavaObject, resourceUUID);
- AuditValidationUtils.validateExternalAudit(expectedExternalAudit,
- AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), null);
- }
-
- // @Test
- // public void artifactViaExternalAPI() throws Exception {
- // // Method passed variable
- // String operationType = "Upload";
- // String assetType = "vf";
- // LifeCycleStatesEnum chosenLifeCycleState = LifeCycleStatesEnum.CHECKOUT;
- // String componentInstanceAssetType = "vf";
- // LifeCycleStatesEnum componentInstanceChosenLifeCycleState =
- // LifeCycleStatesEnum.CHECKOUT;
- // UserRoleEnum creatorUser = UserRoleEnum.DESIGNER;
- // String specificUser = "DESIGNER";
- // String artifactType = "HEAT";
- //
- //
- // Component resourceDetails = null;
- // Component resourceInstanceDetails = null;
- // ComponentInstance componentResourceInstanceDetails = null;
- //
- // String resourceUUID = null;
- // String resourceType = null;
- // String resourceInstanceName = null;
- //
- // // Create resource & resource instance of requested type and state
- // if (assetType.toLowerCase().equals("vf")) {
- // resourceDetails = getComponentInTargetLifeCycleState("vf", creatorUser,
- // chosenLifeCycleState);
- // } else if (assetType.toLowerCase().equals("service")) {
- // resourceDetails = getComponentInTargetLifeCycleState("service",
- // creatorUser, chosenLifeCycleState);
- // } else if (assetType.toLowerCase().equals("ri")) {
- // resourceInstanceDetails = getComponentInTargetLifeCycleState("vf",
- // creatorUser, chosenLifeCycleState);
- // if(componentInstanceAssetType.toLowerCase().equals("vf")) {
- // resourceDetails = getComponentInTargetLifeCycleState("vf", creatorUser,
- // componentInstanceChosenLifeCycleState);
- // componentResourceInstanceDetails =
- // AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceInstanceDetails,
- // resourceDetails, UserRoleEnum.DESIGNER, true).left().value();
- // } else if (componentInstanceAssetType.toLowerCase().equals("service")) {
- // resourceDetails = getComponentInTargetLifeCycleState("service",
- // creatorUser, componentInstanceChosenLifeCycleState);
- // componentResourceInstanceDetails =
- // AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceInstanceDetails,
- // resourceDetails, UserRoleEnum.DESIGNER, true).left().value();
- // } else {
- // Assert.assertEquals(false, true, "Component instance asset type is
- // wrong.");
- // }
- // } else {
- // Assert.assertEquals(false, true, "Asset type is wrong.");
- // }
- //
- //
- // // print uuid & resource instance name
- // if (assetType.toLowerCase().equals("ri")) {
- // resourceUUID = resourceDetails.getUUID();
- // resourceInstanceName =
- // componentResourceInstanceDetails.getNormalizedName();
- //
- //
- // System.out.println("Resource UUID: " + resourceUUID);
- // System.out.println("Resource instance name: " + resourceInstanceName);
- // System.out.println("Resource type: " + resourceType);
- // } else {
- // resourceUUID = resourceDetails.getUUID();
- //
- // System.out.println("Resource UUID: " + resourceUUID);
- // System.out.println("Resource type: " + resourceType);
- // }
- //
- // // get artifact data
- // ArtifactReqDetails artifactReqDetails =
- // ElementFactory.getArtifactByType("Abcd", artifactType, true);
- //
- //// RestResponse restResponse;
- // // using rest external api
- //// if(operationType.toLowerCase().equals("upload")) {
- //// if (!assetType.toLowerCase().equals("ri")) {
- // RestResponse restResponse =
- // ArtifactRestUtils.externalAPIUploadArtifactOfTheAsset(resourceDetails,
- // ElementFactory.getDefaultUser(UserRoleEnum.valueOf(specificUser.toUpperCase())),
- // artifactReqDetails);
- // System.out.println("1234");
- //// } else {
- ////
- //// }
- //// } else {
- ////
- //// }
- //
- // ArtifactDefinition artifactJavaObject =
- // ResponseParser.convertArtifactDefinitionResponseToJavaObject(restResponse.getResponse());
- //// AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
- // AuditingActionEnum action = AuditingActionEnum.ARTIFACT_UPLOAD_BY_API;
- // ExpectedExternalAudit expectedExternalAudit =
- // ElementFactory.getDefaultExternalArtifactAuditSuccess(AssetTypeEnum.RESOURCES,
- // action, artifactJavaObject, resourceUUID);
- // AuditValidationUtils.validateExternalAudit(expectedExternalAudit,
- // AuditingActionEnum.ARTIFACT_UPLOAD_BY_API.getName(), null);
- //
- //
- //
- //
- // }
- //
-
- @Test
- public void getResourceAssetMetadataWithNonCertifiedResourceInstancesAndArtifactsSuccess() throws Exception {
-
- Resource resourceVF = AtomicOperationUtils
- .createResourceByType(ResourceTypeEnum.VF, UserRoleEnum.DESIGNER, true).left().value();
- Resource resource2 = AtomicOperationUtils
- .createResourceByType(ResourceTypeEnum.VFC, UserRoleEnum.DESIGNER, true).left().value();
- resource2 = (Resource) AtomicOperationUtils
- .changeComponentState(resource2, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
- Resource resource3 = AtomicOperationUtils
- .createResourceByType(ResourceTypeEnum.VFC, UserRoleEnum.DESIGNER, true).left().value();
- resource3 = (Resource) AtomicOperationUtils
- .changeComponentState(resource3, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CERTIFICATIONREQUEST, true)
- .getLeft();
-
- AtomicOperationUtils.addComponentInstanceToComponentContainer(resource2, resourceVF, UserRoleEnum.DESIGNER,
- true);
- AtomicOperationUtils.addComponentInstanceToComponentContainer(resource3, resourceVF, UserRoleEnum.DESIGNER,
- true);
- // TODO
- Either<ArtifactDefinition, RestResponse> artifactDefinition = AtomicOperationUtils
- .uploadArtifactByType(ArtifactTypeEnum.VENDOR_LICENSE, resourceVF, UserRoleEnum.DESIGNER, true, true);
- AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.APPC_CONFIG, resourceVF, UserRoleEnum.DESIGNER, true,
- true);
- resourceVF = ResponseParser.parseToObjectUsingMapper(
- ResourceRestUtils.getResource(resourceVF.getUniqueId()).getResponse(), Resource.class);
-
- RestResponse assetResponse = AssetRestUtils.getAssetMetadataByAssetTypeAndUuid(true, AssetTypeEnum.RESOURCES,
- resourceVF.getUUID());
- BaseRestUtils.checkSuccess(assetResponse);
-
- ResourceDetailedAssetStructure resourceAssetMetadata = AssetRestUtils.getResourceAssetMetadata(assetResponse);
- AssetRestUtils.resourceMetadataValidatior(resourceAssetMetadata, resourceVF, AssetTypeEnum.RESOURCES);
-
- // Validate audit message
- ExpectedExternalAudit expectedAssetListAudit = ElementFactory
- .getDefaultAssetMetadataAudit(AssetTypeEnum.RESOURCES, resourceVF);
- // AuditValidationUtils.validateAudit(expectedAssetListAudit,
- // AuditingActionEnum.GET_ASSET_METADATA.getName(), null);
-
- }
-
- public Component getComponentInTargetLifeCycleState(String componentType, UserRoleEnum creatorUser,
- LifeCycleStatesEnum targetLifeCycleState) throws Exception {
- Component resourceDetails = null;
+ // External API
+ // Upload artifact on VF via external API - happy flow
+ @Test(dataProvider="deleteArtifactOnAssetWhichNotExist")
+ public void deleteArtifactOnAssetWhichNotExist(ComponentTypeEnum componentTypeEnum, String artifactType, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s, artifactType: %s", componentTypeEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(componentTypeEnum, LifeCycleStatesEnum.CHECKIN, artifactType, resourceTypeEnum);
+
+ Map<String, ArtifactDefinition> deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+
+ String artifactUUID = null;
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+ // Invalid artifactUUID
+ String invalidArtifactUUID = "12341234-1234-1234-1234-123412341234";
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_NOT_FOUND.name());
+ List<String> variables = asList(invalidArtifactUUID);
+
+ if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, component.getComponentInstances().get(0), invalidArtifactUUID, errorInfo, variables, null);
+ } else {
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, null, invalidArtifactUUID, errorInfo, variables, null);
- if (componentType.toLowerCase().equals("vf")) {
- Either<Resource, RestResponse> createdResource = AtomicOperationUtils
- .createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF, NormativeTypesEnum.ROOT,
- ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, creatorUser, true);
- resourceDetails = createdResource.left().value();
- resourceDetails = AtomicOperationUtils
- .changeComponentState(resourceDetails, creatorUser, targetLifeCycleState, true).getLeft();
+ }
+
+
+ // Invalid componentUUID
+ if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
+ component.getComponentInstances().get(0).setNormalizedName("invalidNormalizedName");
+ errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_INSTANCE_NOT_FOUND_ON_CONTAINER.name());
+ variables = asList("invalidNormalizedName", ComponentTypeEnum.RESOURCE_INSTANCE.getValue().toLowerCase(), ComponentTypeEnum.SERVICE.getValue(), component.getName());
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, LifeCycleStatesEnum.CHECKIN);
} else {
- Either<Service, RestResponse> createdResource = AtomicOperationUtils.createDefaultService(creatorUser,
- true);
- resourceDetails = createdResource.left().value();
- resourceDetails = AtomicOperationUtils
- .changeComponentState(resourceDetails, creatorUser, targetLifeCycleState, true).getLeft();
+ component.setUUID("invalidComponentUUID");
+ errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESOURCE_NOT_FOUND.name());
+ variables = asList("null");
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, null, artifactUUID, errorInfo, variables, LifeCycleStatesEnum.CHECKIN);
}
+
+
- return resourceDetails;
+
+ }
+
+ @DataProvider(name="deleteArtifactOnAssetWhichInInvalidStateForUploading")
+ public static Object[][] dataProviderDeleteArtifactOnAssetWhichInInvalidStateForUploading() {
+ return new Object[][] {
+ {ComponentTypeEnum.SERVICE, "OTHER"},
+ {ComponentTypeEnum.RESOURCE, "OTHER"},
+ {ComponentTypeEnum.RESOURCE_INSTANCE, "DCAE_INVENTORY_TOSCA"},
+ };
+ }
+
+
+ @Test(dataProvider="deleteArtifactOnAssetWhichInInvalidStateForUploading")
+ public void deleteArtifactOnAssetWhichInInvalidStateForUploading(ComponentTypeEnum componentTypeEnum, String artifactType) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("componentTypeEnum: %s, artifactType: %s", componentTypeEnum, artifactType));
+ Component component = uploadArtifactOnAssetViaExternalAPI(componentTypeEnum, LifeCycleStatesEnum.CHECKOUT, artifactType, null);
+ component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.STARTCERTIFICATION, true).getLeft();
+
+ Map<String, ArtifactDefinition> deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+ String artifactUUID = null;
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+
+ // Invalid artifactUUID
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE.name());
+ List<String> variables = asList(component.getName(), component.getComponentType().toString().toLowerCase(), ElementFactory.getDefaultUser(UserRoleEnum.TESTER).getFirstName(),
+ ElementFactory.getDefaultUser(UserRoleEnum.TESTER).getLastName(), ElementFactory.getDefaultUser(UserRoleEnum.TESTER).getUserId());
+
+ if(componentTypeEnum.equals(ComponentTypeEnum.RESOURCE_INSTANCE)) {
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 403, component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, null);
+ } else {
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 403, null, artifactUUID, errorInfo, variables, null);
+
+ }
+
+ }
+
+
+ @DataProvider(name="deleteArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI")
+ public static Object[][] dataProviderDeleteArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI() {
+ return new Object[][] {
+ {ResourceTypeEnum.VFC},
+ {ResourceTypeEnum.VL},
+ {ResourceTypeEnum.CP}
+ };
}
+
+
+ // Verify that it cannot delete VFC/VL/CP artifact on VFCi/VLi/CPi - Failure flow
+ @Test(dataProvider="deleteArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI")
+ public void deleteArtifactOfVfcVlCpForVfciVliCpiViaExternalAPI(ResourceTypeEnum resourceTypeEnum) throws Exception {
+ extendTest.log(LogStatus.INFO, String.format("resourceTypeEnum: %s", resourceTypeEnum));
+
+ Component resourceInstanceDetails = getComponentInTargetLifeCycleState(ComponentTypeEnum.RESOURCE.getValue(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, resourceTypeEnum);
+ ArtifactReqDetails artifactReqDetails = ElementFactory.getArtifactByType("ci", "SNMP_TRAP", true, false);
+ uploadArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(resourceInstanceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactReqDetails, 200);
+ resourceInstanceDetails = AtomicOperationUtils.changeComponentState(resourceInstanceDetails, UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
+ Component component = getComponentInTargetLifeCycleState(ComponentTypeEnum.RESOURCE.toString(), UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKOUT, null);
+ AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceInstanceDetails, component, UserRoleEnum.DESIGNER, true).left().value();
+ component = AtomicOperationUtils.getResourceObjectByNameAndVersion(UserRoleEnum.DESIGNER, component.getName(), component.getVersion());
+
+ ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_NOT_FOUND.name());
+ Map<String, ArtifactDefinition> deploymentArtifacts;
+ deploymentArtifacts = getDeploymentArtifactsOfAsset(component, ComponentTypeEnum.RESOURCE_INSTANCE);
+ String artifactUUID = null;
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci") && !key.endsWith("env")) {
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+ List<String> variables = asList(artifactUUID);
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
+ 404, component.getComponentInstances().get(0), artifactUUID, errorInfo, variables, null);
+ }
+
+ protected RestResponse deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails,
+ Integer expectedResponseCode, ComponentInstance componentInstance, String artifactUUID, ErrorInfo errorInfo, List<String> variables, LifeCycleStatesEnum lifeCycleStatesEnum) throws Exception {
+ RestResponse restResponse;
+
+ if(componentInstance != null) {
+ restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfComponentInstanceOnAsset(resourceDetails, sdncModifierDetails, componentInstance, artifactUUID);
+ } else {
+ restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfTheAsset(resourceDetails, sdncModifierDetails, artifactUUID);
- // // External API - Download artifact for resource - negative test
- // @Test
- // public void k() throws Exception {
- // Resource resourceDetailsVF;
- // Either<Resource, RestResponse> createdResource =
- // AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF,
- // NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE,
- // UserRoleEnum.DESIGNER, true);
- // resourceDetailsVF = createdResource.left().value();
- // ArtifactDefinition heatArtifact =
- // AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT,
- // resourceDetailsVF, UserRoleEnum.DESIGNER, true, true).left().value();
- // resourceDetails = new ResourceReqDetails(resourceDetailsVF);
- //
- // String resourceUUID = resourceDetailsVF.getUUID();
- // String artifactUUID = heatArtifact.getArtifactUUID();
- //
- // System.out.println("Resource UUID: " + resourceUUID);
- // System.out.println("Artifact UUID: " + artifactUUID);
- //
- // RestResponse restResponse =
- // ArtifactRestUtils.getResourceDeploymentArtifactExternalAPI(resourceUUID,
- // "dfsgfdsg324", ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- // "Resource");
- //
- // Integer responseCode = restResponse.getErrorCode();
- // Integer expectedCode = 200;
- // Assert.assertEquals(responseCode,expectedCode, "Response code is not
- // correct.");
- // }
- //
- //
- //
- //
- //
- // // External API - Download artifact for service - negative test
- // @Test
- // public void downloadArtifactFromServiceViaExternalAPI() throws Exception
- // {
- //
- // Service resourceDetailsService;
- // Either<Service, RestResponse> createdResource =
- // AtomicOperationUtils.createDefaultService(UserRoleEnum.DESIGNER, true);
- // resourceDetailsService = createdResource.left().value();
- //
- // ArtifactDefinition heatArtifact =
- // AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER,
- // resourceDetailsService, UserRoleEnum.DESIGNER, true,
- // true).left().value();
- //
- // String resourceUUID = resourceDetailsService.getUUID();
- // String artifactUUID = heatArtifact.getArtifactUUID();
- //
- // System.out.println("Resource UUID: " + resourceUUID);
- // System.out.println("Artifact UUID: " + artifactUUID);
- //
- // RestResponse restResponse =
- // ArtifactRestUtils.getResourceDeploymentArtifactExternalAPI(resourceUUID,
- // artifactUUID, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER),
- // "Service");
- //
- // Integer responseCode = restResponse.getErrorCode();
- // Integer expectedCode = 200;
- // Assert.assertEquals(responseCode,expectedCode, "Response code is not
- // correct.");
- //
- // String response = restResponse.getResponse();
- //
- // String payloadData =
- // "aGVhdF90ZW1wbGF0ZV92ZXJzaW9uOiAyMDEzLTA1LTIzDQoNCmRlc2NyaXB0aW9uOiBTaW1wbGUgdGVtcGxhdGUgdG8gZGVwbG95IGEgc3RhY2sgd2l0aCB0d28gdmlydHVhbCBtYWNoaW5lIGluc3RhbmNlcw0KDQpwYXJhbWV0ZXJzOg0KICBpbWFnZV9uYW1lXzE6DQogICAgdHlwZTogc3RyaW5nDQogICAgbGFiZWw6IEltYWdlIE5hbWUNCiAgICBkZXNjcmlwdGlvbjogU0NPSU1BR0UgU3BlY2lmeSBhbiBpbWFnZSBuYW1lIGZvciBpbnN0YW5jZTENCiAgICBkZWZhdWx0OiBjaXJyb3MtMC4zLjEteDg2XzY0DQogIGltYWdlX25hbWVfMjoNCiAgICB0eXBlOiBzdHJpbmcNCiAgICBsYWJlbDogSW1hZ2UgTmFtZQ0KICAgIGRlc2NyaXB0aW9uOiBTQ09JTUFHRSBTcGVjaWZ5IGFuIGltYWdlIG5hbWUgZm9yIGluc3RhbmNlMg0KICAgIGRlZmF1bHQ6IGNpcnJvcy0wLjMuMS14ODZfNjQNCiAgbmV0d29ya19pZDoNCiAgICB0eXBlOiBzdHJpbmcNCiAgICBsYWJlbDogTmV0d29yayBJRA0KICAgIGRlc2NyaXB0aW9uOiBTQ09ORVRXT1JLIE5ldHdvcmsgdG8gYmUgdXNlZCBmb3IgdGhlIGNvbXB1dGUgaW5zdGFuY2UNCiAgICBoaWRkZW46IHRydWUNCiAgICBjb25zdHJhaW50czoNCiAgICAgIC0gbGVuZ3RoOiB7IG1pbjogNiwgbWF4OiA4IH0NCiAgICAgICAgZGVzY3JpcHRpb246IFBhc3N3b3JkIGxlbmd0aCBtdXN0IGJlIGJldHdlZW4gNiBhbmQgOCBjaGFyYWN0ZXJzLg0KICAgICAgLSByYW5nZTogeyBtaW46IDYsIG1heDogOCB9DQogICAgICAgIGRlc2NyaXB0aW9uOiBSYW5nZSBkZXNjcmlwdGlvbg0KICAgICAgLSBhbGxvd2VkX3ZhbHVlczoNCiAgICAgICAgLSBtMS5zbWFsbA0KICAgICAgICAtIG0xLm1lZGl1bQ0KICAgICAgICAtIG0xLmxhcmdlDQogICAgICAgIGRlc2NyaXB0aW9uOiBBbGxvd2VkIHZhbHVlcyBkZXNjcmlwdGlvbg0KICAgICAgLSBhbGxvd2VkX3BhdHRlcm46ICJbYS16QS1aMC05XSsiDQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBtdXN0IGNvbnNpc3Qgb2YgY2hhcmFjdGVycyBhbmQgbnVtYmVycyBvbmx5Lg0KICAgICAgLSBhbGxvd2VkX3BhdHRlcm46ICJbQS1aXStbYS16QS1aMC05XSoiDQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBtdXN0IHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGNoYXJhY3Rlci4NCiAgICAgIC0gY3VzdG9tX2NvbnN0cmFpbnQ6IG5vdmEua2V5cGFpcg0KICAgICAgICBkZXNjcmlwdGlvbjogQ3VzdG9tIGRlc2NyaXB0aW9uDQoNCnJlc291cmNlczoNCiAgbXlfaW5zdGFuY2UxOg0KICAgIHR5cGU6IE9TOjpOb3ZhOjpTZXJ2ZXINCiAgICBwcm9wZXJ0aWVzOg0KICAgICAgaW1hZ2U6IHsgZ2V0X3BhcmFtOiBpbWFnZV9uYW1lXzEgfQ0KICAgICAgZmxhdm9yOiBtMS5zbWFsbA0KICAgICAgbmV0d29ya3M6DQogICAgICAgIC0gbmV0d29yayA6IHsgZ2V0X3BhcmFtIDogbmV0d29ya19pZCB9DQogIG15X2luc3RhbmNlMjoNCiAgICB0eXBlOiBPUzo6Tm92YTo6U2VydmVyDQogICAgcHJvcGVydGllczoNCiAgICAgIGltYWdlOiB7IGdldF9wYXJhbTogaW1hZ2VfbmFtZV8yIH0NCiAgICAgIGZsYXZvcjogbTEudGlueQ0KICAgICAgbmV0d29ya3M6DQogICAgICAgIC0gbmV0d29yayA6IHsgZ2V0X3BhcmFtIDogbmV0d29ya19pZCB9";
- // String decodedPaypload = Decoder.decode(payloadData);
- //
- // Assert.assertEquals(response, decodedPaypload, "Response deployment
- // artifact not correct.");
- //
- // String auditAction = "ArtifactDownload";
- //
- // ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new
- // ExpectedResourceAuditJavaObject();
- // expectedResourceAuditJavaObject.setAction(auditAction);
- // expectedResourceAuditJavaObject.setResourceName(resourceDetailsService.getName());
- // expectedResourceAuditJavaObject.setResourceType("Service");
- // expectedResourceAuditJavaObject.setStatus("200");
- // expectedResourceAuditJavaObject.setDesc("OK");
- //
- // expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
- // String resource_url =
- // String.format("/asdc/v1/catalog/services/%s/artifacts/%s", resourceUUID,
- // artifactUUID);
- // expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
- //
- // AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject,
- // auditAction, null, false);
- // }
- //
- //
- //
- //
- //
- //
- // // External API - Download ComponentInstance artifact of service -
- // negative test
- // @Test
- // public void
- // downloadArtifactOfComponentInstanceFromServiceViaExternalAPI() throws
- // Exception {
- //
- // Either<Resource, RestResponse> resourceDetailsVF_01e =
- // AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(ResourceTypeEnum.VF,
- // NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE,
- // UserRoleEnum.DESIGNER, true);
- // Component resourceDetailsVF_01 = resourceDetailsVF_01e.left().value();
- // ArtifactDefinition heatArtifact =
- // AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.HEAT,
- // resourceDetailsVF_01, UserRoleEnum.DESIGNER, true, true).left().value();
- //
- // resourceDetailsVF_01 =
- // AtomicOperationUtils.changeComponentState(resourceDetailsVF_01,
- // UserRoleEnum.DESIGNER, LifeCycleStatesEnum.CHECKIN, true).getLeft();
- //
- // Service resourceDetailsService;
- // Either<Service, RestResponse> createdResource =
- // AtomicOperationUtils.createDefaultService(UserRoleEnum.DESIGNER, true);
- // resourceDetailsService = createdResource.left().value();
- //
- //
- // ComponentInstance resourceDetailsVF1ins_01 =
- // AtomicOperationUtils.addComponentInstanceToComponentContainer(resourceDetailsVF_01,
- // resourceDetailsService, UserRoleEnum.DESIGNER, true).left().value();
- //
- //
- // System.out.println("-----");
- //
- //
- // String resourceUUID = resourceDetailsService.getUUID();
- // String componentInstanceUID = resourceDetailsVF1ins_01.getUniqueId();
- // String artifactUUID = heatArtifact.getArtifactUUID();
- //
- // System.out.println("Resource UUID: " + resourceUUID);
- // System.out.println("Component instance UID: " + componentInstanceUID);
- // System.out.println("Artifact UUID: " + artifactUUID);
- //
- // RestResponse restResponse =
- // ArtifactRestUtils.getComponentInstanceDeploymentArtifactExternalAPI(resourceUUID,
- // componentInstanceUID, artifactUUID,
- // ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), "Service");
- ////
- // Integer responseCode = restResponse.getErrorCode();
- // Integer expectedCode = 200;
- // Assert.assertEquals(responseCode,expectedCode, "Response code is not
- // correct.");
- //
- // String response = restResponse.getResponse();
- //
- // String payloadData =
- // "aGVhdF90ZW1wbGF0ZV92ZXJzaW9uOiAyMDEzLTA1LTIzDQoNCmRlc2NyaXB0aW9uOiBTaW1wbGUgdGVtcGxhdGUgdG8gZGVwbG95IGEgc3RhY2sgd2l0aCB0d28gdmlydHVhbCBtYWNoaW5lIGluc3RhbmNlcw0KDQpwYXJhbWV0ZXJzOg0KICBpbWFnZV9uYW1lXzE6DQogICAgdHlwZTogc3RyaW5nDQogICAgbGFiZWw6IEltYWdlIE5hbWUNCiAgICBkZXNjcmlwdGlvbjogU0NPSU1BR0UgU3BlY2lmeSBhbiBpbWFnZSBuYW1lIGZvciBpbnN0YW5jZTENCiAgICBkZWZhdWx0OiBjaXJyb3MtMC4zLjEteDg2XzY0DQogIGltYWdlX25hbWVfMjoNCiAgICB0eXBlOiBzdHJpbmcNCiAgICBsYWJlbDogSW1hZ2UgTmFtZQ0KICAgIGRlc2NyaXB0aW9uOiBTQ09JTUFHRSBTcGVjaWZ5IGFuIGltYWdlIG5hbWUgZm9yIGluc3RhbmNlMg0KICAgIGRlZmF1bHQ6IGNpcnJvcy0wLjMuMS14ODZfNjQNCiAgbmV0d29ya19pZDoNCiAgICB0eXBlOiBzdHJpbmcNCiAgICBsYWJlbDogTmV0d29yayBJRA0KICAgIGRlc2NyaXB0aW9uOiBTQ09ORVRXT1JLIE5ldHdvcmsgdG8gYmUgdXNlZCBmb3IgdGhlIGNvbXB1dGUgaW5zdGFuY2UNCiAgICBoaWRkZW46IHRydWUNCiAgICBjb25zdHJhaW50czoNCiAgICAgIC0gbGVuZ3RoOiB7IG1pbjogNiwgbWF4OiA4IH0NCiAgICAgICAgZGVzY3JpcHRpb246IFBhc3N3b3JkIGxlbmd0aCBtdXN0IGJlIGJldHdlZW4gNiBhbmQgOCBjaGFyYWN0ZXJzLg0KICAgICAgLSByYW5nZTogeyBtaW46IDYsIG1heDogOCB9DQogICAgICAgIGRlc2NyaXB0aW9uOiBSYW5nZSBkZXNjcmlwdGlvbg0KICAgICAgLSBhbGxvd2VkX3ZhbHVlczoNCiAgICAgICAgLSBtMS5zbWFsbA0KICAgICAgICAtIG0xLm1lZGl1bQ0KICAgICAgICAtIG0xLmxhcmdlDQogICAgICAgIGRlc2NyaXB0aW9uOiBBbGxvd2VkIHZhbHVlcyBkZXNjcmlwdGlvbg0KICAgICAgLSBhbGxvd2VkX3BhdHRlcm46ICJbYS16QS1aMC05XSsiDQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBtdXN0IGNvbnNpc3Qgb2YgY2hhcmFjdGVycyBhbmQgbnVtYmVycyBvbmx5Lg0KICAgICAgLSBhbGxvd2VkX3BhdHRlcm46ICJbQS1aXStbYS16QS1aMC05XSoiDQogICAgICAgIGRlc2NyaXB0aW9uOiBQYXNzd29yZCBtdXN0IHN0YXJ0IHdpdGggYW4gdXBwZXJjYXNlIGNoYXJhY3Rlci4NCiAgICAgIC0gY3VzdG9tX2NvbnN0cmFpbnQ6IG5vdmEua2V5cGFpcg0KICAgICAgICBkZXNjcmlwdGlvbjogQ3VzdG9tIGRlc2NyaXB0aW9uDQoNCnJlc291cmNlczoNCiAgbXlfaW5zdGFuY2UxOg0KICAgIHR5cGU6IE9TOjpOb3ZhOjpTZXJ2ZXINCiAgICBwcm9wZXJ0aWVzOg0KICAgICAgaW1hZ2U6IHsgZ2V0X3BhcmFtOiBpbWFnZV9uYW1lXzEgfQ0KICAgICAgZmxhdm9yOiBtMS5zbWFsbA0KICAgICAgbmV0d29ya3M6DQogICAgICAgIC0gbmV0d29yayA6IHsgZ2V0X3BhcmFtIDogbmV0d29ya19pZCB9DQogIG15X2luc3RhbmNlMjoNCiAgICB0eXBlOiBPUzo6Tm92YTo6U2VydmVyDQogICAgcHJvcGVydGllczoNCiAgICAgIGltYWdlOiB7IGdldF9wYXJhbTogaW1hZ2VfbmFtZV8yIH0NCiAgICAgIGZsYXZvcjogbTEudGlueQ0KICAgICAgbmV0d29ya3M6DQogICAgICAgIC0gbmV0d29yayA6IHsgZ2V0X3BhcmFtIDogbmV0d29ya19pZCB9";
- // String decodedPaypload = Decoder.decode(payloadData);
- //
- // Assert.assertEquals(response, decodedPaypload, "Response deployment
- // artifact not correct.");
- //
- // String auditAction = "ArtifactDownload";
- //
- // ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new
- // ExpectedResourceAuditJavaObject();
- // expectedResourceAuditJavaObject.setAction(auditAction);
- // expectedResourceAuditJavaObject.setResourceName(resourceDetailsVF1ins_01.getName());
- // expectedResourceAuditJavaObject.setResourceType("Service");
- // expectedResourceAuditJavaObject.setStatus("200");
- // expectedResourceAuditJavaObject.setDesc("OK");
- //
- // expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
- // String resource_url =
- // String.format("/asdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s",
- // resourceUUID, componentInstanceUID, artifactUUID);
- // expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
- //
- // AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject,
- // auditAction, null, false);
- // }
- //
- //
- //
- //
- //
- //
- //
- //
- //
- // @Test
- // public void downloadArtifactFromResourceTest() throws Exception {
- //
- // CloseableHttpClient httpclient = HttpClients.createDefault();
- // try {
- // String jsonBody = createUploadArtifactBodyJson();
- //
- // String resourceId = resourceDetails.getUniqueId();
- // String url = String.format(Urls.ADD_ARTIFACT_TO_RESOURCE,
- // config.getCatalogBeHost(), config.getCatalogBePort(), resourceId);
- // HttpPost httppost = createPostAddArtifactRequeast(jsonBody, url, true);
- // HttpResponse response = httpclient.execute(httppost);
- // int status = response.getStatusLine().getStatusCode();
- // AssertJUnit.assertEquals("failed to add artifact", 200, status);
- //
- // ArtifactDefinition origArtifact = getArtifactDataFromJson(jsonBody);
- // addArtifactDataFromResponse(response, origArtifact);
- // String artifactId = origArtifact.getUniqueId();
- //
- // url = String.format(Urls.UI_DOWNLOAD_RESOURCE_ARTIFACT,
- // config.getCatalogBeHost(), config.getCatalogBePort(), resourceId,
- // artifactId);
- // HttpGet httpGet = createGetRequest(url);
- // response = httpclient.execute(httpGet);
- // status = response.getStatusLine().getStatusCode();
- // AssertJUnit.assertEquals("failed to download artifact", 200, status);
- //
- // InputStream inputStream = response.getEntity().getContent();
- // ArtifactUiDownloadData artifactUiDownloadData =
- // getArtifactUiDownloadData(IOUtils.toString(inputStream));
- // AssertJUnit.assertEquals("Downloaded payload is different from uploaded
- // one", UPLOAD_ARTIFACT_PAYLOAD,
- // artifactUiDownloadData.getBase64Contents());
- // AssertJUnit.assertEquals("Downloaded artifact name is different from
- // uploaded one", UPLOAD_ARTIFACT_NAME,
- // artifactUiDownloadData.getArtifactName());
- //
- // // validate audit
- //
- // ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject =
- // Convertor.constructFieldsForAuditValidation(resourceDetails,
- // resourceDetails.getVersion(), sdncUserDetails);
- // String auditAction = "ArtifactDownload";
- // expectedResourceAuditJavaObject.setAction(auditAction);
- // expectedResourceAuditJavaObject.setPrevState("");
- // expectedResourceAuditJavaObject.setPrevVersion("");
- // expectedResourceAuditJavaObject.setCurrState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
- // expectedResourceAuditJavaObject.setStatus("200");
- // expectedResourceAuditJavaObject.setDesc("OK");
- // expectedResourceAuditJavaObject.setArtifactData(AuditValidationUtils.buildArtifactDataAudit(origArtifact));
- // expectedResourceAuditJavaObject.setCurrArtifactUuid(origArtifact.getUniqueId());
- // expectedResourceAuditJavaObject.setPrevArtifactUuid("");
- // AuditValidationUtils.validateAudit(expectedResourceAuditJavaObject,
- // auditAction, null, false);
- //
- // } finally {
- // httpclient.close();
- // }
- //
- // }
- //
- // @Test
- // public void downloadArtifactFromServiceTest() throws Exception {
- //
- // CloseableHttpClient httpclient = HttpClients.createDefault();
- //
- // try {
- //
- // String jsonStr = createUploadArtifactBodyJson();
- //
- // String url = String.format(Urls.ADD_ARTIFACT_TO_SERVICE,
- // config.getCatalogBeHost(), config.getCatalogBePort(),
- // serviceDetails.getUniqueId());
- // HttpPost httpPost = createPostAddArtifactRequeast(jsonStr, url, true);
- // CloseableHttpResponse result = httpclient.execute(httpPost);
- // int status = result.getStatusLine().getStatusCode();
- // AssertJUnit.assertEquals("failed to add artifact", 200, status);
- //
- // ArtifactDefinition origArtifact = getArtifactDataFromJson(jsonStr);
- // addArtifactDataFromResponse(result, origArtifact);
- // String artifactId = origArtifact.getUniqueId();
- //
- // url = String.format(Urls.UI_DOWNLOAD_SERVICE_ARTIFACT,
- // config.getCatalogBeHost(), config.getCatalogBePort(),
- // serviceDetails.getUniqueId(), artifactId);
- // HttpGet httpGet = createGetRequest(url);
- // CloseableHttpResponse response2 = httpclient.execute(httpGet);
- // status = response2.getStatusLine().getStatusCode();
- // AssertJUnit.assertEquals("failed to download artifact", 200, status);
- // InputStream inputStream = response2.getEntity().getContent();
- // ArtifactUiDownloadData artifactUiDownloadData =
- // getArtifactUiDownloadData(IOUtils.toString(inputStream));
- // AssertJUnit.assertEquals("Downloaded payload is different from uploaded
- // one", UPLOAD_ARTIFACT_PAYLOAD,
- // artifactUiDownloadData.getBase64Contents());
- // AssertJUnit.assertEquals("Downloaded artifact name is different from
- // uploaded one", UPLOAD_ARTIFACT_NAME,
- // artifactUiDownloadData.getArtifactName());
- //
- // // validate audit
- // ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject =
- // AuditValidationUtils.constructFieldsForAuditValidation(serviceDetails,
- // serviceDetails.getVersion(), sdncUserDetails);
- // String auditAction = "ArtifactDownload";
- // expectedResourceAuditJavaObject.setAction(auditAction);
- // expectedResourceAuditJavaObject.setPrevState("");
- // expectedResourceAuditJavaObject.setPrevVersion("");
- // expectedResourceAuditJavaObject.setCurrState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
- // expectedResourceAuditJavaObject.setStatus("200");
- // expectedResourceAuditJavaObject.setDesc("OK");
- // expectedResourceAuditJavaObject.setArtifactData(AuditValidationUtils.buildArtifactDataAudit(origArtifact));
- // expectedResourceAuditJavaObject.setCurrArtifactUuid(origArtifact.getUniqueId());
- // expectedResourceAuditJavaObject.setPrevArtifactUuid("");
- //
- // AuditValidationUtils.validateAudit(expectedResourceAuditJavaObject,
- // auditAction, null, false);
- //
- // } finally {
- //// RestResponse response = ServiceRestUtils.deleteService(serviceDetails,
- // serviceVersion, sdncUserDetails );
- //// checkDeleteResponse(response);
- // httpclient.close();
- // }
- // }
- //
- // @Test
- // public void downloadArtifactFromResourceNotFound() throws Exception {
- //
- // CloseableHttpClient httpclient = HttpClients.createDefault();
- // try {
- //
- // String resourceId = resourceDetails.getUniqueId();
- // String artifactIdNotFound = "11111";
- //
- // ArtifactDefinition origArtifact = new ArtifactDefinition();
- // origArtifact.setUniqueId(artifactIdNotFound);
- //
- // String url = String.format(Urls.UI_DOWNLOAD_RESOURCE_ARTIFACT,
- // config.getCatalogBeHost(), config.getCatalogBePort(), resourceId,
- // artifactIdNotFound);
- // HttpGet httpGet = createGetRequest(url);
- // CloseableHttpResponse response = httpclient.execute(httpGet);
- // int status = response.getStatusLine().getStatusCode();
- // AssertJUnit.assertEquals("expected 404 not found", 404, status);
- //
- // // validate audit
- // ErrorInfo errorInfo =
- // ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_NOT_FOUND.name());
- // ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject =
- // Convertor.constructFieldsForAuditValidation(resourceDetails,
- // resourceDetails.getVersion(), sdncUserDetails);
- // String auditAction = "ArtifactDownload";
- // expectedResourceAuditJavaObject.setAction(auditAction);
- // expectedResourceAuditJavaObject.setPrevState("");
- // expectedResourceAuditJavaObject.setPrevVersion("");
- // expectedResourceAuditJavaObject.setCurrState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
- // expectedResourceAuditJavaObject.setStatus(errorInfo.getCode().toString());
- // expectedResourceAuditJavaObject.setDesc(errorInfo.getAuditDesc(""));
- // expectedResourceAuditJavaObject.setArtifactData("");
- // expectedResourceAuditJavaObject.setCurrArtifactUuid(origArtifact.getUniqueId());
- // expectedResourceAuditJavaObject.setPrevArtifactUuid("");
- // AuditValidationUtils.validateAudit(expectedResourceAuditJavaObject,
- // auditAction, null, false);
- // expectedResourceAuditJavaObject.setPrevArtifactUuid(null);
- // } finally {
- // httpclient.close();
- // }
- //
- // }
- //
- // @Test
- // public void downloadArtifactFromServiceNotFound() throws Exception {
- //
- // CloseableHttpClient httpclient = HttpClients.createDefault();
- // try {
- //
- // String artifactIdNotFound = "11111";
- // ArtifactDefinition origArtifact = new ArtifactDefinition();
- // origArtifact.setUniqueId(artifactIdNotFound);
- //
- // String url = String.format(Urls.UI_DOWNLOAD_SERVICE_ARTIFACT,
- // config.getCatalogBeHost(), config.getCatalogBePort(),
- // serviceDetails.getUniqueId(), artifactIdNotFound);
- // HttpGet httpGet = createGetRequest(url);
- // CloseableHttpResponse response2 = httpclient.execute(httpGet);
- // int status = response2.getStatusLine().getStatusCode();
- // AssertJUnit.assertEquals("expected 404 not found", 404, status);
- //
- // // validate audit
- // ErrorInfo errorInfo =
- // ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.ARTIFACT_NOT_FOUND.name());
- // ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject =
- // ServiceValidationUtils.constructFieldsForAuditValidation(serviceDetails,
- // serviceDetails.getVersion(), sdncUserDetails);
- // String auditAction = "ArtifactDownload";
- // expectedResourceAuditJavaObject.setAction(auditAction);
- // expectedResourceAuditJavaObject.setPrevState("");
- // expectedResourceAuditJavaObject.setPrevVersion("");
- // expectedResourceAuditJavaObject.setCurrState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
- // expectedResourceAuditJavaObject.setStatus(errorInfo.getCode().toString());
- // expectedResourceAuditJavaObject.setDesc(errorInfo.getAuditDesc(""));
- // expectedResourceAuditJavaObject.setArtifactData("");
- // expectedResourceAuditJavaObject.setCurrArtifactUuid(origArtifact.getUniqueId());
- // expectedResourceAuditJavaObject.setPrevArtifactUuid("");
- // AuditValidationUtils.validateAudit(expectedResourceAuditJavaObject,
- // auditAction, null, false);
- //
- // } finally {
- // httpclient.close();
- // }
- //
- // }
- //
- // @Test
- // public void addArtifactToResourceTest() throws Exception {
- //
- // ArtifactReqDetails defaultArtifact = ElementFactory.getDefaultArtifact();
- //
- // RestResponse response =
- // ArtifactRestUtils.addInformationalArtifactToResource(defaultArtifact,
- // sdncUserDetails, resourceDetails.getUniqueId());
- // int status = response.getErrorCode();
- // AssertJUnit.assertEquals("add informational artifact request returned
- // status: " + response.getErrorCode(), 200, status);
- //
- // RestResponse resourceResp =
- // ResourceRestUtils.getResource(resourceDetails.getUniqueId());
- // Resource resource =
- // ResponseParser.convertResourceResponseToJavaObject(resourceResp.getResponse());
- // AssertJUnit.assertNotNull(resource);
- //
- // Map<String, ArtifactDefinition> artifacts = resource.getArtifacts();
- // boolean isExist = false;
- // for (Map.Entry<String, ArtifactDefinition> entry : artifacts.entrySet())
- // {
- // if (entry.getKey().equals(defaultArtifact.getArtifactLabel())) {
- // isExist = true;
- //
- // }
- // }
- // AssertJUnit.assertTrue(isExist);
- // }
+ }
+
+ // validate response code
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_DELETE_BY_API;
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+// ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+
+ responseArtifact.setUpdaterFullName("");
+ responseArtifact.setUserIdLastUpdater(sdncModifierDetails.getUserId());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditFailure(assetTypeEnum, action, responseArtifact, resourceDetails.getUUID(), errorInfo, variables);
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
+ expectedExternalAudit.setRESOURCE_TYPE(resourceDetails.getComponentType().getValue());
+ expectedExternalAudit.setARTIFACT_DATA(null);
+ expectedExternalAudit.setCURR_ARTIFACT_UUID(artifactUUID);
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
+ if(componentInstance != null) {
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + resourceDetails.getComponentInstances().get(0).getNormalizedName() + "/artifacts/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getComponentInstances().get(0).getNormalizedName());
+ } else {
+ expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL() + "/" + artifactUUID);
+ if((errorInfo.getMessageId().equals(ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.RESOURCE_NOT_FOUND.name()).getMessageId())) ||
+ errorInfo.getMessageId().equals(ErrorValidationUtils.parseErrorConfigYaml(ActionStatus.COMPONENT_IN_CERT_IN_PROGRESS_STATE.name()).getMessageId()) ||
+ (lifeCycleStatesEnum == LifeCycleStatesEnum.STARTCERTIFICATION)) {
+ expectedExternalAudit.setRESOURCE_NAME(resourceDetails.getName());
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ } else {
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+ }
+ }
+
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_DELETE_BY_API.getName(), body);
+
+ return restResponse;
+
+ }
+
+
+ // Happy flow - get chosen life cycle state, artifact type and asset type
+ // delete artifact via external API + check audit & response code
+ protected Component deleteArtifactOnAssetViaExternalAPI(Component component, ComponentTypeEnum componentTypeEnum, LifeCycleStatesEnum chosenLifeCycleState) throws Exception {
+ String artifactName = null;
+ component = AtomicOperationUtils.changeComponentState(component, UserRoleEnum.DESIGNER, chosenLifeCycleState, true).getLeft();
+
+ // get updated artifact data
+ String artifactUUID = null;
+ Map<String, ArtifactDefinition> deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+
+ for (String key : deploymentArtifacts.keySet()) {
+ if (key.startsWith("ci")) {
+ artifactName = key;
+ artifactUUID = deploymentArtifacts.get(key).getArtifactUUID();
+ break;
+ }
+ }
+
+
+ String componentVersionBeforeDelete = component.getVersion();
+ int numberOfArtifact = deploymentArtifacts.size();
+
+
+ // create component/s & upload artifact via external api
+ if(ComponentTypeEnum.RESOURCE_INSTANCE == componentTypeEnum) {
+ deleteArtifactOfRIIncludingValiditionOfAuditAndResponseCode(component, component.getComponentInstances().get(0), ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactUUID, 200);
+ } else {
+ deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactUUID, 200);
+ }
+
+ component = getNewerVersionOfComponent(component, chosenLifeCycleState);
+
+ // Get list of deployment artifact + download them via external API
+ deploymentArtifacts = getDeploymentArtifactsOfAsset(component, componentTypeEnum);
+ if(deploymentArtifacts.get(artifactName) != null) {
+ Assert.assertTrue(false, "Expected that deletecd artifact will not appear in deployment artifact list.");
+ }
+ if((LifeCycleStatesEnum.CERTIFICATIONREQUEST.equals(chosenLifeCycleState)) && (ComponentTypeEnum.RESOURCE_INSTANCE.equals(componentTypeEnum)) && (!component.getComponentType().toString().equals(ComponentTypeEnum.RESOURCE.toString()))) {
+ Assert.assertEquals(numberOfArtifact - 2, deploymentArtifacts.keySet().size(), "Expected that number of deployment artifact (one deleted and one vfmodule) will decrease by two.");
+ } else {
+ Assert.assertEquals(numberOfArtifact - 1, deploymentArtifacts.keySet().size(), "Expected that number of deployment artifact will decrease by one.");
+ }
+
+ if(chosenLifeCycleState == LifeCycleStatesEnum.CHECKOUT) {
+ Assert.assertEquals(componentVersionBeforeDelete, component.getVersion(), "Expected that check-out component will not change version number.");
+ } else {
+ Assert.assertEquals(String.format("%.1f", (Double.parseDouble(componentVersionBeforeDelete) + 0.1)), component.getVersion(), "Expected that non check-out component version will increase by 0.1.");
+ }
+
+ downloadResourceDeploymentArtifactExternalAPI(component, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactUUID, componentTypeEnum);
+
+ return component;
+ }
+
+ // Delete artifact via external API + Check auditing for upload operation + Check response of external API
+ protected RestResponse deleteArtifactOfRIIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, ComponentInstance componentInstance, User sdncModifierDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfComponentInstanceOnAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentInstances().get(0), artifactUUID);
+
+ // Check response of external API
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_DELETE_BY_API;
+
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, componentInstance.getNormalizedName());
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+// expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
+ expectedExternalAudit.setRESOURCE_NAME(componentInstance.getNormalizedName());
+ expectedExternalAudit.setRESOURCE_URL("/asdc/v1/catalog/" + assetTypeEnum.getValue() + "/" + resourceDetails.getUUID() + "/resourceInstances/" + componentInstance.getNormalizedName() + "/artifacts/" + artifactUUID);
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_DELETE_BY_API.getName(), body);
+
+ return restResponse;
+ }
+
+
+ // Delete artifact via external API + Check auditing for upload operation + Check response of external API
+ protected RestResponse deleteArtifactOfAssetIncludingValiditionOfAuditAndResponseCode(Component resourceDetails, User sdncModifierDetails, String artifactUUID, Integer expectedResponseCode) throws Exception {
+ RestResponse restResponse = ArtifactRestUtils.externalAPIDeleteArtifactOfTheAsset(resourceDetails, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), artifactUUID);
+
+ // Check response of external API
+ Integer responseCode = restResponse.getErrorCode();
+ Assert.assertEquals(responseCode, expectedResponseCode, "Response code is not correct.");
+
+
+ // Check auditing for upload operation
+ ArtifactDefinition responseArtifact = getArtifactDataFromJson(restResponse.getResponse());
+
+ AuditingActionEnum action = AuditingActionEnum.ARTIFACT_DELETE_BY_API;
+
+ Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+ body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+
+ AssetTypeEnum assetTypeEnum = AssetTypeEnum.valueOf((resourceDetails.getComponentType().getValue() + "s").toUpperCase());
+ ExpectedExternalAudit expectedExternalAudit = ElementFactory.getDefaultExternalArtifactAuditSuccess(assetTypeEnum, action, responseArtifact, resourceDetails);
+ expectedExternalAudit.setRESOURCE_URL(expectedExternalAudit.getRESOURCE_URL()+ "/" + artifactUUID);
+ AuditValidationUtils.validateExternalAudit(expectedExternalAudit, AuditingActionEnum.ARTIFACT_DELETE_BY_API.getName(), body);
+
+ return restResponse;
+ }
+
+
+
+ // download deployment via external api + check response code for success (200) + get artifactReqDetails and verify payload + verify audit
+ protected RestResponse downloadResourceDeploymentArtifactExternalAPI(Component resourceDetails, User sdncModifierDetails, String artifactUUID, ComponentTypeEnum componentTypeEnum) throws Exception {
+ RestResponse restResponse;
+
+ if(componentTypeEnum == ComponentTypeEnum.RESOURCE_INSTANCE) {
+ restResponse = ArtifactRestUtils.getComponentInstanceDeploymentArtifactExternalAPI(resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactUUID, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentType().toString());
+ } else {
+ restResponse = ArtifactRestUtils.getResourceDeploymentArtifactExternalAPI(resourceDetails.getUUID(), artifactUUID, ElementFactory.getDefaultUser(UserRoleEnum.DESIGNER), resourceDetails.getComponentType().toString());
+ }
+
+ Integer responseCode = restResponse.getErrorCode();
+ Integer expectedCode = 404;
+ Assert.assertEquals(responseCode,expectedCode, "Response code is not correct.");
+
+
+ //TODO - including body - resourceDetails.getName()
+// // Verify audit
+// String auditAction = "DownloadArtifact";
+//
+// Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
+// body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, responseCode.toString());
+// body.put(AuditingFieldsKeysEnum.AUDIT_RESOURCE_NAME, resourceDetails.getName());
+//
+// ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
+// expectedResourceAuditJavaObject.setAction(auditAction);
+// expectedResourceAuditJavaObject.setResourceType(resourceDetails.getComponentType().getValue());
+// expectedResourceAuditJavaObject.setStatus("200");
+// expectedResourceAuditJavaObject.setDesc("OK");
+// expectedResourceAuditJavaObject.setCONSUMER_ID("ci");
+//
+// if(componentTypeEnum == ComponentTypeEnum.RESOURCE_INSTANCE) {
+// expectedResourceAuditJavaObject.setResourceName(resourceDetails.getComponentInstances().get(0).getName());
+// String resource_url = String.format("/asdc/v1/catalog/services/%s/resourceInstances/%s/artifacts/%s", resourceDetails.getUUID(), resourceDetails.getComponentInstances().get(0).getNormalizedName(), artifactDefinition.getArtifactUUID());
+// expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
+//
+// AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
+// } else {
+// expectedResourceAuditJavaObject.setResourceName(resourceDetails.getName());
+// String resource_url = String.format("/asdc/v1/catalog/services/%s/artifacts/%s", resourceDetails.getUUID(), artifactDefinition.getArtifactUUID());
+// expectedResourceAuditJavaObject.setRESOURCE_URL(resource_url);
+// }
+//
+// AuditValidationUtils.validateAuditDownloadExternalAPI(expectedResourceAuditJavaObject, auditAction, null, false);
+
+ return restResponse;
+
+ }
+
+
+
+
+ public Component getComponentInTargetLifeCycleState(String componentType, UserRoleEnum creatorUser, LifeCycleStatesEnum targetLifeCycleState, ResourceTypeEnum resourceTypeEnum) throws Exception {
+ Component resourceDetails = null;
+
+ if((componentType.toLowerCase().equals("vf")) || (componentType.toLowerCase().equals("resource"))){
+ if(resourceTypeEnum==null) {
+ resourceTypeEnum = ResourceTypeEnum.VF;
+ }
+ Either<Resource, RestResponse> createdResource = AtomicOperationUtils.createResourcesByTypeNormTypeAndCatregory(resourceTypeEnum, NormativeTypesEnum.ROOT, ResourceCategoryEnum.GENERIC_INFRASTRUCTURE, creatorUser, true);
+ resourceDetails = createdResource.left().value();
+ resourceDetails = AtomicOperationUtils.changeComponentState(resourceDetails, creatorUser, targetLifeCycleState, true).getLeft();
+ } else {
+ Either<Service, RestResponse> createdResource = AtomicOperationUtils.createDefaultService(creatorUser, true);
+ resourceDetails = createdResource.left().value();
+ // Add artifact to service if asked for certifcationrequest - must be at least one artifact for the flow
+ if((LifeCycleStatesEnum.CERTIFICATIONREQUEST == targetLifeCycleState) || (LifeCycleStatesEnum.STARTCERTIFICATION == targetLifeCycleState)) {
+ AtomicOperationUtils.uploadArtifactByType(ArtifactTypeEnum.OTHER, resourceDetails, UserRoleEnum.DESIGNER, true, true).left().value();
+ }
+ resourceDetails = AtomicOperationUtils.changeComponentState(resourceDetails, creatorUser, targetLifeCycleState, true).getLeft();
+ }
+
+ return resourceDetails;
+ }
+
+
+
+
+
protected String createUploadArtifactBodyJson() {
Map<String, Object> jsonBody = new HashMap<String, Object>();
jsonBody.put("artifactName", UPLOAD_ARTIFACT_NAME);
@@ -885,32 +3371,54 @@ public class CRUDExternalAPI extends ComponentBaseTest {
jsonBody.put("artifactLabel", "configure");
return gson.toJson(jsonBody);
}
+
+ protected ArtifactDefinition getArtifactDataFromJson(String content) {
- protected ArtifactDefinition getArtifactDataFromJson(String json) {
- Gson gson = new Gson();
JsonObject jsonElement = new JsonObject();
- jsonElement = gson.fromJson(json, jsonElement.getClass());
- ArtifactDefinition artifact = new ArtifactDefinition();
- String payload = null;
- JsonElement artifactPayload = jsonElement.get(Constants.ARTIFACT_PAYLOAD_DATA);
- if (artifactPayload != null && !artifactPayload.isJsonNull()) {
- payload = artifactPayload.getAsString();
- }
- jsonElement.remove(Constants.ARTIFACT_PAYLOAD_DATA);
- artifact = gson.fromJson(jsonElement, ArtifactDefinition.class);
- artifact.setPayloadData(payload);
-
- /*
- * atifact.setArtifactName(UPLOAD_ARTIFACT_NAME);
- * artifact.setArtifactDisplayName("configure");
- * artifact.setArtifactType("SHELL"); artifact.setMandatory(false);
- * artifact.setDescription("ff");
- * artifact.setPayloadData(UPLOAD_ARTIFACT_PAYLOAD);
- * artifact.setArtifactLabel("configure");
- */
- return artifact;
+ ArtifactDefinition resourceInfo = null;
+
+ try {
+ Gson gson = new Gson();
+ jsonElement = gson.fromJson(content, jsonElement.getClass());
+ JsonElement artifactGroupValue = jsonElement.get(Constants.ARTIFACT_GROUP_TYPE_FIELD);
+ if (artifactGroupValue != null && !artifactGroupValue.isJsonNull()) {
+ String groupValueUpper = artifactGroupValue.getAsString().toUpperCase();
+ if (!ArtifactGroupTypeEnum.getAllTypes().contains(groupValueUpper)) {
+ StringBuilder sb = new StringBuilder();
+ for (String value : ArtifactGroupTypeEnum.getAllTypes()) {
+ sb.append(value).append(", ");
+ }
+ log.debug("artifactGroupType is {}. valid values are: {}", groupValueUpper, sb.toString());
+ return null;
+ } else {
+ jsonElement.remove(Constants.ARTIFACT_GROUP_TYPE_FIELD);
+ jsonElement.addProperty(Constants.ARTIFACT_GROUP_TYPE_FIELD, groupValueUpper);
+ }
+ }
+ String payload = null;
+ JsonElement artifactPayload = jsonElement.get(Constants.ARTIFACT_PAYLOAD_DATA);
+ if (artifactPayload != null && !artifactPayload.isJsonNull()) {
+ payload = artifactPayload.getAsString();
+ }
+ jsonElement.remove(Constants.ARTIFACT_PAYLOAD_DATA);
+ String json = gson.toJson(jsonElement);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ mapper.configure(Feature.FAIL_ON_EMPTY_BEANS, false);
+ mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
+
+ resourceInfo = mapper.readValue(json, ArtifactDefinition.class);
+ resourceInfo.setPayloadData(payload);
+
+ } catch (Exception e) {
+ BeEcompErrorManager.getInstance().logBeArtifactInformationInvalidError("Artifact Upload / Update");
+ log.debug("Failed to convert the content {} to object.", content.substring(0, Math.min(50, content.length())), e);
+ }
+
+ return resourceInfo;
}
+
protected HttpGet createGetRequest(String url) {
HttpGet httpGet = new HttpGet(url);
httpGet.addHeader(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
@@ -918,53 +3426,49 @@ public class CRUDExternalAPI extends ComponentBaseTest {
httpGet.addHeader(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
return httpGet;
}
-
+
protected String getArtifactUid(HttpResponse response) throws HttpResponseException, IOException, ParseException {
String responseString = new BasicResponseHandler().handleResponse(response);
JSONObject responseMap = (JSONObject) jsonParser.parse(responseString);
String artifactId = (String) responseMap.get("uniqueId");
return artifactId;
}
-
+
protected String getArtifactEsId(HttpResponse response) throws HttpResponseException, IOException, ParseException {
String responseString = new BasicResponseHandler().handleResponse(response);
JSONObject responseMap = (JSONObject) jsonParser.parse(responseString);
String esId = (String) responseMap.get("EsId");
return esId;
}
-
- protected ArtifactDefinition addArtifactDataFromResponse(HttpResponse response, ArtifactDefinition artifact)
- throws HttpResponseException, IOException, ParseException {
- // String responseString = new
- // BasicResponseHandler().handleResponse(response);
+
+ protected ArtifactDefinition addArtifactDataFromResponse(HttpResponse response, ArtifactDefinition artifact) throws HttpResponseException, IOException, ParseException {
+ //String responseString = new BasicResponseHandler().handleResponse(response);
HttpEntity entity = response.getEntity();
- String responseString = EntityUtils.toString(entity);
+ String responseString = EntityUtils.toString(entity);
JSONObject responseMap = (JSONObject) jsonParser.parse(responseString);
- artifact.setEsId((String) responseMap.get("esId"));
+ artifact.setEsId((String)responseMap.get("esId"));
artifact.setUniqueId((String) responseMap.get("uniqueId"));
artifact.setArtifactGroupType(ArtifactGroupTypeEnum.findType((String) responseMap.get("artifactGroupType")));
artifact.setTimeout(((Long) responseMap.get("timeout")).intValue());
return artifact;
}
-
- protected String getLifecycleArtifactUid(CloseableHttpResponse response)
- throws HttpResponseException, IOException, ParseException {
+
+ protected String getLifecycleArtifactUid(CloseableHttpResponse response) throws HttpResponseException, IOException, ParseException {
String responseString = new BasicResponseHandler().handleResponse(response);
JSONObject responseMap = (JSONObject) jsonParser.parse(responseString);
responseMap = (JSONObject) responseMap.get("implementation");
String artifactId = (String) responseMap.get("uniqueId");
return artifactId;
}
-
+
protected HttpDelete createDeleteArtifactRequest(String url) {
HttpDelete httpDelete = new HttpDelete(url);
httpDelete.addHeader(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
httpDelete.addHeader(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
return httpDelete;
}
-
- protected HttpPost createPostAddArtifactRequeast(String jsonBody, String url, boolean addMd5Header)
- throws UnsupportedEncodingException {
+
+ protected HttpPost createPostAddArtifactRequeast(String jsonBody, String url, boolean addMd5Header) throws UnsupportedEncodingException {
HttpPost httppost = new HttpPost(url);
httppost.addHeader(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
httppost.addHeader(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
@@ -975,10 +3479,10 @@ public class CRUDExternalAPI extends ComponentBaseTest {
StringEntity input = new StringEntity(jsonBody);
input.setContentType("application/json");
httppost.setEntity(input);
- log.debug("Executing request {}", httppost.getRequestLine());
+ log.debug("Executing request {}" , httppost.getRequestLine());
return httppost;
}
-
+
protected String createLoadArtifactBody() {
Map<String, Object> json = new HashMap<String, Object>();
json.put("artifactName", "install_apache2.sh");
@@ -986,21 +3490,20 @@ public class CRUDExternalAPI extends ComponentBaseTest {
json.put("description", "ddd");
json.put("payloadData", "UEsDBAoAAAAIAAeLb0bDQz");
json.put("artifactLabel", "name123");
-
+
String jsonStr = gson.toJson(json);
return jsonStr;
}
-
+
protected void checkDeleteResponse(RestResponse response) {
BaseRestUtils.checkStatusCode(response, "delete request failed", false, 204, 404);
}
-
+
protected ArtifactUiDownloadData getArtifactUiDownloadData(String artifactUiDownloadDataStr) throws Exception {
-
+
ObjectMapper mapper = new ObjectMapper();
try {
- ArtifactUiDownloadData artifactUiDownloadData = mapper.readValue(artifactUiDownloadDataStr,
- ArtifactUiDownloadData.class);
+ ArtifactUiDownloadData artifactUiDownloadData = mapper.readValue(artifactUiDownloadDataStr, ArtifactUiDownloadData.class);
return artifactUiDownloadData;
} catch (Exception e) {
e.printStackTrace();
@@ -1008,4 +3511,5 @@ public class CRUDExternalAPI extends ComponentBaseTest {
return null;
}
+
}