Springboot 2.0 upgrade
[so.git] / bpmn / so-bpmn-infrastructure-common / src / test / groovy / org / onap / so / bpmn / infrastructure / scripts / UpdateVfModuleVolumeInfraV1Test.groovy
index 620b0b7..06ae576 100644 (file)
 
 package org.onap.so.bpmn.infrastructure.scripts
 
-import com.github.tomakehurst.wiremock.junit.WireMockRule
-import org.camunda.bpm.engine.ProcessEngineServices
-import org.camunda.bpm.engine.RepositoryService
+
+import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
-import org.camunda.bpm.engine.repository.ProcessDefinition
 import org.junit.Assert
 import org.junit.Before
-import org.junit.Ignore
 import org.junit.Rule
 import org.junit.Test
+import org.junit.rules.ExpectedException
 import org.junit.runner.RunWith
 import org.mockito.ArgumentCaptor
 import org.mockito.Captor
-import org.mockito.Mockito
 import org.mockito.MockitoAnnotations
 import org.mockito.runners.MockitoJUnitRunner
-import org.onap.so.bpmn.common.scripts.utils.XmlComparator
-import org.onap.so.bpmn.core.WorkflowException
+import org.onap.aai.domain.yang.GenericVnf
+import org.onap.aai.domain.yang.VfModule
+import org.onap.aai.domain.yang.VolumeGroup
+import org.onap.so.bpmn.common.scripts.MsoGroovyTest
 import org.onap.so.bpmn.mock.FileUtil
+import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.entities.AAIResultWrapper
+import org.onap.so.client.aai.entities.uri.AAIResourceUri
+import org.onap.so.client.aai.entities.uri.AAIUriFactory
+import org.onap.so.constants.Defaults
+
+import javax.ws.rs.core.UriBuilder
 
-import static com.github.tomakehurst.wiremock.client.WireMock.*
 import static org.mockito.Mockito.*
 
 @RunWith(MockitoJUnitRunner.class)
