diff options
Diffstat (limited to 'bpmn/MSOCommonBPMN/src/test/groovy/org')
18 files changed, 765 insertions, 491 deletions
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AaiUtilTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AaiUtilTest.groovy index 05b1c5e6ed..1165bbbc71 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AaiUtilTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AaiUtilTest.groovy @@ -44,8 +44,6 @@ import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity import org.camunda.bpm.engine.impl.pvm.process.ProcessDefinitionImpl import org.camunda.bpm.engine.repository.ProcessDefinition -@RunWith(MockitoJUnitRunner.class) -@Ignore class AaiUtilTest extends MsoGroovyTest { @@ -53,7 +51,7 @@ class AaiUtilTest extends MsoGroovyTest { public WireMockRule wireMockRule = new WireMockRule(8090); @Rule - public ExpectedException thrown = ExpectedException.none + public ExpectedException thrown = ExpectedException.none() def aaiPaylod = "<allotted-resource xmlns=\"http://org.openecomp.aai.inventory/v9\">\n" + @@ -128,6 +126,7 @@ class AaiUtilTest extends MsoGroovyTest { } @Test + @Ignore public void testExecuteAAIGetCall() { ExecutionEntity mockExecution = setupMock('CreateAAIVfModule') when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true') @@ -140,6 +139,7 @@ class AaiUtilTest extends MsoGroovyTest { @Test + @Ignore public void testExecuteAAIPutCall() { ExecutionEntity mockExecution = setupMock('CreateAAIVfModule') when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true') diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessorTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessorTest.groovy index 86a175d811..459b18b7f1 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessorTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessorTest.groovy @@ -32,7 +32,7 @@ import static org.mockito.Mockito.* import org.onap.so.rest.HttpHeader import org.mockito.MockitoAnnotations -import org.mockito.runners.MockitoJUnitRunner +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.internal.debugging.MockitoDebuggerImpl import org.junit.Before import org.onap.so.bpmn.common.scripts.AaiUtil; @@ -58,7 +58,8 @@ class AbstractServiceTaskProcessorImpl extends AbstractServiceTaskProcessor{ } } -@RunWith(MockitoJUnitRunner.class) + +@RunWith(MockitoJUnitRunner.Silent.class) public class AbstractServiceTaskProcessorTest extends MsoGroovyTest { @Captor @@ -171,12 +172,12 @@ public class AbstractServiceTaskProcessorTest extends MsoGroovyTest { @Test public void testSetBasicDBAuthHeader_Success() { ExecutionEntity mockExecution = setupMock() - when(mockExecution.getVariable("mso.adapters.db.auth")).thenReturn('9B2278E8B8E95F256A560719055F4DF3') - when(mockExecution.getVariable("mso.msoKey")).thenReturn('aa3871669d893c7fb8abbcda31b88b4f') + when(mockExecution.getVariable("mso.adapters.db.auth")).thenReturn('5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C') + when(mockExecution.getVariable("mso.msoKey")).thenReturn('07a7159d3bf51a0e53be7a8f89699be7') AbstractServiceTaskProcessorImpl serviceTaskProcessor = new AbstractServiceTaskProcessorImpl(); serviceTaskProcessor.setBasicDBAuthHeader(mockExecution, "true") - verify(mockExecution).setVariable("BasicAuthHeaderValueDB",'Basic dXAyMTE4OnVwMjExOA==') + verify(mockExecution).setVariable("BasicAuthHeaderValueDB",'Basic dGVzdDp0ZXN0') } } diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtilsTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtilsTest.groovy new file mode 100644 index 0000000000..3da126f7a9 --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtilsTest.groovy @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. 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.onap.so.bpmn.common.scripts + +import org.camunda.bpm.engine.delegate.DelegateExecution +import org.junit.Before +import org.junit.Ignore +import org.junit.Test +import org.mockito.Mockito +import org.mockito.internal.stubbing.answers.DoesNothing +import org.onap.aai.domain.yang.AllottedResource +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 javax.ws.rs.core.UriBuilder +import static org.junit.Assert.assertEquals +import static org.junit.Assert.assertTrue +import static org.mockito.Matchers.any +import static org.mockito.Matchers.anyObject +import static org.mockito.Matchers.isA +import static org.mockito.Mockito.atLeastOnce +import static org.mockito.Mockito.doNothing +import static org.mockito.Mockito.doThrow +import static org.mockito.Mockito.mock +import static org.mockito.Mockito.spy +import static org.mockito.Mockito.verify +import static org.mockito.Mockito.when + + +class AllottedResourceUtilsTest extends MsoGroovyTest{ + + private static final String ALLOTTED_RESOURSE_URI = "/aai/v11/business/customers/customer/MSO-MUX-User/service-subscriptions/service-subscription/MSO-vCB/service-instances/service-instance/a1f53c6a-81a3-4e44-a900-d64f3b131d35/allotted-resources/allotted-resource/ID" + + AllottedResourceUtils allottedResourceUtils + + @Before + void init(){ + super.init("AllottedResourceUtils") + allottedResourceUtils = spy(new AllottedResourceUtils(mock(AbstractServiceTaskProcessor.class))) + when(allottedResourceUtils.getAAIClient()).thenReturn(client) + } + + @Test + @Ignore + void getARbyId() { + String allottedResourceId = "allottedResourceId" + AllottedResource expectedAllottedResource = new AllottedResource() + expectedAllottedResource.setId("ID") + expectedAllottedResource.setResourceVersion("1.2") + when(client.get(any(AAIResourceUri.class))).thenReturn(new AAIResultWrapper(expectedAllottedResource)) + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.ALLOTTED_RESOURCE, allottedResourceId) + when(allottedResourceUtils.setExecutionVariables(mockExecution,expectedAllottedResource,resourceUri)).thenAnswer(new DoesNothing()) + boolean allottedResource = allottedResourceUtils.ifExistsAR(mockExecution,allottedResourceId) + assertTrue(allottedResource) + } + + @Test + void getARbyLink() { + println "************ testGetARbyLink ************* " + + AllottedResource expectedAllottedResource = new AllottedResource() + expectedAllottedResource.setId("ID") + AAIResourceUri uri = AAIUriFactory.createResourceFromExistingURI(AAIObjectType.ALLOTTED_RESOURCE, UriBuilder.fromPath(ALLOTTED_RESOURSE_URI).build()) + when(client.get(AllottedResource.class, uri)).thenReturn(Optional.of(expectedAllottedResource)) + Optional<AllottedResource> allottedResource = allottedResourceUtils.getARbyLink(mockExecution, ALLOTTED_RESOURSE_URI,"") + assertEquals(expectedAllottedResource.getId(),allottedResource.get().getId()) + } + + @Test + void updateAROrchStatus() { + allottedResourceUtils.updateAROrchStatus(mockExecution,"PENDING",ALLOTTED_RESOURSE_URI) + } + + @Test + void deleteAR() { + allottedResourceUtils.deleteAR(mockExecution,ALLOTTED_RESOURSE_URI) + verify(mockExecution,atLeastOnce()).setVariable("wasDeleted","true") + } + +} diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtilsTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtilsTest.groovy deleted file mode 100644 index 39064caa28..0000000000 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtilsTest.groovy +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. 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.onap.so.bpmn.common.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.impl.persistence.entity.ExecutionEntity -import org.camunda.bpm.engine.repository.ProcessDefinition -import org.junit.Assert -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mockito -import org.mockito.runners.MockitoJUnitRunner -import org.onap.so.bpmn.mock.FileUtil - -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse -import static com.github.tomakehurst.wiremock.client.WireMock.get -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor -import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching -import static org.mockito.Mockito.mock -import static org.mockito.Mockito.mock -import static org.mockito.Mockito.mock -import static org.mockito.Mockito.mock -import static org.mockito.Mockito.when -import static org.mockito.Mockito.when -import static org.mockito.Mockito.when -import static org.mockito.Mockito.when -import static org.mockito.Mockito.when -import static org.mockito.Mockito.when -import static org.mockito.Mockito.when - -@RunWith(MockitoJUnitRunner.class) -class CatalogDbUtilsTest { - - - @Rule - public WireMockRule wireMockRule = new WireMockRule(8090) - - @Test - public void testGetResponseFromCatalogDb() { - ExecutionEntity mockExecution = setupMock() - when(mockExecution.getVariable("mso.catalog.db.endpoint")).thenReturn('http://localhost:8090') - when(mockExecution.getVariable("mso.adapters.db.auth")).thenReturn('757A94191D685FD2092AC1490730A4FC') - when(mockExecution.getVariable("mso.msoKey")).thenReturn('07a7159d3bf51a0e53be7a8f89699be7') - - stubFor(get(urlMatching(".*/serviceNetworks[?]serviceModelUuid=12345")) - .willReturn(aResponse() - .withStatus(200) - .withBodyFile("catalogDbFiles/DoCreateServiceInstance_request.json"))) - - CatalogDbUtils obj = new CatalogDbUtils() - String str = obj.getResponseFromCatalogDb(mockExecution, "/serviceNetworks?serviceModelUuid=12345") - String expectedValue = - FileUtil.readResourceFile("__files/catalogDbFiles/DoCreateServiceInstance_request.json"); - Assert.assertEquals(expectedValue, str) - - } - - private ExecutionEntity setupMock() { - - ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class) - when(mockProcessDefinition.getKey()).thenReturn("GenericGetService") - RepositoryService mockRepositoryService = mock(RepositoryService.class) - when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition) - when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("GenericGetService") - when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100") - ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class) - when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService) - ExecutionEntity mockExecution = mock(ExecutionEntity.class) - when(mockExecution.getId()).thenReturn("100") - when(mockExecution.getProcessDefinitionId()).thenReturn("GenericGetService") - when(mockExecution.getProcessInstanceId()).thenReturn("GenericGetService") - when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices) - when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition) - return mockExecution - } -} diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CompleteMsoProcessTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CompleteMsoProcessTest.groovy index 4b0c33ab99..70068c849b 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CompleteMsoProcessTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CompleteMsoProcessTest.groovy @@ -76,7 +76,7 @@ class CompleteMsoProcessTest { ExecutionEntity mockExecution = mock(ExecutionEntity.class) when(mockExecution.getVariable("CompleteMsoProcessRequest")).thenReturn(completeMsoProcessRequest) - when(mockExecution.getVariable("mso.adapters.db.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC"); + when(mockExecution.getVariable("mso.adapters.db.auth")).thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C"); when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7"); CompleteMsoProcess completeMsoProcess = new CompleteMsoProcess() @@ -155,28 +155,6 @@ class CompleteMsoProcessTest { <sdncadapterworkflow:out>BPEL BPEL-NAME FAILED</sdncadapterworkflow:out> </sdncadapterworkflow:MsoCompletionResponse>""" - @Test - void testBuildDataError() { - // given - def message = "Some-Message" - - def mockExecution = mock ExecutionEntity.class - when mockExecution.getVariable("CMSO_mso-bpel-name") thenReturn "BPEL-NAME" - when mockExecution.getVariable("testProcessKey") thenReturn "CompleteMsoProcess" - - def completeMsoProcess = new CompleteMsoProcess() - // when - assertThatThrownBy { completeMsoProcess.buildDataError(mockExecution, message) } isInstanceOf BpmnError - // then - verify mockExecution setVariable("CompleteMsoProcessResponse", msoCompletionResponse) - def argumentCaptor = ArgumentCaptor.forClass WorkflowException.class - verify mockExecution setVariable(eq("WorkflowException"), argumentCaptor.capture()) - def capturedException = argumentCaptor.value - - assertThat capturedException.processKey isEqualTo "CompleteMsoProcess" - assertThat capturedException.errorCode isEqualTo 500 - assertThat capturedException.errorMessage isEqualTo message - } @Test void postProcessResponse_successful() { diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenantTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenantTest.groovy index 5a01c83a80..e40b877177 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenantTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenantTest.groovy @@ -20,106 +20,72 @@ package org.onap.so.bpmn.common.scripts -import com.github.tomakehurst.wiremock.junit.WireMockRule +import static com.shazam.shazamcrest.MatcherAssert.assertThat +import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs +import static org.mockito.Mockito.spy +import static org.mockito.Mockito.times +import static org.mockito.Mockito.when -import static org.junit.Assert.*; -import static org.mockito.Mockito.* - -import org.onap.so.rest.HttpHeader -import org.mockito.MockitoAnnotations -import org.mockito.runners.MockitoJUnitRunner -import org.mockito.internal.debugging.MockitoDebuggerImpl -import org.junit.Before -import org.onap.so.bpmn.common.scripts.AaiUtil; -import org.junit.Rule; -import org.junit.Test -import org.junit.Ignore -import org.junit.runner.RunWith -import org.junit.Before; -import org.junit.Test; -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.impl.pvm.process.ProcessDefinitionImpl -import org.camunda.bpm.engine.repository.ProcessDefinition -import org.junit.Assert import org.junit.Before -import org.junit.Rule import org.junit.Test -import org.junit.runner.RunWith import org.mockito.ArgumentCaptor import org.mockito.Captor import org.mockito.Mockito -import org.mockito.runners.MockitoJUnitRunner -import org.onap.so.bpmn.common.scripts.ConfirmVolumeGroupTenant -import org.onap.so.bpmn.core.WorkflowException +import org.onap.aai.domain.yang.Relationship +import org.onap.aai.domain.yang.RelationshipData +import org.onap.aai.domain.yang.RelationshipList +import org.onap.aai.domain.yang.VolumeGroup +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 static com.github.tomakehurst.wiremock.client.WireMock.* -import static org.mockito.Mockito.* - -@RunWith(MockitoJUnitRunner.class) -@Ignore class ConfirmVolumeGroupTenantTest extends MsoGroovyTest { @Captor - ArgumentCaptor<ExecutionEntity> captor = ArgumentCaptor.forClass(ExecutionEntity.class); - - @Rule - public WireMockRule wireMockRule = new WireMockRule(8090); + static ArgumentCaptor<ExecutionEntity> captor = ArgumentCaptor.forClass(ExecutionEntity.class) + @Before + public void init(){ + super.init("ConfirmVolumeGroupTenant") + } @Test - public void testpreProcessRequest() { - ExecutionEntity mockExecution = setupMock() + void testpreProcessRequest() { + VolumeGroup expectedVolumeGroup = new VolumeGroup(); + expectedVolumeGroup.setVolumeGroupId("VolumeGroupId") + RelationshipList relationshipList = new RelationshipList(); + Relationship relationship = new Relationship(); + relationship.setRelatedTo("tenant") + RelationshipData data = new RelationshipData(); + data.setRelationshipKey("tenant.tenant-id") + data.setRelationshipValue("tenantId") + relationship.setRelatedLink("/cloud-infrastructure/cloud-regions/cloud-region/" + Defaults.CLOUD_OWNER.toString() + "/cloudRegionId/tenants/tenant/tenantId") + relationship.getRelationshipData().add(data) + relationshipList.getRelationship().add(relationship) + expectedVolumeGroup.setRelationshipList(relationshipList) + + + expectedVolumeGroup.setRelationshipList(relationshipList) + ConfirmVolumeGroupTenant confirmVolumeGroupTenant = spy(ConfirmVolumeGroupTenant.class) + when(confirmVolumeGroupTenant.getAAIClient()).thenReturn(client) + when(mockExecution.getVariable("aicCloudRegion")).thenReturn("aicCloudRegionId"); + when(mockExecution.getVariable("volumeGroupId")).thenReturn("volumeGroupId"); when(mockExecution.getVariable("aai.endpoint")).thenReturn('http://localhost:8090') - when(mockExecution.getVariable("volumeGroupId")).thenReturn('testVolumeGroupId') when(mockExecution.getVariable("volumeGroupName")).thenReturn('testVolumeGroupName') when(mockExecution.getVariable("tenantId")).thenReturn('tenantId') - when(mockExecution.getVariable("aicCloudRegion")).thenReturn('aicCloudRegion') when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true') when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn('8') when(mockExecution.getVariable("mso.workflow.default.aai.v8.cloud-region.uri")).thenReturn('/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner') when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn('http://org.openecomp.aai.inventory/') - - - mockData() - - - ConfirmVolumeGroupTenant confirmVolumeGroupTenant = new ConfirmVolumeGroupTenant() + AAIResourceUri arURI = AAIUriFactory. createResourceUri(AAIObjectType.VOLUME_GROUP, Defaults.CLOUD_OWNER.toString(), "aicCloudRegionId","volumeGroupId") + AAIResultWrapper wrapper = new AAIResultWrapper(expectedVolumeGroup) + when(client.get(arURI)).thenReturn(wrapper) confirmVolumeGroupTenant.preProcessRequest(mockExecution) - /* Mockito.verify(mockExecution, times(5)).setVariable(captor.capture(), captor.capture())*/ - verify(mockExecution).setVariable("prefix", "CVGT_") - verify(mockExecution).setVariable("queryVolumeGroupResponseCode", 200) - verify(mockExecution).setVariable("queryAAIVolumeGroupResponse", "<volume-group xmlns=\"http://org.openecomp.aai.inventory/v10\"><volume-group-id>17ef4658-bd1f-4ef0-9ca0-ea76e2bf122c</volume-group-id><volume-group-name>MSOTESTVOL103a-vSAMP12_base_module-0_vol</volume-group-name><heat-stack-id>9d1f53e3-3158-44f8-8032-a6bf40bbc9db</heat-stack-id><vnf-type>pcrf-capacity</vnf-type><orchestration-status>Active</orchestration-status><resource-version>0000020</resource-version><relationship-list><relationship><related-to>tenant</related-to><relationship-data><relationship-key>cloud-region.cloud-owner</relationship-key><relationship-value>CloudOwner</relationship-value></relationship-data><relationship-data><relationship-key>cloud-region.cloud-region-id</relationship-key><relationship-value>RegionOne</relationship-value></relationship-data><relationship-data><relationship-key>tenant.tenant-id</relationship-key><relationship-value>22eb191dd41a4f3c9be370fc638322f4</relationship-value></relationship-data></relationship></relationship-list></volume-group>") - verify(mockExecution).setVariable("tenantIdsMatch", false) - verify(mockExecution).setVariable("groupNamesMatch", false) - } - - - private void mockData() { - stubFor(get(urlMatching("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner/aicCloudRegion/volume-groups/volume-group/testVolumeGroupId")) - .willReturn(aResponse() - .withStatus(200) - .withBody("<volume-group xmlns=\"http://org.openecomp.aai.inventory/v10\"><volume-group-id>17ef4658-bd1f-4ef0-9ca0-ea76e2bf122c</volume-group-id><volume-group-name>MSOTESTVOL103a-vSAMP12_base_module-0_vol</volume-group-name><heat-stack-id>9d1f53e3-3158-44f8-8032-a6bf40bbc9db</heat-stack-id><vnf-type>pcrf-capacity</vnf-type><orchestration-status>Active</orchestration-status><resource-version>0000020</resource-version><relationship-list><relationship><related-to>tenant</related-to><relationship-data><relationship-key>cloud-region.cloud-owner</relationship-key><relationship-value>CloudOwner</relationship-value></relationship-data><relationship-data><relationship-key>cloud-region.cloud-region-id</relationship-key><relationship-value>RegionOne</relationship-value></relationship-data><relationship-data><relationship-key>tenant.tenant-id</relationship-key><relationship-value>22eb191dd41a4f3c9be370fc638322f4</relationship-value></relationship-data></relationship></relationship-list></volume-group>"))) - } - - private ExecutionEntity setupMock() { - - ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class) - when(mockProcessDefinition.getKey()).thenReturn("ConfirmVolumeGroupTenant") - RepositoryService mockRepositoryService = mock(RepositoryService.class) - when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition) - when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("ConfirmVolumeGroupTenant") - when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100") - ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class) - when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService) - - ExecutionEntity mockExecution = mock(ExecutionEntity.class) - when(mockExecution.getId()).thenReturn("100") - when(mockExecution.getProcessDefinitionId()).thenReturn("ConfirmVolumeGroupTenant") - when(mockExecution.getProcessInstanceId()).thenReturn("ConfirmVolumeGroupTenant") - when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices) - when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition) + Mockito.verify(mockExecution, times(4)).setVariable(captor.capture(), captor.capture()) + List<ExecutionEntity> executionEntities = captor.getAllValues() - return mockExecution + assertThat(executionEntities.get(3), sameBeanAs(expectedVolumeGroup)) } } diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleTest.groovy index 999a12c869..886e92bd45 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleTest.groovy @@ -2,16 +2,17 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Copyright (C) 2018 Nokia. * ================================================================================ + * * 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. @@ -22,43 +23,160 @@ package org.onap.so.bpmn.common.scripts -import joptsimple.internal.Strings +import static org.assertj.core.api.Assertions.assertThat +import static org.mockito.ArgumentMatchers.any +import static org.mockito.ArgumentMatchers.anyObject +import static org.mockito.Mockito.mock +import static org.mockito.Mockito.when + import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake import org.junit.Before import org.junit.Test +import org.mockito.Mockito +import org.mockito.MockitoAnnotations +import org.mockito.Spy +import org.onap.aai.domain.yang.GenericVnf +import org.onap.aai.domain.yang.VfModule +import org.onap.aai.domain.yang.VfModules import org.onap.so.bpmn.core.UrnPropertiesReader +import org.onap.so.client.aai.entities.uri.AAIResourceUri import org.springframework.core.env.Environment -import static org.assertj.core.api.Assertions.assertThat -import static org.mockito.Mockito.mock -import static org.mockito.Mockito.when +class CreateAAIVfModuleTest extends MsoGroovyTest{ -class CreateAAIVfModuleTest { - - private static final String VNF_ID = "vnfIdTest" - private static final String VNF_TYPE = "vnfTypeTest" - private static final String VNF_NAME = "testVnf" - private static final String SERVICE_ID = "123" - private static final String PERSONAL_MODEL_ID = "modelTest" - private static final String PERSONAL_MODEL_VERSION = "12" - private static final String MODEL_CUST_ID = "modelCustIdTest" - private static final String VNF_PERSONAL_MODEL_ID = "perModIdTest" - private static final String VNF_PERSONAL_MODEL_VER = "14" - private static final String VF_MODULE_NAME = "modTestName" - private static final String VF_MODULE_MODEL_NAME = "modModelNameTest" - private static final String DEFAULT_AAI_VERSION = "9" - private static final String DEFAULT_AAI_NAMESPACE = "defaultTestNamespace" - - private CreateAAIVfModule testedObject - private DelegateExecutionFake executionFake + private static final String VNF_ID = "vnfIdTest" + private static final String VNF_TYPE = "vnfTypeTest" + private static final String VNF_NAME = "testVnf" + private static final String SERVICE_ID = "123" + private static final String PERSONAL_MODEL_ID = "modelTest" + private static final String PERSONAL_MODEL_VERSION = "12" + private static final String MODEL_CUST_ID = "modelCustIdTest" + private static final String VNF_PERSONAL_MODEL_ID = "perModIdTest" + private static final String VNF_PERSONAL_MODEL_VER = "14" + private static final String VF_MODULE_NAME = "modTestName" + private static final String VF_MODULE_MODEL_NAME = "modModelNameTest" + private static final String DEFAULT_AAI_VERSION = "9" + private static final String DEFAULT_AAI_NAMESPACE = "defaultTestNamespace" + + @Spy + CreateAAIVfModule createAAIVfModule ; + private DelegateExecutionFake executionFake; + @Before - void setupTest() { - testedObject = new CreateAAIVfModule() + public void init() throws IOException { + super.init("CreateAAIVfModule") + MockitoAnnotations.initMocks(this); executionFake = new DelegateExecutionFake() + when(createAAIVfModule.getAAIClient()).thenReturn(client) + } + + @Test + void testQueryAAIForGenericVnf(){ + when(mockExecution.getVariable("CAAIVfMod_vnfId")).thenReturn("vnfId1") + when(mockExecution.getVariable("CAAIVfMod_vnfName")).thenReturn("vnfName") + Optional<GenericVnf> expectedResponse = mockAAIGenericVnf("vnfId1") + createAAIVfModule.queryAAIForGenericVnf(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_queryGenericVnfResponseCode", 200) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_queryGenericVnfResponse", expectedResponse.get()) + } + + @Test + void testQueryAAIForGenericVnfNotFound(){ + when(mockExecution.getVariable("CAAIVfMod_vnfId")).thenReturn("vnfIdNotFound") + when(mockExecution.getVariable("CAAIVfMod_vnfName")).thenReturn("vnfName") + mockAAIGenericVnfNotFound("vnfIdNotFound") + createAAIVfModule.queryAAIForGenericVnf(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_queryGenericVnfResponseCode", 404) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_queryGenericVnfResponse", "Generic Vnf not Found!") } + + @Test + void testCreateGenericVnf(){ + when(mockExecution.getVariable("CAAIVfMod_vnfName")).thenReturn("vnfName") + Mockito.doNothing().when(client).create(any(AAIResourceUri.class),anyObject()) + createAAIVfModule.createGenericVnf(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_createGenericVnfResponseCode", 201) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_createGenericVnfResponse","Vnf Created") + } + + + @Test + void testCreateVfModule(){ + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("CAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + + when(mockExecution.getVariable("CAAIVfMod_personaId")).thenReturn("model1") + when(mockExecution.getVariable("CAAIVfMod_moduleName")).thenReturn("vfModuleName") + Mockito.doNothing().when(client).create(any(AAIResourceUri.class),anyObject()) + createAAIVfModule.createVfModule(mockExecution,false) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_createVfModuleResponseCode", 201) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_createVfModuleResponse","Vf Module Created") + } + + @Test + void testParseForAddOnModule(){ + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("CAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + when(mockExecution.getVariable("CAAIVfMod_moduleName")).thenReturn("newVfModule") + createAAIVfModule.parseForAddOnModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_moduleExists", false) + } + + @Test + void testParseForAddOnModuleTrue(){ + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("CAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + when(mockExecution.getVariable("CAAIVfMod_moduleName")).thenReturn("testVfModuleNameGWPrim") + createAAIVfModule.parseForAddOnModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_moduleExists", true) + } + + @Test + void testParseForBaseModule(){ + Optional<GenericVnf> genericVnfOps = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json") + GenericVnf genericVnf = genericVnfOps.get() + genericVnf.getVfModules().getVfModule().remove(0) + when(mockExecution.getVariable("CAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf) + when(mockExecution.getVariable("CAAIVfMod_moduleName")).thenReturn("newVfModule") + createAAIVfModule.parseForBaseModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_moduleExists", false) + } + + @Test + void testParseForBaseModuleConflict(){ + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("CAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + when(mockExecution.getVariable("CAAIVfMod_moduleName")).thenReturn("testVfModuleNameGWPrim") + when(mockExecution.getVariable("CAAIVfMod_baseModuleConflict")).thenReturn(true) + createAAIVfModule.parseForBaseModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_baseModuleConflict", true) + } + + @Test + void testParseForBaseModuleExists(){ + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("CAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + when(mockExecution.getVariable("CAAIVfMod_moduleName")).thenReturn("newVfModule") + when(mockExecution.getVariable("CAAIVfMod_baseModuleConflict")).thenReturn(false) + createAAIVfModule.parseForBaseModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_moduleExists", false) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_baseModuleConflict", true) + } + + @Test + void testCreateVfModuleBase(){ + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("CAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + when(mockExecution.getVariable("CAAIVfMod_moduleName")).thenReturn("vfModuleName") + Mockito.doNothing().when(client).create(any(AAIResourceUri.class),anyObject()) + createAAIVfModule.createVfModule(mockExecution,true) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_createVfModuleResponseCode", 201) + Mockito.verify(mockExecution).setVariable("CAAIVfMod_createVfModuleResponse","Vf Module Created") + } + @Test void preProcessRequest_successful() { //given prepareUrnPropertiesReader() @@ -75,7 +193,7 @@ class CreateAAIVfModuleTest { executionFake.setVariable("vfModuleName", VF_MODULE_NAME) executionFake.setVariable("vfModuleModelName", VF_MODULE_MODEL_NAME) //when - testedObject.preProcessRequest(executionFake) + createAAIVfModule.preProcessRequest(executionFake) //then assertThat(executionFake.getVariable("CAAIVfMod_vnfId")).isEqualTo(VNF_ID) assertThat(executionFake.getVariable("CAAIVfMod_vnfName")).isEqualTo(VNF_NAME) @@ -96,10 +214,10 @@ class CreateAAIVfModuleTest { @Test void processAAIGenericVnfQuery_setVnfResponse() { executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 200) - executionFake.setVariable("CAAIVfMod_vnfId", Strings.EMPTY) + executionFake.setVariable("CAAIVfMod_vnfId", "") executionFake.setVariable("CAAIVfMod_vnfName", VNF_NAME) - testedObject.processAAIGenericVnfQuery(executionFake) + createAAIVfModule.processAAIGenericVnfQuery(executionFake) assertThat(executionFake.getVariable("CAAIVfMod_queryGenericVnfResponse")) .isEqualTo("Invalid request for new Generic VNF which already exists, Vnf Name=" + VNF_NAME) @@ -110,7 +228,7 @@ class CreateAAIVfModuleTest { executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 500) executionFake.setVariable("CAAIVfMod_vnfId", VNF_ID) - testedObject.processAAIGenericVnfQuery(executionFake) + createAAIVfModule.processAAIGenericVnfQuery(executionFake) assertThat(executionFake.getVariable("CAAIVfMod_createVfModuleResponse")) .isEqualTo("Invalid request for Add-on Module requested for non-existant Generic VNF, VNF Id=" + VNF_ID) @@ -118,12 +236,18 @@ class CreateAAIVfModuleTest { @Test void parseForAddOnModule_moduleNameFound() { - String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name>" + - "<vf-module-name>" + VF_MODULE_NAME + "</vf-module-name></CAAIVfMod_queryGenericVnfResponse>" - executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + + GenericVnf vnf = new GenericVnf(); + VfModule module = new VfModule(); + VfModules modules = new VfModules(); + vnf.setVnfName(VNF_NAME) + vnf.setVfModules(modules) + modules.getVfModule().add(module) + module.setVfModuleName(VF_MODULE_NAME) + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", vnf) executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME) - testedObject.parseForAddOnModule(executionFake) + createAAIVfModule.parseForAddOnModule(executionFake) assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(true) @@ -133,13 +257,13 @@ class CreateAAIVfModuleTest { @Test void parseForAddOnModule_moduleNameNotFound() { - String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name>" + - "</CAAIVfMod_queryGenericVnfResponse>" - executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + GenericVnf vnf = new GenericVnf(); + vnf.setVnfName(VNF_NAME) + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", vnf) executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME) executionFake.setVariable("CAAIVfMod_moduleExists", false) - testedObject.parseForAddOnModule(executionFake) + createAAIVfModule.parseForAddOnModule(executionFake) assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false) @@ -149,12 +273,17 @@ class CreateAAIVfModuleTest { @Test void parseForBaseModule_moduleNameFound() { - String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name>" + - "<vf-module-name>" + VF_MODULE_NAME + "</vf-module-name></CAAIVfMod_queryGenericVnfResponse>" - executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + GenericVnf vnf = new GenericVnf(); + VfModule module = new VfModule(); + VfModules modules = new VfModules(); + vnf.setVnfName(VNF_NAME) + vnf.setVfModules(modules) + modules.getVfModule().add(module) + module.setVfModuleName(VF_MODULE_NAME) + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", vnf) executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME) - testedObject.parseForBaseModule(executionFake) + createAAIVfModule.parseForBaseModule(executionFake) assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false) @@ -165,12 +294,19 @@ class CreateAAIVfModuleTest { @Test void parseForBaseModule_isBaseVfModule() { - String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name>" + - "<is-base-vf-module>true</is-base-vf-module></CAAIVfMod_queryGenericVnfResponse>" - executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + GenericVnf vnf = new GenericVnf(); + VfModule module = new VfModule(); + VfModules modules = new VfModules(); + vnf.setVfModules(modules) + vnf.setVnfName(VNF_NAME) + modules.getVfModule().add(module) + module.setVfModuleName(VF_MODULE_NAME) + module.setIsBaseVfModule(true) + + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", vnf) executionFake.setVariable("CAAIVfMod_baseModuleConflict", false) - testedObject.parseForBaseModule(executionFake) + createAAIVfModule.parseForBaseModule(executionFake) assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false) @@ -181,12 +317,13 @@ class CreateAAIVfModuleTest { @Test void parseForBaseModule_baseModuleConflictIsFalse() { - String xml = "<CAAIVfMod_queryGenericVnfResponse><vnf-name>" + VNF_NAME + "</vnf-name></CAAIVfMod_queryGenericVnfResponse>" - executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + GenericVnf vnf = new GenericVnf(); + vnf.setVnfName(VNF_NAME) + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", vnf) executionFake.setVariable("CAAIVfMod_baseModuleConflict", false) executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME) - testedObject.parseForBaseModule(executionFake) + createAAIVfModule.parseForBaseModule(executionFake) assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false) @@ -201,5 +338,4 @@ class CreateAAIVfModuleTest { UrnPropertiesReader urnPropertiesReader = new UrnPropertiesReader() urnPropertiesReader.setEnvironment(mockEnvironment) } - } diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroupTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroupTest.groovy new file mode 100644 index 0000000000..ea38ed8c83 --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroupTest.groovy @@ -0,0 +1,119 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. 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.onap.so.bpmn.common.scripts + +import static org.mockito.Mockito.doNothing +import static org.mockito.Mockito.doThrow +import static org.mockito.Mockito.when + +import org.junit.Before +import org.junit.Test +import org.mockito.Mockito +import org.mockito.Spy +import org.onap.so.client.aai.AAIObjectType +import org.onap.so.client.aai.entities.uri.AAIResourceUri +import org.onap.so.client.aai.entities.uri.AAIUriFactory +import org.onap.so.constants.Defaults + +class CreateAAIVfModuleVolumeGroupTest extends MsoGroovyTest{ + + @Spy + CreateAAIVfModuleVolumeGroup createAAIVfModuleVolumeGroup; + + @Before + void init(){ + super.init("CreateAAIVfModuleVolumeGroup") + when(createAAIVfModuleVolumeGroup.getAAIClient()).thenReturn(client) + } + + @Test + void testGetVfModule (){ + when(mockExecution.getVariable("CAAIVfModVG_vnfId")).thenReturn("Vnf123") + when(mockExecution.getVariable("CAAIVfModVG_vfModuleId")).thenReturn("VfModule123") + org.onap.aai.domain.yang.VfModule vfModuleExpected = new org.onap.aai.domain.yang.VfModule() + vfModuleExpected.setVfModuleId("VfModule123") + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "Vnf123", "VfModule123"); + when(client.get(org.onap.aai.domain.yang.VfModule.class,resourceUri)).thenReturn(Optional.of(vfModuleExpected)) + createAAIVfModuleVolumeGroup.getVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_getVfModuleResponseCode", 200) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_getVfModuleResponse", vfModuleExpected) + } + + @Test + void testGetVfModuleNotFound (){ + when(mockExecution.getVariable("CAAIVfModVG_vnfId")).thenReturn("Vnf123") + when(mockExecution.getVariable("CAAIVfModVG_vfModuleId")).thenReturn("VfModule123") + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "Vnf123", "VfModule123"); + when(client.get(org.onap.aai.domain.yang.VfModule.class,resourceUri)).thenReturn(Optional.empty()) + createAAIVfModuleVolumeGroup.getVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_getVfModuleResponseCode", 404) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_getVfModuleResponse", "VF-Module Not found!!") + } + + @Test + void testGetVfModuleException (){ + when(mockExecution.getVariable("CAAIVfModVG_vnfId")).thenReturn("Vnf123") + when(mockExecution.getVariable("CAAIVfModVG_vfModuleId")).thenReturn("VfModule123") + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "Vnf123", "VfModule123"); + when(client.get(org.onap.aai.domain.yang.VfModule.class,resourceUri)).thenThrow(new NullPointerException("Error in AAI client")) + createAAIVfModuleVolumeGroup.getVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_getVfModuleResponseCode", 500) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_getVfModuleResponse", "AAI GET Failed:Error in AAI client") + } + + @Test + void testUpdateVfModule (){ + when(mockExecution.getVariable("CAAIVfModVG_vnfId")).thenReturn("Vnf123") + when(mockExecution.getVariable("CAAIVfModVG_vfModuleId")).thenReturn("VfModule123") + when(mockExecution.getVariable("CAAIVfModVG_aicCloudRegion")).thenReturn("CloudRegion1") + when(mockExecution.getVariable("CAAIVfModVG_volumeGroupId")).thenReturn("VolumeGroup1") + when(mockExecution.getVariable("CAAIVfModVG_cloudOwner")).thenReturn("cloudOwner") + org.onap.aai.domain.yang.VfModule vfModuleExpected = new org.onap.aai.domain.yang.VfModule() + vfModuleExpected.setVfModuleId("VfModule123") + vfModuleExpected.setResourceVersion("12345") + when(mockExecution.getVariable("CAAIVfModVG_getVfModuleResponse")).thenReturn(vfModuleExpected) + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "Vnf123", "VfModule123"); + AAIResourceUri resourceUri1 = AAIUriFactory.createResourceUri(AAIObjectType.VOLUME_GROUP, Defaults.CLOUD_OWNER.toString(),"CloudRegion1", "VolumeGroup1") + doNothing().when(client).connect(resourceUri ,resourceUri1 ) + createAAIVfModuleVolumeGroup.updateVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_updateVfModuleResponseCode", 200) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_updateVfModuleResponse", "Success") + } + + @Test + void testUpdateVfModuleAAIException (){ + when(mockExecution.getVariable("CAAIVfModVG_vnfId")).thenReturn("Vnf123") + when(mockExecution.getVariable("CAAIVfModVG_vfModuleId")).thenReturn("VfModule123") + when(mockExecution.getVariable("CAAIVfModVG_aicCloudRegion")).thenReturn("CloudRegion1") + when(mockExecution.getVariable("CAAIVfModVG_volumeGroupId")).thenReturn("VolumeGroup1") + org.onap.aai.domain.yang.VfModule vfModuleExpected = new org.onap.aai.domain.yang.VfModule() + vfModuleExpected.setVfModuleId("VfModule123") + vfModuleExpected.setResourceVersion("12345") + when(mockExecution.getVariable("CAAIVfModVG_cloudOwner")).thenReturn("cloudOwner") + when(mockExecution.getVariable("CAAIVfModVG_getVfModuleResponse")).thenReturn(vfModuleExpected) + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "Vnf123", "VfModule123"); + AAIResourceUri resourceUri1 = AAIUriFactory.createResourceUri(AAIObjectType.VOLUME_GROUP, 'cloudOwner',"CloudRegion1", "VolumeGroup1") + doThrow(new NullPointerException("Error in AAI client")).when(client).connect(resourceUri ,resourceUri1 ) + createAAIVfModuleVolumeGroup.updateVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_updateVfModuleResponseCode", 500) + Mockito.verify(mockExecution).setVariable("CAAIVfModVG_updateVfModuleResponse", 'AAI PUT Failed:'+ "Error in AAI client") + } +} diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModuleTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModuleTest.groovy index 025bea5325..4b6f8aa918 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModuleTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModuleTest.groovy @@ -20,125 +20,157 @@ package org.onap.so.bpmn.common.scripts -import com.github.tomakehurst.wiremock.junit.WireMockRule +import static org.mockito.Mockito.* + +import javax.ws.rs.NotFoundException + import org.camunda.bpm.engine.ProcessEngineServices import org.camunda.bpm.engine.RepositoryService +import org.camunda.bpm.engine.delegate.DelegateExecution import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity import org.camunda.bpm.engine.repository.ProcessDefinition +import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake import org.junit.Assert import org.junit.Before -import org.junit.Ignore -import org.junit.Rule import org.junit.Test -import org.junit.runner.RunWith import org.mockito.ArgumentCaptor import org.mockito.Captor -import org.mockito.Mock import org.mockito.Mockito -import org.mockito.MockitoAnnotations -import org.mockito.runners.MockitoJUnitRunner +import org.mockito.Spy +import org.onap.aai.domain.yang.GenericVnf import org.onap.so.bpmn.core.WorkflowException -import org.onap.so.bpmn.mock.StubResponseAAI - -import static com.github.tomakehurst.wiremock.client.WireMock.* -import static org.mockito.Mockito.* +import org.onap.so.client.aai.entities.uri.AAIResourceUri -@RunWith(MockitoJUnitRunner.class) -@Ignore -class DeleteAAIVfModuleTest { +class DeleteAAIVfModuleTest extends MsoGroovyTest{ def prefix = "DAAIVfMod_" - @Rule - public WireMockRule wireMockRule = new WireMockRule(28090) + @Spy + DeleteAAIVfModule deleteAAIVfModule ; @Captor static ArgumentCaptor<ExecutionEntity> captor = ArgumentCaptor.forClass(ExecutionEntity.class) @Before void init() throws IOException { - MockitoAnnotations.initMocks(this); + super.init("DeleteAAIVfModule") + when(deleteAAIVfModule.getAAIClient()).thenReturn(client) } @Test void testQueryAAIForGenericVnf() { ExecutionEntity mockExecution = setupMock() - when(mockExecution.getVariable("prefix")).thenReturn(prefix) - when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") - when(mockExecution.getVariable(prefix + "genericVnfEndpoint")).thenReturn("/aai/v8/network/generic-vnfs/generic-vnf/skask") - when(mockExecution.getVariable(prefix + "vfModuleId")).thenReturn("supercool") - when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:28090") - when(mockExecution.getVariable("aai.auth")).thenReturn("9B2278E8B8E95F256A560719055F4DF3") - when(mockExecution.getVariable("mso.msoKey")).thenReturn("aa3871669d893c7fb8abbcda31b88b4f") - - StubResponseAAI.MockAAIVfModule() - DeleteAAIVfModule obj = new DeleteAAIVfModule() - obj.queryAAIForGenericVnf(mockExecution) - + when(mockExecution.getVariable("DAAIVfMod_vnfId")).thenReturn("vnfId1") + mockAAIGenericVnf("vnfId1") + deleteAAIVfModule.queryAAIForGenericVnf(mockExecution) Mockito.verify(mockExecution).setVariable(prefix + "queryGenericVnfResponseCode", 200) } @Test - void testQueryAAIForGenericVnfEndpointNull() { + void testQueryAAIForGenericVnfNotFound() { ExecutionEntity mockExecution = setupMock() - when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") - when(mockExecution.getVariable(prefix + "genericVnfEndpoint")).thenReturn("/aai/v8/network/generic-vnfs/generic-vnf/skask") - when(mockExecution.getVariable(prefix + "vfModuleId")).thenReturn("supercool") - when(mockExecution.getVariable("aai.endpoint")).thenReturn(null) - when(mockExecution.getVariable("aai.auth")).thenReturn("9B2278E8B8E95F256A560719055F4DF3") - when(mockExecution.getVariable("mso.msoKey")).thenReturn("aa3871669d893c7fb8abbcda31b88b4f") - - StubResponseAAI.MockAAIVfModule() + when(mockExecution.getVariable("DAAIVfMod_vnfId")).thenReturn("vnfId1") + mockAAIGenericVnfNotFound("vnfId1") + deleteAAIVfModule.queryAAIForGenericVnf(mockExecution) + Mockito.verify(mockExecution).setVariable(prefix + "queryGenericVnfResponseCode", 404) + } + @Test + void testQueryAAIForGenericVnfEndpointNull() { + DelegateExecution execution = new DelegateExecutionFake(); + execution.setVariable("DAAIVfMod_vnfId", "vnfId1") try { - DeleteAAIVfModule obj = new DeleteAAIVfModule() - obj.queryAAIForGenericVnf(mockExecution) + deleteAAIVfModule.queryAAIForGenericVnf(execution) } catch (Exception ex) { println " Test End - Handle catch-throw BpmnError()! " } - Mockito.verify(mockExecution, times(2)).setVariable(captor.capture(), captor.capture()) - WorkflowException workflowException = captor.getValue() - Assert.assertEquals(5000, workflowException.getErrorCode()) - Assert.assertEquals("Internal Error - Occured during queryAAIForGenericVnf", workflowException.getErrorMessage()) + Assert.assertEquals(404, execution.getVariable("DAAIVfMod_queryGenericVnfResponseCode")) + Assert.assertEquals("Vnf Not Found!", execution.getVariable("DAAIVfMod_queryGenericVnfResponse")) } @Test void testDeleteGenericVnf() { ExecutionEntity mockExecution = setupMock() - when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") - when(mockExecution.getVariable(prefix + "genericVnfEndpoint")).thenReturn("/aai/v9/cloud-infrastructure/volume-groups/volume-group/78987") - when(mockExecution.getVariable(prefix + "genVnfRsrcVer")).thenReturn("0000020") - when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:28090") - when(mockExecution.getVariable("aai.auth")).thenReturn("9B2278E8B8E95F256A560719055F4DF3") - when(mockExecution.getVariable("mso.msoKey")).thenReturn("aa3871669d893c7fb8abbcda31b88b4f") - - stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/volume-groups/volume-group/78987/[?]resource-version=0000020")) - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withBodyFile(""))) - - StubResponseAAI.MockAAIVfModule() - DeleteAAIVfModule obj = new DeleteAAIVfModule() - obj.deleteGenericVnf(mockExecution) - + when(mockExecution.getVariable("DAAIVfMod_vnfId")).thenReturn("vnfId1") + doNothing().when(client).delete(isA(AAIResourceUri.class)) + deleteAAIVfModule.deleteGenericVnf(mockExecution) Mockito.verify(mockExecution).setVariable(prefix + "deleteGenericVnfResponseCode", 200) } @Test + void testParseForVfModule() { + ExecutionEntity mockExecution = setupMock() + when(mockExecution.getVariable("DAAIVfMod_vfModuleId")).thenReturn("testVfModuleIdGWSec") + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("DAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + deleteAAIVfModule.parseForVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_moduleExists", true) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isBaseModule", false) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isLastModule", false) + } + + @Test + void testParseForVfModuleNotFound() { + ExecutionEntity mockExecution = setupMock() + when(mockExecution.getVariable("DAAIVfMod_vfModuleId")).thenReturn("notFound") + when(mockExecution.getVariable("DAAIVfMod_moduleExists")).thenReturn(false) + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("DAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + deleteAAIVfModule.parseForVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_moduleExists", false) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isBaseModule", false) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isLastModule", false) + } + + @Test + void testParseForVfModuleBase() { + ExecutionEntity mockExecution = setupMock() + when(mockExecution.getVariable("DAAIVfMod_vfModuleId")).thenReturn("lukewarm") + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + when(mockExecution.getVariable("DAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf.get()) + deleteAAIVfModule.parseForVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_moduleExists", true) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isBaseModule", true) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isLastModule", false) + } + + @Test + void testParseForVfModuleLast() { + ExecutionEntity mockExecution = setupMock() + when(mockExecution.getVariable("DAAIVfMod_vfModuleId")).thenReturn("testVfModuleIdGWSec") + Optional<GenericVnf> genericVnfOps = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + GenericVnf genericVnf = genericVnfOps.get(); + genericVnf.getVfModules().getVfModule().remove(0) + when(mockExecution.getVariable("DAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf) + deleteAAIVfModule.parseForVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_moduleExists", true) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isBaseModule", false) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isLastModule", true) + } + + @Test + void testParseForVfModuleBaseLast() { + ExecutionEntity mockExecution = setupMock() + when(mockExecution.getVariable("DAAIVfMod_vfModuleId")).thenReturn("lukewarm") + Optional<GenericVnf> genericVnfOps = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnfVfModule.json"); + GenericVnf genericVnf = genericVnfOps.get(); + genericVnf.getVfModules().getVfModule().remove(1) + when(mockExecution.getVariable("DAAIVfMod_queryGenericVnfResponse")).thenReturn(genericVnf) + deleteAAIVfModule.parseForVfModule(mockExecution) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_moduleExists", true) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isBaseModule", true) + Mockito.verify(mockExecution).setVariable("DAAIVfMod_isLastModule", true) + } + + + + @Test void testDeleteGenericVnfEndpointNull() { ExecutionEntity mockExecution = setupMock() - when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") - when(mockExecution.getVariable(prefix + "genericVnfEndpoint")).thenReturn("/aai/v9/cloud-infrastructure/volume-groups/volume-group/78987") - when(mockExecution.getVariable(prefix + "genVnfRsrcVer")).thenReturn("0000020") - when(mockExecution.getVariable("aai.endpoint")).thenReturn(null) - when(mockExecution.getVariable("aai.auth")).thenReturn("9B2278E8B8E95F256A560719055F4DF3") - when(mockExecution.getVariable("mso.msoKey")).thenReturn("aa3871669d893c7fb8abbcda31b88b4f") - - StubResponseAAI.MockAAIVfModule() + when(mockExecution.getVariable("DAAIVfMod_vnfId")).thenReturn("vnfId1") try { - DeleteAAIVfModule obj = new DeleteAAIVfModule() - obj.deleteGenericVnf(mockExecution) + doThrow(new NotFoundException("Vnf Not Found")).when(client).delete(isA(AAIResourceUri.class)) + deleteAAIVfModule.deleteGenericVnf(mockExecution) } catch (Exception ex) { println " Test End - Handle catch-throw BpmnError()! " } @@ -152,39 +184,21 @@ class DeleteAAIVfModuleTest { @Test void testDeleteVfModule() { ExecutionEntity mockExecution = setupMock() - when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") - when(mockExecution.getVariable(prefix + "vfModuleEndpoint")).thenReturn("/aai/v9/cloud-infrastructure/volume-groups/volume-group/78987") - when(mockExecution.getVariable(prefix + "vfModRsrcVer")).thenReturn("0000020") - when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:28090") - when(mockExecution.getVariable("aai.auth")).thenReturn("9B2278E8B8E95F256A560719055F4DF3") - when(mockExecution.getVariable("mso.msoKey")).thenReturn("aa3871669d893c7fb8abbcda31b88b4f") - - stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/volume-groups/volume-group/78987/[?]resource-version=0000020")) - .willReturn(aResponse() - .withStatus(200) - .withHeader("Content-Type", "text/xml") - .withBodyFile(""))) - - DeleteAAIVfModule obj = new DeleteAAIVfModule() - obj.deleteVfModule(mockExecution) - + when(mockExecution.getVariable("DAAIVfMod_vnfId")).thenReturn("vnfId1") + when(mockExecution.getVariable("DAAIVfMod_vfModuleId")).thenReturn("vfModuleId1") + doNothing().when(client).delete(isA(AAIResourceUri.class)) + deleteAAIVfModule.deleteVfModule(mockExecution) Mockito.verify(mockExecution).setVariable(prefix + "deleteVfModuleResponseCode", 200) } @Test void testDeleteVfModuleEndpointNull() { ExecutionEntity mockExecution = setupMock() - when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") - when(mockExecution.getVariable(prefix + "vfModuleEndpoint")).thenReturn("/aai/v9/cloud-infrastructure/volume-groups/volume-group/78987") - when(mockExecution.getVariable(prefix + "vfModRsrcVer")).thenReturn("0000020") - when(mockExecution.getVariable("aai.endpoint")).thenReturn(null) - when(mockExecution.getVariable("aai.auth")).thenReturn("9B2278E8B8E95F256A560719055F4DF3") - when(mockExecution.getVariable("mso.msoKey")).thenReturn("aa3871669d893c7fb8abbcda31b88b4f") - - StubResponseAAI.MockAAIVfModule() + when(mockExecution.getVariable("DAAIVfMod_vnfId")).thenReturn("vnfId1") + when(mockExecution.getVariable("DAAIVfMod_vfModuleId")).thenReturn("vfModuleId1") try { - DeleteAAIVfModule obj = new DeleteAAIVfModule() - obj.deleteVfModule(mockExecution) + doThrow(new NotFoundException("Vnf Not Found")).when(client).delete(isA(AAIResourceUri.class)) + deleteAAIVfModule.deleteVfModule(mockExecution) } catch (Exception ex) { println " Test End - Handle catch-throw BpmnError()! " } diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/FalloutHandlerTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/FalloutHandlerTest.groovy index 016d968a12..25f62a6555 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/FalloutHandlerTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/FalloutHandlerTest.groovy @@ -72,7 +72,7 @@ class FalloutHandlerTest { ExecutionEntity mockExecution = mock(ExecutionEntity.class) when(mockExecution.getVariable("FalloutHandlerRequest")).thenReturn(falloutHandlerRequest) - when(mockExecution.getVariable("mso.adapters.db.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC"); + when(mockExecution.getVariable("mso.adapters.db.auth")).thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C"); when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7"); FalloutHandler falloutHandler = new FalloutHandler() diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy index 19638f42da..de44caa120 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy @@ -16,7 +16,7 @@ * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= - */ + */ package org.onap.so.bpmn.common.scripts @@ -29,16 +29,30 @@ import org.camunda.bpm.engine.repository.ProcessDefinition import org.junit.Rule import org.junit.rules.ExpectedException import org.junit.runner.RunWith -import org.mockito.runners.MockitoJUnitRunner +import org.mockito.junit.MockitoJUnitRunner +import org.onap.aai.domain.yang.GenericVnf +import org.onap.so.bpmn.mock.FileUtil +import org.onap.so.client.aai.AAIObjectPlurals +import org.onap.so.client.aai.AAIObjectType import org.onap.so.client.aai.AAIResourcesClient +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.client.graphinventory.entities.uri.Depth +import org.onap.so.constants.Defaults -@RunWith(MockitoJUnitRunner.class) +@RunWith(MockitoJUnitRunner.Silent.class) abstract class MsoGroovyTest { @Rule public ExpectedException thrown = ExpectedException.none() + protected ExecutionEntity mockExecution protected AAIResourcesClient client + protected AllottedResourceUtils allottedResourceUtils_MOCK + protected final String SEARCH_RESULT_AAI_WITH_RESULTDATA = + FileUtil.readResourceFile("__files/aai/searchResults.json") + protected static final String CLOUD_OWNER = Defaults.CLOUD_OWNER.toString(); protected void init(String procName){ mockExecution = setupMock(procName) @@ -49,14 +63,91 @@ abstract class MsoGroovyTest { protected ExecutionEntity setupMock(String procName) { ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class) when(mockProcessDefinition.getKey()).thenReturn(procName) + RepositoryService mockRepositoryService = mock(RepositoryService.class) when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition) when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn(procName) when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100") + ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class) when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService) + ExecutionEntity mockExecution = mock(ExecutionEntity.class) when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices) + + return mockExecution + } + + protected ExecutionEntity setupMockWithPrefix(String procName, String prefix) { + ExecutionEntity mockExecution = mock(ExecutionEntity.class) + + when(mockExecution.getVariable("prefix")).thenReturn(prefix) + + ProcessEngineServices processEngineServices = mock(ProcessEngineServices.class) + RepositoryService repositoryService = mock(RepositoryService.class) + ProcessDefinition processDefinition = mock(ProcessDefinition.class) + + when(mockExecution.getProcessEngineServices()).thenReturn(processEngineServices) + when(processEngineServices.getRepositoryService()).thenReturn(repositoryService) + when(repositoryService.getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(processDefinition) + when(processDefinition.getKey()).thenReturn(procName) + when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") return mockExecution } + + protected <T> Optional<T> getAAIObjectFromJson(Class<T> clazz , String file){ + String json = FileUtil.readResourceFile(file) + AAIResultWrapper resultWrapper = new AAIResultWrapper(json) + return resultWrapper.asBean(clazz) + } + + protected Optional<GenericVnf> mockAAIGenericVnf(String vnfId){ + return mockAAIGenericVnf(vnfId,"__files/aai/GenericVnf.json") + } + + protected Optional<GenericVnf> mockAAIGenericVnf(String vnfId,String file){ + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId) + AAIResourceUri resourceUriDepthOne = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE) + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,file); + when(client.get(GenericVnf.class, resourceUri)).thenReturn(genericVnf) + when(client.get(GenericVnf.class, resourceUriDepthOne)).thenReturn(genericVnf) + return genericVnf + } + + protected Optional<GenericVnf> mockAAIGenericVnfByName(String vnfName){ + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName) + AAIResourceUri resourceUriDepthOne = AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName).depth(Depth.ONE) + Optional<GenericVnf> genericVnf = getAAIObjectFromJson(GenericVnf.class,"__files/aai/GenericVnf.json"); + when(client.get(GenericVnf.class, resourceUri)).thenReturn(genericVnf) + when(client.get(GenericVnf.class, resourceUriDepthOne)).thenReturn(genericVnf) + return genericVnf + } + + protected void mockAAIGenericVnfNotFound(String vnfId){ + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE) + AAIResourceUri resourceUriDepthOne = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId).depth(Depth.ONE) + when(client.get(GenericVnf.class, resourceUri)).thenReturn(Optional.empty()) + when(client.get(GenericVnf.class, resourceUriDepthOne)).thenReturn(Optional.empty()) + } + + protected void mockAAIGenericVnfByNameNotFound(String vnfName){ + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName) + AAIResourceUri resourceUriDepthOne = AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName).depth(Depth.ONE) + when(client.get(GenericVnf.class, resourceUri)).thenReturn(Optional.empty()) + when(client.get(GenericVnf.class, resourceUriDepthOne)).thenReturn(Optional.empty()) + } + + protected AAIResultWrapper mockVolumeGroupWrapper(String region, String volumeGroupId, String file){ + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VOLUME_GROUP,CLOUD_OWNER, region,volumeGroupId) + String json = FileUtil.readResourceFile(file) + AAIResultWrapper resultWrapper = new AAIResultWrapper(json) + when(client.get(resourceUri)).thenReturn(resultWrapper) + return resultWrapper + } + + void initAR(String procName){ + init(procName) + allottedResourceUtils_MOCK = spy(new AllottedResourceUtils(mock(AbstractServiceTaskProcessor.class))) + when(allottedResourceUtils_MOCK.getAAIClient()).thenReturn(client) + } } diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoUtilsTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoUtilsTest.groovy index dfcf69a931..dfaf5d2140 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoUtilsTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoUtilsTest.groovy @@ -20,23 +20,15 @@ package org.onap.so.bpmn.common.scripts -// JUnit 4 -import org.junit.Test -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Rule; - -import static groovy.test.GroovyAssert.shouldFail - import groovy.util.slurpersupport.NodeChild +import org.junit.Before +import org.junit.Ignore +import org.junit.Test +import org.onap.so.bpmn.common.scripts.MsoUtils -import static groovy.test.GroovyAssert.assertTrue import static groovy.test.GroovyAssert.assertEquals -import static groovy.test.GroovyAssert.assertNotNull; - -import org.onap.so.bpmn.common.scripts.MsoUtils; -import org.apache.commons.lang3.* +// JUnit 4 class MsoUtilsTest { @@ -198,22 +190,20 @@ class MsoUtilsTest { @Test public void testGetBasicAuth(){ - def encodedAuth = utils.getBasicAuth("3E3CFA7BE2F6107AAD4AAA65F8976690","07a7159d3bf51a0e53be7a8f89699be7") + def encodedAuth = utils.getBasicAuth(utils.encrypt("myString","07a7159d3bf51a0e53be7a8f89699be7"),"07a7159d3bf51a0e53be7a8f89699be7") assertEquals("Basic bXlTdHJpbmc=", encodedAuth) } @Test public void testEncrypt(){ def encrypted = utils.encrypt("myString","07a7159d3bf51a0e53be7a8f89699be7") - assertEquals("3E3CFA7BE2F6107AAD4AAA65F8976690", encrypted) + assertEquals("myString", utils.decrypt(encrypted,"07a7159d3bf51a0e53be7a8f89699be7")) - //use to get value for urn properties - //println(utils.encrypt("password")) } @Test public void testDecrypt(){ - def decrypted = utils.decrypt("3E3CFA7BE2F6107AAD4AAA65F8976690", "07a7159d3bf51a0e53be7a8f89699be7") + def decrypted = utils.decrypt(utils.encrypt("myString","07a7159d3bf51a0e53be7a8f89699be7"), "07a7159d3bf51a0e53be7a8f89699be7") assertEquals("myString", decrypted) } diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1Test.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1Test.groovy index 1079bb48b3..e79075a1a1 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1Test.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1Test.groovy @@ -51,7 +51,7 @@ public class SDNCAdapterRestV1Test { when(mockExecution.getVariable("prefix")).thenReturn("SDNCREST_") when(mockExecution.getVariable("mso-request-id")).thenReturn("testMsoRequestId") when(mockExecution.getVariable("SDNCREST_Request")).thenReturn(sdncAdapterWorkflowRequest) - when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") + when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C") when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("mso.adapters.sdnc.rest.endpoint")).thenReturn("http://localhost:18080/adapters/rest/v1/sdnc/") @@ -88,7 +88,7 @@ public class SDNCAdapterRestV1Test { when(mockExecution.getVariable("prefix")).thenReturn("SDNCREST_") when(mockExecution.getVariable("mso-request-id")).thenReturn("testMsoRequestId") when(mockExecution.getVariable("SDNCREST_Request")).thenReturn(sdncAdapterWorkflowRequest) - when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") + when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C") when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("mso.adapters.sdnc.rest.endpoint")).thenReturn("http://localhost:18080/adapters/rest/v1/sdnc/") diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV2Test.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV2Test.groovy index d7fe0ee208..c9e3fead67 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV2Test.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV2Test.groovy @@ -51,7 +51,7 @@ public class SDNCAdapterRestV2Test { when(mockExecution.getVariable("prefix")).thenReturn("SDNCREST_") when(mockExecution.getVariable("mso-request-id")).thenReturn("testMsoRequestId") when(mockExecution.getVariable("SDNCREST_Request")).thenReturn(sdncAdapterWorkflowRequest) - when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") + when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C") when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("mso.adapters.sdnc.rest.endpoint")).thenReturn("http://localhost:18080/adapters/rest/v1/sdnc/") @@ -88,7 +88,7 @@ public class SDNCAdapterRestV2Test { when(mockExecution.getVariable("prefix")).thenReturn("SDNCREST_") when(mockExecution.getVariable("mso-request-id")).thenReturn("testMsoRequestId") when(mockExecution.getVariable("SDNCREST_Request")).thenReturn(sdncAdapterWorkflowRequest) - when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") + when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C") when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("mso.adapters.sdnc.rest.endpoint")).thenReturn("http://localhost:18080/adapters/rest/v1/sdnc/") diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterTest.groovy index 18d65d00d8..bf0f2d20c0 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterTest.groovy @@ -31,13 +31,13 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.MockitoAnnotations -import org.mockito.runners.MockitoJUnitRunner +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.internal.debugging.MockitoDebuggerImpl import org.onap.so.bpmn.common.scripts.SDNCAdapter; import org.onap.so.bpmn.mock.FileUtil -@RunWith(MockitoJUnitRunner.class) +@RunWith(MockitoJUnitRunner.Silent.class) public class SDNCAdapterTest { @Before @@ -821,7 +821,7 @@ def sdncAdapterResponseError = String sdncAdapterWorkflowRequest = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1/sdncadapterworkflowrequest.xml"); ExecutionEntity mockExecution = mock(ExecutionEntity.class) - when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") + when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C") when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("sdncAdapterWorkflowRequest")).thenReturn(sdncAdapterWorkflowRequest) when(mockExecution.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("http://someurl.someting.com:28080/mso/sdncAdapterCallbackServiceImpl") @@ -842,12 +842,12 @@ def sdncAdapterResponseError = verify(mockExecution).setVariable("sdncAdapterResponse","") verify(mockExecution).setVariable("asynchronousResponseTimeout",false) verify(mockExecution).setVariable("continueListening",false) - verify(mockExecution).setVariable("BasicAuthHeaderValue","Basic cGFzc3dvcmQ=") verify(mockExecution).setVariable("serviceConfigActivate",false) verify(mockExecution).setVariable("SDNCA_requestId", "745b1b50-e39e-4685-9cc8-c71f0bde8bf0") verify(mockExecution).setVariable("SDNCA_SuccessIndicator",false) - verify(mockExecution).setVariable("source","") verify(mockExecution).setVariable("SDNCA_InterimNotify",false) + verify(mockExecution).setVariable("BasicAuthHeaderValue","Basic dGVzdDp0ZXN0") + verify(mockExecution).setVariable("source","") verify(mockExecution).setVariable("sdncAdapterRequest", sdncAdapterRequest) } diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterUtilsTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterUtilsTest.groovy index 803e2b03a3..ef71e9073b 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterUtilsTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterUtilsTest.groovy @@ -26,6 +26,7 @@ import static org.mockito.Mockito.* import org.junit.Before import org.junit.Ignore import org.junit.Test +import org.junit.runner.RunWith import org.camunda.bpm.engine.delegate.BpmnError import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity import org.camunda.bpm.engine.delegate.DelegateExecution @@ -34,6 +35,9 @@ import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils import org.onap.so.bpmn.mock.FileUtil +import org.mockito.junit.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.Silent.class) public class SDNCAdapterUtilsTest { private def map @@ -59,14 +63,14 @@ public class SDNCAdapterUtilsTest { // svcex gets its variables from "map" when(svcex.getVariable(any())).thenAnswer( { invocation -> - return map.get(invocation.getArgumentAt(0, String.class)) }) + return map.get(invocation.getArgument(0)) }) // svcex puts its variables into "map" when(svcex.setVariable(any(), any())).thenAnswer( { invocation -> return map.put( - invocation.getArgumentAt(0, String.class), - invocation.getArgumentAt(1, String.class)) }) + invocation.getArgument(0), + invocation.getArgument(1)) }) map.put("isDebugLogEnabled", "true") map.put("prefix", "mypfx-") diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy index 407ffa2915..cb9bb5c541 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy @@ -20,34 +20,37 @@ package org.onap.so.bpmn.common.scripts -import com.github.tomakehurst.wiremock.junit.WireMockRule -import org.camunda.bpm.engine.ProcessEngineServices -import org.camunda.bpm.engine.RepositoryService +import org.junit.rules.ExpectedException + +import static org.mockito.Mockito.* + +import javax.ws.rs.NotFoundException + +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.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.core.WorkflowException -import org.onap.so.bpmn.mock.FileUtil -import org.onap.so.bpmn.mock.StubResponseAAI +import org.mockito.Spy +import org.onap.so.client.aai.AAIObjectType +import org.onap.so.client.aai.entities.uri.AAIResourceUri +import org.onap.so.client.aai.entities.uri.AAIUriFactory +import org.onap.aai.domain.yang.VfModule -import static org.mockito.Mockito.* +import com.github.tomakehurst.wiremock.junit.WireMockRule -@RunWith(MockitoJUnitRunner.class) -@Ignore -class UpdateAAIVfModuleTest { +class UpdateAAIVfModuleTest extends MsoGroovyTest { def prefix = "UAAIVfMod_" @Rule + public ExpectedException thrown = ExpectedException.none(); + @Spy + UpdateAAIVfModule updateAAIVfModule; + + @Rule public WireMockRule wireMockRule = new WireMockRule(28090) @Captor @@ -55,121 +58,92 @@ class UpdateAAIVfModuleTest { @Before void init() throws IOException { - MockitoAnnotations.initMocks(this); + super.init("UpdateAAIVfModule") + when(updateAAIVfModule.getAAIClient()).thenReturn(client) } @Test void testGetVfModule() { - ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable("prefix")).thenReturn(prefix) - when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(prefix + "vnfId")).thenReturn("skask") when(mockExecution.getVariable(prefix + "vfModuleId")).thenReturn("supercool") - - when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:28090") - when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn("http://org.openecomp.aai.inventory/") - when(mockExecution.getVariable("mso.workflow.custom.UpdateAAIVfModule.aai.version")).thenReturn('8') - - StubResponseAAI.MockAAIVfModule() - UpdateAAIVfModule obj = new UpdateAAIVfModule() - obj.getVfModule(mockExecution) - + VfModule vfModule = new VfModule() + vfModule.setVfModuleId("supercool") + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "skask", "supercool"); + when(client.get(VfModule.class,resourceUri)).thenReturn(Optional.of(vfModule)) + updateAAIVfModule.getVfModule(mockExecution) verify(mockExecution).setVariable(prefix + "getVfModuleResponseCode", 200) + verify(mockExecution).setVariable(prefix + "getVfModuleResponse", vfModule) } @Test - void testGetVfModuleEndpointNull() { - ExecutionEntity mockExecution = setupMock() + void testGetVfModuleNotFound() { when(mockExecution.getVariable("prefix")).thenReturn(prefix) - when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(prefix + "vnfId")).thenReturn("skask") when(mockExecution.getVariable(prefix + "vfModuleId")).thenReturn("supercool") + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "skask", "supercool"); + when(client.get(VfModule.class,resourceUri)).thenReturn(Optional.empty()) + updateAAIVfModule.getVfModule(mockExecution) + verify(mockExecution).setVariable(prefix + "getVfModuleResponseCode", 404) + verify(mockExecution).setVariable(prefix + "getVfModuleResponse", "VF Module not found in AAI") + } - when(mockExecution.getVariable("aai.endpoint")).thenReturn(null) - when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn("http://org.openecomp.aai.inventory/") - when(mockExecution.getVariable("mso.workflow.custom.UpdateAAIVfModule.aai.version")).thenReturn('8') - - StubResponseAAI.MockAAIVfModule() - try { - UpdateAAIVfModule obj = new UpdateAAIVfModule() - obj.getVfModule(mockExecution) - } catch (Exception ex) { - println " Test End - Handle catch-throw BpmnError()! " - } - - Mockito.verify(mockExecution, times(3)).setVariable(captor.capture(), captor.capture()) - WorkflowException workflowException = captor.getAllValues().get(1) - Assert.assertEquals(9999, workflowException.getErrorCode()) - Assert.assertEquals("org.apache.http.client.ClientProtocolException", workflowException.getErrorMessage()) + @Test + void testGetVfModuleException() { + when(mockExecution.getVariable("prefix")).thenReturn(prefix) + when(mockExecution.getVariable(prefix + "vnfId")).thenReturn("skask") + when(mockExecution.getVariable(prefix + "vfModuleId")).thenReturn("supercool") + AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, "skask", "supercool"); + when(client.get(VfModule.class,resourceUri)).thenThrow(new NullPointerException("Error from AAI client")) + updateAAIVfModule.getVfModule(mockExecution) + verify(mockExecution).setVariable(prefix + "getVfModuleResponseCode", 500) + verify(mockExecution).setVariable(prefix + "getVfModuleResponse", "AAI GET Failed:"+"Error from AAI client") } + @Test void testUpdateVfModule() { - ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable("prefix")).thenReturn(prefix) when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(prefix + "vnfId")).thenReturn("skask") when(mockExecution.getVariable(prefix + "vfModuleId")).thenReturn("supercool") - - when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:28090") - when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn("http://org.openecomp.aai.inventory/") - when(mockExecution.getVariable("mso.workflow.custom.UpdateAAIVfModule.aai.version")).thenReturn('8') - - String getVfModuleResponse = FileUtil.readResourceFile("__files/VfModularity/GenericVnf.xml") - when(mockExecution.getVariable(prefix + "getVfModuleResponse")).thenReturn(getVfModuleResponse) - StubResponseAAI.MockAAIVfModule() - UpdateAAIVfModule obj = new UpdateAAIVfModule() - obj.updateVfModule(mockExecution) - - verify(mockExecution).setVariable(prefix + "updateVfModuleResponseCode", 200) + VfModule vfModule = new VfModule() + vfModule.setVfModuleId("supercool") + vfModule.setResourceVersion("12345") + when(mockExecution.getVariable(prefix + "getVfModuleResponse")).thenReturn(vfModule) + doNothing().when(client).update(isA(AAIResourceUri.class), anyObject()) + updateAAIVfModule.updateVfModule(mockExecution) } @Test - void testUpdateVfModuleEndpointNull() { - ExecutionEntity mockExecution = setupMock() + void testUpdateVfModuleNotFound() throws BpmnError { when(mockExecution.getVariable("prefix")).thenReturn(prefix) when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(prefix + "vnfId")).thenReturn("skask") when(mockExecution.getVariable(prefix + "vfModuleId")).thenReturn("supercool") - - when(mockExecution.getVariable("aai.endpoint")).thenReturn(null) - when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn("http://org.openecomp.aai.inventory/") - when(mockExecution.getVariable("mso.workflow.custom.UpdateAAIVfModule.aai.version")).thenReturn('8') - - String getVfModuleResponse = FileUtil.readResourceFile("__files/VfModularity/GenericVnf.xml") - when(mockExecution.getVariable(prefix + "getVfModuleResponse")).thenReturn(getVfModuleResponse) - StubResponseAAI.MockAAIVfModule() - try { - UpdateAAIVfModule obj = new UpdateAAIVfModule() - obj.updateVfModule(mockExecution) - } catch (Exception ex) { - println " Test End - Handle catch-throw BpmnError()! " - } - - Mockito.verify(mockExecution, times(3)).setVariable(captor.capture(), captor.capture()) - WorkflowException workflowException = captor.getAllValues().get(1) - Assert.assertEquals(9999, workflowException.getErrorCode()) - Assert.assertEquals("org.apache.http.client.ClientProtocolException", workflowException.getErrorMessage()) + VfModule vfModule = new VfModule() + vfModule.setVfModuleId("supercool") + vfModule.setResourceVersion("12345") + when(mockExecution.getVariable(prefix + "getVfModuleResponse")).thenReturn(vfModule) + doThrow(new NotFoundException("Vf Module not found")).when(client).update(isA(AAIResourceUri.class), anyObject()) + thrown.expect(BpmnError.class) + updateAAIVfModule.updateVfModule(mockExecution) } - private static ExecutionEntity setupMock() { - ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class) - when(mockProcessDefinition.getKey()).thenReturn("UpdateAAIVfModule") - RepositoryService mockRepositoryService = mock(RepositoryService.class) - when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition) - when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("UpdateAAIVfModule") - 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("UpdateAAIVfModule") - when(mockExecution.getProcessInstanceId()).thenReturn("UpdateAAIVfModule") - when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices) - when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition) - - return mockExecution + + @Test + void testUpdateVfModuleException() { + when(mockExecution.getVariable("prefix")).thenReturn(prefix) + when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") + when(mockExecution.getVariable(prefix + "vnfId")).thenReturn("skask") + when(mockExecution.getVariable(prefix + "vfModuleId")).thenReturn("supercool") + VfModule vfModule = new VfModule() + vfModule.setVfModuleId("supercool") + vfModule.setResourceVersion("12345") + when(mockExecution.getVariable(prefix + "getVfModuleResponse")).thenReturn(vfModule) + doThrow(new IllegalStateException("Error in AAI client")).when(client).update(isA(AAIResourceUri.class), anyObject()) + thrown.expect(BpmnError.class) + updateAAIVfModule.updateVfModule(mockExecution) + } } diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1Test.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1Test.groovy index 22c8e297ca..77edd2dc6d 100644 --- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1Test.groovy +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1Test.groovy @@ -50,7 +50,7 @@ public class VnfAdapterRestV1Test { when(mockExecution.getVariable("prefix")).thenReturn("VNFREST_") when(mockExecution.getVariable("mso-request-id")).thenReturn("testMsoRequestId") when(mockExecution.getVariable("VNFREST_Request")).thenReturn(sdncAdapterWorkflowRequest) - when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") + when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C") when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("mso.adapters.vnf.rest.endpoint")).thenReturn("http://localhost:18080/vnfs/rest/v1/vnfs") |