2  * ============LICENSE_START=======================================================
\r 
   4  * ================================================================================
\r 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
\r 
   6  * ================================================================================
\r 
   7  * Licensed under the Apache License, Version 2.0 (the "License");
\r 
   8  * you may not use this file except in compliance with the License.
\r 
   9  * You may obtain a copy of the License at
\r 
  11  *      http://www.apache.org/licenses/LICENSE-2.0
\r 
  13  * Unless required by applicable law or agreed to in writing, software
\r 
  14  * distributed under the License is distributed on an "AS IS" BASIS,
\r 
  15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r 
  16  * See the License for the specific language governing permissions and
\r 
  17  * limitations under the License.
\r 
  18  * ============LICENSE_END=========================================================
\r 
  21 package org.openecomp.mso.bpmn.infrastructure;
\r 
  23 import java.io.IOException;
\r 
  24 import java.util.HashMap;
\r 
  25 import java.util.Map;
\r 
  26 import java.util.UUID;
\r 
  28 import org.camunda.bpm.engine.test.Deployment;
\r 
  29 import org.junit.Assert;
\r 
  30 import org.junit.Ignore;
\r 
  31 import org.junit.Test;
\r 
  32 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r 
  33 import org.openecomp.mso.bpmn.core.WorkflowException;
\r 
  34 import org.openecomp.mso.bpmn.mock.FileUtil;
\r 
  37 public class DoCreateVfModuleVolumeV2Test extends WorkflowTest {
\r 
  39         public static final String _prefix = "CVFMODVOL2_";
\r 
  41         private final CallbackSet callbacks = new CallbackSet();
\r 
  43         public DoCreateVfModuleVolumeV2Test() throws IOException {
\r 
  44                 callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(
\r 
  45                                 "__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeCallbackResponse.xml"));
\r 
  46                 callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(
\r 
  47                                 "__files/DoCreateVfModuleVolumeV1/RollbackVfModuleVolumeCallbackResponse.xml"));
\r 
  56         @Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",
\r 
  57             "subprocess/FalloutHandler.bpmn",
\r 
  58             "subprocess/CompleteMsoProcess.bpmn",
\r 
  59             "subprocess/vnfAdapterRestV1.bpmn",
\r 
  60             "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})
