mannul NS scale unit test 23/39623/1
authorguanwenyao <guanwenyao@chinamobile.com>
Wed, 28 Mar 2018 11:20:28 +0000 (19:20 +0800)
committerguanwenyao <guanwenyao@chinamobile.com>
Wed, 28 Mar 2018 11:20:39 +0000 (19:20 +0800)
Issue-ID: SO-423

Change-Id: I28d462cba73feb56b90d9d15619149d809fe1780
Signed-off-by: guanwenyao <guanwenyao@chinamobile.com>
bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoScaleE2EServiceInstanceTest.groovy [new file with mode: 0644]
bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/ScaleCustomE2EServiceInstanceTest.groovy [new file with mode: 0644]
bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DoScaleE2EServiceInstance.json [new file with mode: 0644]

diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoScaleE2EServiceInstanceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoScaleE2EServiceInstanceTest.groovy
new file mode 100644 (file)
index 0000000..2dc3157
--- /dev/null
@@ -0,0 +1,110 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 CMCC All rights reserved. *
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.openecomp.mso.bpmn.infrastructure.scripts
+
+import com.github.tomakehurst.wiremock.junit.WireMockRule
+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
+import org.junit.Before
+import org.junit.BeforeClass
+import org.junit.Rule
+import org.junit.Test
+import org.mockito.MockitoAnnotations
+import org.openecomp.mso.bpmn.mock.FileUtil
+import org.openecomp.mso.bpmn.vcpe.scripts.GroovyTestBase
+
+import static org.mockito.Mockito.verify
+import static org.mockito.Mockito.when
+
+class DoScaleE2EServiceInstanceTest extends GroovyTestBase {
+
+    private static String request
+
+    @Rule
+    public WireMockRule wireMockRule = new WireMockRule(GroovyTestBase.PORT)
+
+    String Prefix = "CVRCS_"
+
+    @BeforeClass
+    public static void setUpBeforeClass() {
+        request = FileUtil.readResourceFile("__files/InfrastructureFlows/DoScaleE2EServiceInstance.json")
+    }
+
+    @Before
+    public void init()
+    {
+        MockitoAnnotations.initMocks(this)
+    }
+    public DoScaleE2EServiceInstanceTest(){
+        super("DoScaleE2EServiceInstance")
+    }
+
+    @Test
+    public void preProcessRequestTest(){
+
+        ExecutionEntity mex = setupMock()
+        def map = setupMap(mex)
+        initPreProcess(mex)
+
+        DoScaleE2EServiceInstance instance = new DoScaleE2EServiceInstance()
+        instance.preProcessRequest(mex)
+        verify(mex).setVariable("resourceTemplateUUIDs", "ns111:ns333:")
+    }
+
+    @Test
+    public void preInitResourcesOperStatusTest(){
+        ExecutionEntity mex = setupMock()
+        def map = setupMap(mex)
+        initPreProcess(mex)
+        DoScaleE2EServiceInstance instance = new DoScaleE2EServiceInstance()
+        instance.preInitResourcesOperStatus(mex)
+
+        verify(mex).setVariable("serviceInstanceId","e151059a-d924-4629-845f-264db19e50b4")
+        verify(mex).setVariable("operationId", "59960003992")
+        verify(mex).setVariable("operationType", "SCALE")
+        verify(mex).setVariable("URN_mso_openecomp_adapters_db_endpoint","http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter")
+
+        String payload =
+                """<soapenv:Envelope xmlns:ns="http://org.openecomp.mso/requestsdb"
+                  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+   <soapenv:Header/>
+   <soapenv:Body>
+      <ns:initResourceOperationStatus>
+         <serviceId>e151059a-d924-4629-845f-264db19e50b4</serviceId>
+         <operationId>59960003992</operationId>
+         <operationType>SCALE</operationType>
+         <resourceTemplateUUIDs>ns111:ns333:</resourceTemplateUUIDs>
+      </ns:initResourceOperationStatus>
+   </soapenv:Body>
+</soapenv:Envelope>"""
+        verify(mex).setVariable("CVFMI_initResOperStatusRequest", payload)
+    }
+
+    private void initPreProcess(ExecutionEntity mex) {
+        when(mex.getVariable(GroovyTestBase.DBGFLAG)).thenReturn("true")
+        when(mex.getVariable("bpmnRequest")).thenReturn(request)
+        when(mex.getVariable("msoRequestId")).thenReturn("mri")
+        when(mex.getVariable("serviceType")).thenReturn("VoLTE")
+        when(mex.getVariable("serviceInstanceId")).thenReturn("e151059a-d924-4629-845f-264db19e50b4")
+        when(mex.getVariable("serviceInstanceName")).thenReturn("ra")
+        when(mex.getVariable("operationId")).thenReturn("59960003992")
+        when(mex.getVariable("globalSubscriberId")).thenReturn("4993921112123")
+        when(mex.getVariable("resourceTemplateUUIDs")).thenReturn("ns111:ns333:")
+    }
+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/ScaleCustomE2EServiceInstanceTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/ScaleCustomE2EServiceInstanceTest.groovy
new file mode 100644 (file)
index 0000000..e7ffe05
--- /dev/null
@@ -0,0 +1,176 @@
+package org.openecomp.mso.bpmn.infrastructure.scripts
+
+import static org.mockito.Mockito.*
+
+import org.apache.commons.lang3.*
+import org.camunda.bpm.engine.ProcessEngineServices
+import org.camunda.bpm.engine.RepositoryService
+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
+import org.camunda.bpm.engine.repository.ProcessDefinition
+import org.camunda.bpm.engine.runtime.Execution
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.MockitoAnnotations
+import org.mockito.runners.MockitoJUnitRunner
+import org.openecomp.mso.bpmn.common.scripts.MsoUtils
+import org.openecomp.mso.bpmn.core.WorkflowException
+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil
+
+
+import com.github.tomakehurst.wiremock.junit.WireMockRule
+
+@RunWith(MockitoJUnitRunner.class)
+class SacleCustomE2EServiceInstanceTest{
+    @Rule
+    public WireMockRule wireMockRule = new WireMockRule(8090);
+
+    String Prefix="CRESI_"
+    ExceptionUtil exceptionUtil = new ExceptionUtil()
+    String globalSubscriberId="test_custormer"
+    String requestDescription = "request description for test"
+    def utils = new MsoUtils()
+
+    String jsonIncomingRequest = """{"service":{
+                                        "serviceType":"example-service-type",
+                                        "globalSubscriberId":"test_custormer",
+                                        "resources":[
+                                            {
+                                                "resourceInstanceId":"ns111",
+                                                "scaleType":"SCALE_NS",
+                                                "scaleNsData":{
+                                                    "scaleNsByStepsData":{
+                                                        "numberOfSteps":"4",
+                                                        "aspectId":"TIC_EDGE_HW",
+                                                        "scalingDirection":"UP"
+                                                        }
+                                                }
+                                            },
+                                            {
+                                                "resourceInstanceId":"ns333",
+                                                "scaleType":"SCALE_NS",
+                                                "scaleNsData":{
+                                                    "scaleNsByStepsData":{
+                                                        "numberOfSteps":"4",
+                                                        "aspectId":"TIC_EDGE_HW",
+                                                        "scalingDirection":"UP"
+                                                    }
+                                                }
+                                            }],
+                                        "serviceInstanceName":"XXXX"
+                                     },
+                                     "operationId":"0a5b1651-c56e-4263-8c26-c8f8a6ef72d8"
+                                   }"""
+
+    String xmlMsoCompletionRequest = """<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+                            xmlns:ns="http://org.openecomp/mso/request/types/v1"
+                            xmlns:w1aaan0="http://org.openecomp/mso/infra/vnf-request/v1">
+   <w1aaan0:request-info>
+      <w1aaan0:request-id>56c881ad-6c9d-4b79-aacc-401e5640b47f</w1aaan0:request-id>
+      <w1aaan0:action>SCALE</w1aaan0:action>
+      <w1aaan0:source>null</w1aaan0:source>
+   </w1aaan0:request-info>
+   <status-message>Service Instance was scaled successfully.</status-message>
+   <serviceInstanceId>56c881ad-6c9d-4b79-aacc-401e5640b47f</serviceInstanceId>
+   <mso-bpel-name>ScaleGenericALaCarteServiceInstance</mso-bpel-name>
+</aetgt:MsoCompletionRequest>"""
+
+    String requestInfo = """<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+                                       <request-id>56c881ad-6c9d-4b79-aacc-401e5640b47f</request-id>
+                                       <action>SCALE</action>
+                                       <source>null</source>
+                                  </request-info>"""
+
+    String payload ="""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+                        xmlns:ns="http://org.openecomp.mso/requestsdb">
+                        <soapenv:Header/>
+                        <soapenv:Body>
+                            <ns:updateServiceOperationStatus xmlns:ns="http://org.openecomp.mso/requestsdb">
+                            <serviceId>56c881ad-6c9d-4b79-aacc-401e5640b47f</serviceId>
+                            <operationId>0a5b1651-c56e-4263-8c26-c8f8a6ef72d8</operationId>
+                            <serviceName>XXXX</serviceName>
+                            <operationType>SCALE</operationType>
+                            <userId></userId>
+                            <result>processing</result>
+                            <operationContent>Prepare service scaling</operationContent>
+                            <progress>0</progress>
+                            <reason></reason>
+                        </ns:updateServiceOperationStatus>
+                    </soapenv:Body>
+                </soapenv:Envelope>"""
+
+    @Before
+    public void init()
+    {
+        MockitoAnnotations.initMocks(this)
+    }
+
+    @Test
+    public void preProcessRequestTest() {
+        println "************ preProcessRequest_Payload ************* "
+        ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+
+        // Initialize prerequisite variables
+        when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+        when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)
+
+        when(mockExecution.getVariable("mso-request-id")).thenReturn("56c881ad-6c9d-4b79-aacc-401e5640b47f")
+        when(mockExecution.getVariable("serviceInstanceId")).thenReturn("56c881ad-6c9d-4b79-aacc-401e5640b47f")
+
+        ScaleCustomE2EServiceInstance scaleCustomE2EServiceInstance = new ScaleCustomE2EServiceInstance()
+        scaleCustomE2EServiceInstance.preProcessRequest(mockExecution)
+
+        verify(mockExecution).setVariable("globalSubscriberId", globalSubscriberId)
+        verify(mockExecution).setVariable("prefix", Prefix)
+        verify(mockExecution).setVariable("requestDescription", requestDescription)
+    }
+
+    @Test
+    public void sendSyncResponseTest() {
+        println "************ sendSyncResponse ************* "
+        ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+
+        when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+        when(mockExecution.getVariable("operationId")).thenReturn("3338b250-e995-4782-8936-081b66ba4dbf")
+        when(mockExecution.getVariable("serviceInstanceId")).thenReturn("56c881ad-6c9d-4b79-aacc-401e5640b47f")
+
+        ScaleCustomE2EServiceInstance scaleCustomE2EServiceInstance = new ScaleCustomE2EServiceInstance()
+        scaleCustomE2EServiceInstance.sendSyncResponse(mockExecution)
+
+        verify(mockExecution).setVariable("sentSyncResponse", true)
+    }
+
+    @Test
+    public void prepareCompletionRequestTest() {
+        println "************ prepareCompletionRequest ************* "
+        ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+
+        when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+        when(mockExecution.getVariable("msoRequestId")).thenReturn("56c881ad-6c9d-4b79-aacc-401e5640b47f")
+        when(mockExecution.getVariable("serviceInstanceId")).thenReturn("56c881ad-6c9d-4b79-aacc-401e5640b47f")
+
+        ScaleCustomE2EServiceInstance scaleCustomE2EServiceInstance = new ScaleCustomE2EServiceInstance()
+        scaleCustomE2EServiceInstance.prepareCompletionRequest(mockExecution)
+
+        verify(mockExecution).setVariable("CompleteMsoProcessRequest", xmlMsoCompletionRequest)
+
+    }
+
+    @Test
+    public void prepareInitServiceOperationStatusTest() {
+        println "************ prepareInitServiceOperationStatus ************* "
+        ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+
+        when(mockExecution.getVariable("serviceInstanceId")).thenReturn("56c881ad-6c9d-4b79-aacc-401e5640b47f")
+        when(mockExecution.getVariable("serviceInstanceName")).thenReturn("XXXX")
+        when(mockExecution.getVariable("operationId")).thenReturn("0a5b1651-c56e-4263-8c26-c8f8a6ef72d8")
+
+        ScaleCustomE2EServiceInstance scaleCustomE2EServiceInstance = new ScaleCustomE2EServiceInstance()
+        scaleCustomE2EServiceInstance.prepareInitServiceOperationStatus(mockExecution)
+
+        payload = utils.formatXml(payload)
+        verify(mockExecution).setVariable("CVFMI_updateServiceOperStatusRequest", payload)
+    }
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DoScaleE2EServiceInstance.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DoScaleE2EServiceInstance.json
new file mode 100644 (file)
index 0000000..dd3ff68
--- /dev/null
@@ -0,0 +1,38 @@
+{
+  "service":
+  {
+    "serviceType":"example-service-type",
+    "globalSubscriberId":"test_custormer",
+    "resources":
+    [
+      {
+        "resourceInstanceId":"ns111",
+        "scaleType":"SCALE_NS",
+        "scaleNsData":
+        {
+          "scaleNsByStepsData":
+          {
+            "numberOfSteps":"4",
+            "aspectId":"TIC_EDGE_HW",
+            "scalingDirection":"UP"
+          }
+        }
+      },
+      {
+        "resourceInstanceId":"ns333",
+        "scaleType":"SCALE_NS",
+        "scaleNsData":
+        {
+          "scaleNsByStepsData":
+          {
+            "numberOfSteps":"4",
+            "aspectId":"TIC_EDGE_HW",
+            "scalingDirection":"UP"
+          }
+        }
+      }
+    ],
+    "serviceInstanceName":"service1"
+  },
+  "operationId":"15c01683-4f15-45e7-b213-dcbfe6f42a1b"
+  }
\ No newline at end of file