-class UpdateVfModuleVolumeInfraV1Test {
+class UpdateVfModuleVolumeInfraV1Test extends MsoGroovyTest{
        
     def prefix = "UPDVfModVol_"
     @Captor
     static ArgumentCaptor<ExecutionEntity> captor = ArgumentCaptor.forClass(ExecutionEntity.class)
+
+    @Rule
+    public ExpectedException thrown = ExpectedException.none()
        
-       @Rule
-       public WireMockRule wireMockRule = new WireMockRule(28090);
-       
+
        @Before
-       public void init()
-       {
+       public void init(){
+        super.init("UpdateVfModuleVolumeInfraV1")
                MockitoAnnotations.initMocks(this)
     }
                
@@ -69,66 +75,95 @@ class UpdateVfModuleVolumeInfraV1Test {
         when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
         when(mockExecution.getVariable("aai.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
 
-        mockData()
-        UpdateVfModuleVolumeInfraV1 obj = new UpdateVfModuleVolumeInfraV1()
+        UpdateVfModuleVolumeInfraV1 obj = spy(UpdateVfModuleVolumeInfraV1.class)
+        when(obj.getAAIClient()).thenReturn(client)
+        AAIResourceUri uri = AAIUriFactory.createResourceFromExistingURI(AAIObjectType.VF_MODULE, UriBuilder.fromPath("/aai/v8/network/generic-vnfs/generic-vnf/12345/vf-modules/vf-module/12345").build())
+        VfModule vfModule = new VfModule();
+        vfModule.setVfModuleId("12345")
+        vfModule.setModelInvariantId("ff5256d2-5a33-55df-13ab-12abad84e7ff")
+        when(client.get(VfModule.class,uri)).thenReturn(Optional.of(vfModule))
         obj.queryAAIForVfModule(mockExecution, "true")
 
-        Mockito.verify(mockExecution, atLeastOnce()).setVariable("UPDVfModVol_personaModelId", "ff5256d2-5a33-55df-13ab-12abad84e7ff")
+        verify(mockExecution, atLeastOnce()).setVariable("UPDVfModVol_personaModelId", "ff5256d2-5a33-55df-13ab-12abad84e7ff")
+    }
+
+    @Test
+    void testQueryAAIForVolumeGroup() {
+        String aicCloudRegion = "aicCloudRegionId"
+        String volumeGroupId = "volumeGroupId"
+        when(mockExecution.getVariable("UPDVfModVol_volumeGroupId")).thenReturn(volumeGroupId)
+        when(mockExecution.getVariable("UPDVfModVol_aicCloudRegion")).thenReturn(aicCloudRegion)
+
+        UpdateVfModuleVolumeInfraV1 obj = spy(UpdateVfModuleVolumeInfraV1.class)
+        when(obj.getAAIClient()).thenReturn(client)
+        AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VOLUME_GROUP, Defaults.CLOUD_OWNER.toString(), aicCloudRegion, volumeGroupId)
+        VolumeGroup volumeGroup = new VolumeGroup();
+        volumeGroup.setVolumeGroupId(volumeGroupId)
+
+        AAIResultWrapper wrapper = new AAIResultWrapper(FileUtil.readResourceFile("__files/aai/VolumeGroupWithTenant.json"))
+        when(client.get(uri)).thenReturn(wrapper)
+        thrown.expect(BpmnError.class)
+        obj.queryAAIForVolumeGroup(mockExecution, "true")
     }
 
-      @Test
+    @Test
+    void testQueryAAIForGenericVnf() {
+        String vnfId = "vnfId"
+        when(mockExecution.getVariable("vnfId")).thenReturn(vnfId)
+
+        UpdateVfModuleVolumeInfraV1 obj = spy(UpdateVfModuleVolumeInfraV1.class)
+        when(obj.getAAIClient()).thenReturn(client)
+
+        AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+        GenericVnf genericVnf = new GenericVnf()
+        genericVnf.setVnfId(vnfId)
+        genericVnf.setVnfName("testvnfName")
+        when(client.get(GenericVnf.class,uri)).thenReturn(Optional.of(genericVnf))
+        obj.queryAAIForGenericVnf(mockExecution, "true")
+        verify(mockExecution).setVariable("UPDVfModVol_AAIQueryGenericVfnResponse", genericVnf)
+    }
+
+    @Test
+    void testQueryAAIForGenericVnfNodata() {
+        String vnfId = "vnfId"
+        when(mockExecution.getVariable("vnfId")).thenReturn(vnfId)
+
+        UpdateVfModuleVolumeInfraV1 obj = spy(UpdateVfModuleVolumeInfraV1.class)
+        when(obj.getAAIClient()).thenReturn(client)
+
+        AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
+        when(client.get(GenericVnf.class,uri)).thenReturn(Optional.empty())
+        thrown.expect(BpmnError.class)
+        obj.queryAAIForGenericVnf(mockExecution, "true")
+        verify(mockExecution).setVariable("UPDVfModVol_AAIQueryGenericVfnResponse", genericVnf)
+    }
+
+    @Test
     void testPrepVnfAdapterRest() {
-        ExecutionEntity mockExecution = setupMock()
         when(mockExecution.getVariable("prefix")).thenReturn(prefix)
         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
         when(mockExecution.getVariable(prefix + "aicCloudRegion")).thenReturn("RDM2WAGPLCP")
         when(mockExecution.getVariable(prefix + "tenantId")).thenReturn("")
-        when(mockExecution.getVariable(prefix + "aaiVolumeGroupResponse")).thenReturn(FileUtil.readResourceFile("__files/UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml"))
+        VolumeGroup volumeGroup = new VolumeGroup();
+        volumeGroup.setHeatStackId("heatStackId")
+        when(mockExecution.getVariable(prefix + "aaiVolumeGroupResponse")).thenReturn(volumeGroup)
         when(mockExecution.getVariable(prefix + "vnfType")).thenReturn("vnf1")
         when(mockExecution.getVariable(prefix + "vnfVersion")).thenReturn("1")
-        when(mockExecution.getVariable(prefix + "AAIQueryGenericVfnResponse")).thenReturn(FileUtil.readResourceFile("__files/GenericFlows/getGenericVnfByNameResponse.xml"))
+        GenericVnf genericVnf = new GenericVnf()
+        genericVnf.setVnfId("vnfId")
+        genericVnf.setVnfName("testvnfName")
+        when(mockExecution.getVariable(prefix + "AAIQueryGenericVfnResponse")).thenReturn(genericVnf)
         when(mockExecution.getVariable(prefix + "requestId")).thenReturn("12345")
         when(mockExecution.getVariable(prefix + "serviceId")).thenReturn("12345")
         when(mockExecution.getVariable("mso-request-id")).thenReturn("12345")
         when(mockExecution.getVariable("mso.workflow.message.endpoint")).thenReturn('http://localhost:28080/mso/WorkflowMessage')
         when(mockExecution.getVariable("mso.use.qualified.host")).thenReturn("true")
 
-        mockData()
         UpdateVfModuleVolumeInfraV1 obj = new UpdateVfModuleVolumeInfraV1()
         obj.prepVnfAdapterRest(mockExecution, "true")
 
-        Mockito.verify(mockExecution, times(1)).setVariable(captor.capture(), captor.capture())
-        def updateVolumeGroupRequest = captor.getValue()
-        String expectedValue = FileUtil.readResourceFile("__files/UpdateVfModuleVolumeInfraV1/updateVolumeGroupRequest.xml")
-        XmlComparator.assertXMLEquals(expectedValue, updateVolumeGroupRequest, "messageId", "notificationUrl")
-    }
-
-
-    private static ExecutionEntity setupMock() {
-        ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)
-        when(mockProcessDefinition.getKey()).thenReturn("UpdateVfModuleVolumeInfraV1")
-        RepositoryService mockRepositoryService = mock(RepositoryService.class)
-        when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)
-        when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("UpdateVfModuleVolumeInfraV1")
-        when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100")
-        ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)
-        when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)
-
-        ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-        // Initialize prerequisite variables
-        when(mockExecution.getId()).thenReturn("100")
-        when(mockExecution.getProcessDefinitionId()).thenReturn("UpdateVfModuleVolumeInfraV1")
-        when(mockExecution.getProcessInstanceId()).thenReturn("UpdateVfModuleVolumeInfraV1")
-        when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)
-        when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)
-
-        return mockExecution
+        verify(mockExecution, times(1)).setVariable(captor.capture(), captor.capture())
+        String updateVolumeGroupRequest = captor.getValue()
+        Assert.assertTrue(updateVolumeGroupRequest.contains("testvnfName"))
     }
-
-    private static void mockData() {
-        stubFor(get(urlMatching(".*/aai/v[0-9]+/network/generic-vnfs/generic-vnf/12345/vf-modules/vf-module/.*"))
-                .willReturn(aResponse()
-                .withStatus(200).withHeader("Content-Type", "text/xml")
-                .withBodyFile("UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml")))
-       }
 }