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 static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
\r 
  24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
\r 
  25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
\r 
  26 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
\r 
  27 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
\r 
  28 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;
\r 
  30 import java.io.IOException;
\r 
  31 import java.util.HashMap;
\r 
  32 import java.util.Map;
\r 
  33 import java.util.UUID;
\r 
  35 import org.camunda.bpm.engine.test.Deployment;
\r 
  36 import org.junit.Ignore;
\r 
  37 import org.junit.Test;
\r 
  38 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r 
  39 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
\r 
  40 import org.openecomp.mso.bpmn.mock.FileUtil;
\r 
  43  * Unit test cases for UpdateVfModule.bpmn
\r 
  45 public class UpdateVfModuleInfraTest extends WorkflowTest {
\r 
  47         private final CallbackSet callbacks = new CallbackSet();
\r 
  49         public UpdateVfModuleInfraTest() throws IOException {
\r 
  50                 callbacks.put("changeassign", FileUtil.readResourceFile(
\r 
  51                         "__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));
\r 
  52                 callbacks.put("query", FileUtil.readResourceFile(
\r 
  53                         "__files/VfModularity/SDNCTopologyQueryCallback.xml"));
\r 
  54                 callbacks.put("activate", FileUtil.readResourceFile(
\r 
  55                         "__files/VfModularity/SDNCTopologyActivateCallback.xml"));
\r 
  56                 callbacks.put("vnfUpdate", FileUtil.readResourceFile(
\r 
  57                         "__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));
\r 
  61          * Sunny day scenario.
\r 
  67         @Deployment(resources = {
\r 
  68                 "process/UpdateVfModuleInfra.bpmn",
\r 
  69                 "subprocess/DoUpdateVfModule.bpmn",
\r 
  70                 "subprocess/PrepareUpdateAAIVfModule.bpmn",
\r 
  71                 "subprocess/ConfirmVolumeGroupTenant.bpmn",
\r 
  72                 "subprocess/SDNCAdapterV1.bpmn",
\r 
  73                 "subprocess/VnfAdapterRestV1.bpmn",
\r 
  74                 "subprocess/UpdateAAIGenericVnf.bpmn",
\r 
  75                 "subprocess/UpdateAAIVfModule.bpmn",
\r 
  76                 "subprocess/CompleteMsoProcess.bpmn",
\r 
  77                 "subprocess/FalloutHandler.bpmn"
\r 
  79         public void sunnyDay() throws Exception {
\r 
  83                 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
\r 
  84                 MockPutVfModuleIdNoResponse("skask", "PCRF", "supercool");
\r 
  85                 MockGetGenericVnfByIdWithPriority("skask", "supercool", 200, "VfModularity/VfModule-supercool.xml", 1);
\r 
  86                 mockSDNCAdapter("/SDNCAdapter", "SvcInstanceId><", 200, "VfModularity/StandardSDNCSynchResponse.xml");
\r 
  87                 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
\r 
  88                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
\r 
  89                 mockVNFPut("skask", "/supercool", 202);
\r 
  90                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r 
  92                 String businessKey = UUID.randomUUID().toString();
\r 
  93                 String updaetVfModuleRequest =
\r 
  94                         FileUtil.readResourceFile("__files/InfrastructureFlows/UpdateVfModule_VID_request.json");
\r 
  96                 Map<String, Object> variables = setupVariablesSunnyDayVID();
\r 
  99                 TestAsyncResponse asyncResponse = invokeAsyncProcess("UpdateVfModuleInfra",
\r 
 100                         "v1", businessKey, updaetVfModuleRequest, variables);
\r 
 102                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
\r 
 104                 String responseBody = response.getResponse();
\r 
 105                 System.out.println("Workflow (Synch) Response:\n" + responseBody);
\r 
 107                 injectSDNCCallbacks(callbacks, "changeassign, query");
\r 
 108                 injectVNFRestCallbacks(callbacks, "vnfUpdate");
\r 
 109                 injectSDNCCallbacks(callbacks, "activate");
\r 
 111                 // TODO add appropriate assertions
\r 
 113                 waitForProcessEnd(businessKey, 10000);
\r 
 114                 checkVariable(businessKey, "UpdateVfModuleInfraSuccessIndicator", true);
\r 
 120         private Map<String, Object> setupVariablesSunnyDayVID() {
\r 
 121                                 Map<String, Object> variables = new HashMap<String, Object>();
\r 
 123                                 //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
\r 
 125                                 //catch (Exception e) {
\r 
 128                                 //variables.put("mso-request-id", "testRequestId");
\r 
 129                                 variables.put("requestId", "testRequestId");            
\r 
 130                                 variables.put("isBaseVfModule", false);
\r 
 131                                 variables.put("isDebugLogEnabled", "true");
\r 
 132                                 variables.put("recipeTimeout", "0");            
\r 
 133                                 variables.put("requestAction", "UPDATE_VF_MODULE");
\r 
 134                                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
\r 
 135                                 variables.put("vnfId", "skask");
\r 
 136                                 variables.put("vnfType", "vSAMP12");
\r 
 137                                 variables.put("vfModuleId", "supercool");
\r 
 138                                 variables.put("volumeGroupId", "");                     
\r 
 139                                 variables.put("serviceType", "MOG");    
\r 
 140                                 variables.put("vfModuleType", "");                      
\r