\r 
  61         public void TestHappyPath() throws Exception {
\r 
  65 //              DoCreateVfModuleVolume_Success();
\r 
  67                 String businessKey = UUID.randomUUID().toString();
\r 
  68                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
\r 
  70                 Map<String, Object> testVariables = new HashMap<String, Object>();
\r 
  71                 testVariables.put("volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
\r 
  72                 testVariables.put("vnfId", "TEST-VNF-ID-0123");
\r 
  73                 testVariables.put("lcpCloudRegionId", "AAIAIC25");
\r 
  74                 testVariables.put("test-volume-group-name", "MSOTESTVOL101a-vSAMP12_base_vol_module-01");
\r 
  75                 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
\r 
  76                 //testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
\r 
  77                 TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);
\r 
  79                 injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
\r 
  81                 waitForProcessEnd(businessKey, 100000);
\r 
  82                 checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", true);
\r 
  89         @Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",
\r 
  90             "subprocess/FalloutHandler.bpmn",
\r 
  91             "subprocess/CompleteMsoProcess.bpmn",
\r 
  92             "subprocess/vnfAdapterRestV1.bpmn",
\r 
  93             "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})
\r 
  94         public void TestVolumeGroupExistError() throws Exception {
\r 
  98 //              DoCreateVfModuleVolume_VolumeGroupExistsFail();
\r 
 100                 String businessKey = UUID.randomUUID().toString();
\r 
 101                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
\r 
 103                 Map<String, Object> testVariables = new HashMap<String, Object>();
\r 
 104                 testVariables.put("DCVFMODVOLV2_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
\r 
 105                 testVariables.put("vnf-id", "TEST-VNF-ID-0123");
\r 
 106                 testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
\r 
 107                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
\r 
 108                 testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
\r 
 109                 TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);
\r 
 111                 //injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
\r 
 113                 waitForProcessEnd(businessKey, 100000);
\r 
 114                 WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "SavedWorkflowException1");
\r 
 115                 Assert.assertTrue(wfe.getErrorCode() == 2500);
\r 
 116                 Assert.assertTrue(wfe.getErrorMessage().startsWith("Generic vnf null was not found in AAI. Return code: 404."));
\r 
 117                 checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", false);
\r 
 123          * Will trigger AAI create rollback
\r 
 124          * @throws Exception
\r 
 128         @Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",
\r 
 129             "subprocess/FalloutHandler.bpmn",
\r 
 130             "subprocess/CompleteMsoProcess.bpmn",
\r 
 131             "subprocess/vnfAdapterRestV1.bpmn",
\r 
 132             "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})
\r 
 133         public void TestVnfVolumeGroupCreateError() throws Exception {
\r 
 137 //              DoCreateVfModuleVolume_VnfCreateVolumeGroupFail();
\r 
 139                 String businessKey = UUID.randomUUID().toString();
\r 
 140                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
\r 
 142                 Map<String, Object> testVariables = new HashMap<String, Object>();
\r 
 143                 testVariables.put("DCVFMODVOLV2_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
\r 
 144                 testVariables.put("vnf-id", "TEST-VNF-ID-0123");
\r 
 145                 testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
\r 
 146                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
\r 
 147                 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
\r 
 148                 testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
\r 
 149                 TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);
\r 
 151                 //injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
\r 
 153                 waitForProcessEnd(businessKey, 100000);
\r 
 154                 checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", false);
\r 
 160          * Will trigger AAI create rollback
\r 
 161          * @throws Exception
\r 
 165         @Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",
\r 
 166             "subprocess/FalloutHandler.bpmn",
\r 
 167             "subprocess/CompleteMsoProcess.bpmn",
\r 
 168             "subprocess/vnfAdapterRestV1.bpmn",
\r 
 169             "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})
\r 
 170         public void TestUpdateAaiVolumeGroupError() throws Exception {
\r 
 174 //              DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail();
\r 
 176                 String businessKey = UUID.randomUUID().toString();
\r 
 177                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
\r 
 179                 Map<String, Object> testVariables = new HashMap<String, Object>();
\r 
 180                 testVariables.put("DCVFMODVOLV2_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
\r 
 181                 testVariables.put("vnf-id", "TEST-VNF-ID-0123");
\r 
 182                 testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
\r 
 183                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
\r 
 184                 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
\r 
 185                 testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
\r 
 186                 TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);
\r 
 188                 // VNF callback not needed fort this failure scenario
\r 
 189 //              injectVNFRestCallbacks(callbacks, "volumeGroupCreate,volumeGroupRollback");
\r 
 191                 waitForProcessEnd(businessKey, 100000);
\r 
 192                 WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "SavedWorkflowException1");
\r 
 193                 Assert.assertTrue(wfe.getErrorCode() == 2500);
\r 
 194                 Assert.assertTrue(wfe.getErrorMessage().startsWith("Generic vnf null was not found in AAI. Return code: 404."));
\r 
 195                 checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", false);
\r 
 201          * Will trigger not trigger rollback
\r 
 202          * @throws Exception
\r 
 206         @Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV2.bpmn",
\r 
 207             "subprocess/FalloutHandler.bpmn",
\r 
 208             "subprocess/CompleteMsoProcess.bpmn",
\r 
 209             "subprocess/vnfAdapterRestV1.bpmn",
\r 
 210             "subprocess/DoCreateVfModuleVolumeRollback.bpmn"})
\r 
 211         public void TestUpdateAaiVolumeGroupErrorNoRollback() throws Exception {
\r 
 215 //              DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail();
\r 
 217                 String businessKey = UUID.randomUUID().toString();
\r 
 218                 String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeNoRollbackRequest.xml");
\r 
 220                 Map<String, Object> testVariables = new HashMap<String, Object>();
\r 
 221                 testVariables.put("DCVFMODVOLV2_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
\r 
 222                 testVariables.put("vnf-id", "TEST-VNF-ID-0123");
\r 
 223                 testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
\r 
 224                 testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
\r 
 225                 testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
\r 
 226                 testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
\r 
 227                 TestAsyncResponse asyncResponse = invokeAsyncProcess("DoCreateVfModuleVolumeV2", "v1", businessKey, createVfModuleVolRequest, testVariables);
\r 
 229                 // VNF callback not needed fort this failure scenario
\r 
 230 //              injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
\r 
 232                 waitForProcessEnd(businessKey, 100000);
\r 
 233                 WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "SavedWorkflowException1");
\r 
 234                 Assert.assertTrue(wfe.getErrorCode() == 2500);
\r 
 235                 Assert.assertTrue(wfe.getErrorMessage().startsWith("Generic vnf null was not found in AAI. Return code: 404."));
\r 
 236                 checkVariable(businessKey, "DCVFMODVOLV2_SuccessIndicator", false);
\r