+ verifyQueueSizes(ImmutableMap.of(COMPLETED, 3, COMPLETED_WITH_NO_ACTION, 1));
+ }
+
+ @DataProvider
+ public static Object[][] createAndDeleteIntegrationTestDataProvider(Method test) {
+ return new Object[][]{
+ {"create and delete both bad http code", createResponse(400), createResponse(500), null, null, FAILED, 0},
+ {"create and delete success and status is success ", createResponseRandomIds(202), createResponseRandomIds(202),
+ asyncRequestStatusResponseAsRestObject(COMPLETE_STR), asyncRequestStatusResponseAsRestObject(COMPLETE_STR), COMPLETED, 2},
+ {"create and delete success, create status FAILED, delete status COMPLETED", createResponseRandomIds(202), createResponseRandomIds(202),
+ asyncRequestStatusResponseAsRestObject(FAILED_STR), asyncRequestStatusResponseAsRestObject(COMPLETE_STR), COMPLETED_WITH_ERRORS, 2},
+ {"create and delete success, create status FAILED, delete status FAILED", createResponseRandomIds(202), createResponseRandomIds(202),
+ asyncRequestStatusResponseAsRestObject(FAILED_STR), asyncRequestStatusResponseAsRestObject(FAILED_STR), FAILED, 2},
+ {"create success but delete failed and status is success ", createResponseRandomIds(202), createResponseRandomIds(400),
+ asyncRequestStatusResponseAsRestObject(COMPLETE_STR), null, COMPLETED_WITH_ERRORS, 1},
+ {"delete success but create failed and status is success ", createResponseRandomIds(400), createResponseRandomIds(202),
+ null, asyncRequestStatusResponseAsRestObject(COMPLETE_STR), COMPLETED_WITH_ERRORS, 1},
+ {"delete success but create failed and status of delete is FAILED ", createResponseRandomIds(400), createResponseRandomIds(202),
+ null, asyncRequestStatusResponseAsRestObject(FAILED_STR), FAILED, 1}
+ };
+ }
+
+ //this test is going along with AsyncInstantiationALaCarteApiTest.viewEditVnfGroup__verifyStatusAndAudit API test
+ //The API test has only the happy flow scenario, while this test also test additional MSO responses (mostly non happy)
+ @Test(dataProvider="createAndDeleteIntegrationTestDataProvider")
+ public void vnfGropingIntegrationTest(
+ String desc,
+ RestObject<RequestReferencesContainer> createGroupResponse,
+ RestObject<RequestReferencesContainer> deleteGroupResponse,
+ RestObject<AsyncRequestStatus> createStatusResponse,
+ RestObject<AsyncRequestStatus> deleteStatusResponse,
+ JobStatus expectedJobStatus,
+ int getStatusCounter) throws IOException {
+
+ UUID jobUUID = createAndDeleteIntegrationTest("/payload_jsons/VnfGroupCreate1Delete1None1Request.json",
+ "/serviceInstantiation/v7/instanceGroups",
+ createGroupResponse,
+ "/serviceInstantiation/v7/instanceGroups/VNF_GROUP1_INSTANCE_ID",
+ deleteGroupResponse,
+ createStatusResponse,
+ deleteStatusResponse,
+ expectedJobStatus,
+ getStatusCounter);
+
+ ServiceInstantiation bulkForRetry = asyncInstantiationBL.getBulkForRetry(jobUUID);
+ InstanceGroup vnfGroupShouldBeDeleted = bulkForRetry.getVnfGroups().get("groupingservicefortest..ResourceInstanceGroup..0:001");
+ InstanceGroup vnfGroupShouldBeCreated = bulkForRetry.getVnfGroups().get("groupingservicefortest..ResourceInstanceGroup..0");
+
+ if (deleteStatusResponse == null || deleteStatusResponse.get().request.requestStatus.getRequestState().equals(FAILED_STR)) {
+ assertThat(vnfGroupShouldBeDeleted.getAction(), equalTo(Action.Delete));
+ assertErrorForResource(vnfGroupShouldBeDeleted, deleteGroupResponse, deleteStatusResponse);
+ }
+
+ if (createStatusResponse == null || createStatusResponse.get().request.requestStatus.getRequestState().equals(FAILED_STR)) {
+ assertThat(vnfGroupShouldBeCreated.getAction(), equalTo(Action.Create));
+ assertErrorForResource(vnfGroupShouldBeCreated, createGroupResponse, createStatusResponse);
+ }
+ }
+
+ //this test is going along with AsyncInstantiationALaCarteApiTest3.delete1Create1VnfFromService API test
+ //The API test has only the happy flow scenario, while this test also test additional MSO responses (mostly non happy)
+ @Test(dataProvider="createAndDeleteIntegrationTestDataProvider")
+ public void vnfsIntegrationTest(
+ String desc,
+ RestObject<RequestReferencesContainer> createVnfResponse,
+ RestObject<RequestReferencesContainer> deleteVnfResponse,
+ RestObject<AsyncRequestStatus> createStatusResponse,
+ RestObject<AsyncRequestStatus> deleteStatusResponse,
+ JobStatus expectedJobStatus,
+ int getStatusCounter) throws IOException {
+
+ createAndDeleteIntegrationTest("/payload_jsons/vnfDelete1Create1Request.json",
+ "/serviceInstantiation/v7/serviceInstances/f8791436-8d55-4fde-b4d5-72dd2cf13cfb/vnfs",
+ createVnfResponse,
+ "/serviceInstantiation/v7/serviceInstances/f8791436-8d55-4fde-b4d5-72dd2cf13cfb/vnfs/VNF_INSTANCE_ID",
+ deleteVnfResponse,
+ createStatusResponse,
+ deleteStatusResponse,
+ expectedJobStatus,
+ getStatusCounter);
+ }
+
+ @Test(dataProvider="createAndDeleteIntegrationTestDataProvider")
+ public void vfModulesIntegrationTest(
+ String desc,
+ RestObject<RequestReferencesContainer> createVfModuleResponse,
+ RestObject<RequestReferencesContainer> deleteVfModuleResponse,
+ RestObject<AsyncRequestStatus> createStatusResponse,
+ RestObject<AsyncRequestStatus> deleteStatusResponse,
+ JobStatus expectedJobStatus,
+ int getStatusCounter) throws IOException, AsdcCatalogException {
+
+ when(featureManager.isActive(Features.FLAG_ASYNC_ALACARTE_VFMODULE)).thenReturn(true);
+ reset(commandUtils);
+ when(commandUtils.isVfModuleBaseModule("6b528779-44a3-4472-bdff-9cd15ec93450", "f8360508-3f17-4414-a2ed-6bc71161e8db")).thenReturn(true);
+ when(commandUtils.isVfModuleBaseModule("6b528779-44a3-4472-bdff-9cd15ec93450", "25284168-24bb-4698-8cb4-3f509146eca5")).thenReturn(false);
+
+ createAndDeleteIntegrationTest("/payload_jsons/vfModuleDelete1Create1None1Request.json",
+ "/serviceInstantiation/v7/serviceInstances/f8791436-8d55-4fde-b4d5-72dd2cf13cfb/vnfs/VNF_INSTANCE_ID/vfModules",
+ createVfModuleResponse,
+ "/serviceInstantiation/v7/serviceInstances/f8791436-8d55-4fde-b4d5-72dd2cf13cfb/vnfs/VNF_INSTANCE_ID/vfModules/VF_MODULE_INSTANCE_ID",
+ deleteVfModuleResponse,
+ createStatusResponse,
+ deleteStatusResponse,
+ expectedJobStatus,
+ getStatusCounter);
+ }
+
+ //this test is going along with AsyncInstantiationALaCarteApiTest.delete1Create1NetworkFromService API test
+ //The API test has only the happy flow scenario, while this test also test additional MSO responses (mostly non happy)
+ @Test(dataProvider="createAndDeleteIntegrationTestDataProvider")
+ public void networksIntegrationTest(
+ String desc,
+ RestObject<RequestReferencesContainer> createNetworkResponse,
+ RestObject<RequestReferencesContainer> deleteNetworkResponse,
+ RestObject<AsyncRequestStatus> createStatusResponse,
+ RestObject<AsyncRequestStatus> deleteStatusResponse,
+ JobStatus expectedJobStatus,
+ int getStatusCounter) throws IOException {
+
+ createAndDeleteIntegrationTest("/payload_jsons/networkDelete1Create1Request.json",
+ "/serviceInstantiation/v7/serviceInstances/f8791436-8d55-4fde-b4d5-72dd2cf13cfb/networks",
+ createNetworkResponse,
+ "/serviceInstantiation/v7/serviceInstances/f8791436-8d55-4fde-b4d5-72dd2cf13cfb/networks/NETWORK_INSTANCE_ID",
+ deleteNetworkResponse,
+ createStatusResponse,
+ deleteStatusResponse,
+ expectedJobStatus,
+ getStatusCounter);