From b098903d536b2e6b6b76a310035f9e0950817f50 Mon Sep 17 00:00:00 2001 From: Lathish Date: Sat, 30 Mar 2019 16:41:10 +0000 Subject: Added ETSI Delete VNF BB Change-Id: Ie82734f25468b75d9b4ab3096639a9afdf6fe2c1 Issue-ID: SO-1632 Signed-off-by: Lathish --- .../adapter/vnfm/tasks/EtsiVnfDeleteTaskTest.java | 111 ++++++++++ .../vnfm/tasks/StubbedBuildingBlockExecution.java | 100 +++++++++ .../vnfm/tasks/VnfmAdapterCreateVnfTaskTest.java | 237 ++++++++------------- .../tasks/VnfmAdapterServiceProviderImplTest.java | 77 ++++++- 4 files changed, 366 insertions(+), 159 deletions(-) create mode 100644 bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/EtsiVnfDeleteTaskTest.java create mode 100644 bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/StubbedBuildingBlockExecution.java (limited to 'bpmn/so-bpmn-tasks/src/test/java') diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/EtsiVnfDeleteTaskTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/EtsiVnfDeleteTaskTest.java new file mode 100644 index 0000000000..5c76018ced --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/EtsiVnfDeleteTaskTest.java @@ -0,0 +1,111 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import java.util.UUID; +import org.junit.Test; +import org.mockito.Mock; +import org.onap.so.bpmn.BaseTaskTest; +import org.onap.so.bpmn.common.BuildingBlockExecution; +import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; +import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock; +import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey; +import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext; +import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf; +import org.onap.vnfmadapter.v1.model.DeleteVnfResponse; +import com.google.common.base.Optional; + +/** + * + * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) + * + */ +public class EtsiVnfDeleteTaskTest extends BaseTaskTest { + + private static final String MODEL_INSTANCE_NAME = "MODEL_INSTANCE_NAME"; + + private static final String VNF_ID = UUID.randomUUID().toString(); + + private static final String VNF_NAME = "VNF_NAME"; + + private static final String JOB_ID = UUID.randomUUID().toString(); + + @Mock + private VnfmAdapterServiceProvider mockedVnfmAdapterServiceProvider; + + @Mock + private GeneralBuildingBlock buildingBlock; + + @Mock + private RequestContext requestContext; + + private final BuildingBlockExecution stubbedxecution = new StubbedBuildingBlockExecution(); + + @Test + public void testInvokeVnfmAdapter() throws Exception { + final EtsiVnfDeleteTask objUnderTest = getEtsiVnfDeleteTask(); + when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf()); + when(mockedVnfmAdapterServiceProvider.invokeDeleteRequest(eq(VNF_ID))).thenReturn(getDeleteVnfResponse()); + objUnderTest.invokeVnfmAdapter(stubbedxecution); + assertNotNull(stubbedxecution.getVariable(Constants.DELETE_VNF_RESPONSE_PARAM_NAME)); + } + + @Test + public void testInvokeVnfmAdapterException() throws Exception { + final EtsiVnfDeleteTask objUnderTest = getEtsiVnfDeleteTask(); + when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf()); + when(mockedVnfmAdapterServiceProvider.invokeDeleteRequest(eq(VNF_ID))).thenReturn(Optional.absent()); + objUnderTest.invokeVnfmAdapter(stubbedxecution); + assertNull(stubbedxecution.getVariable(Constants.DELETE_VNF_RESPONSE_PARAM_NAME)); + verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1212), + any(Exception.class)); + } + + private Optional getDeleteVnfResponse() { + final DeleteVnfResponse response = new DeleteVnfResponse(); + response.setJobId(JOB_ID); + return Optional.of(response); + } + + private GenericVnf getGenericVnf() { + final GenericVnf genericVnf = new GenericVnf(); + genericVnf.setVnfId(VNF_ID); + genericVnf.setModelInfoGenericVnf(getModelInfoGenericVnf()); + genericVnf.setVnfName(VNF_NAME); + return genericVnf; + } + + private ModelInfoGenericVnf getModelInfoGenericVnf() { + final ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf(); + modelInfoGenericVnf.setModelInstanceName(MODEL_INSTANCE_NAME); + return modelInfoGenericVnf; + } + + private EtsiVnfDeleteTask getEtsiVnfDeleteTask() { + return new EtsiVnfDeleteTask(exceptionUtil, extractPojosForBB, mockedVnfmAdapterServiceProvider); + } +} diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/StubbedBuildingBlockExecution.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/StubbedBuildingBlockExecution.java new file mode 100644 index 0000000000..260585d208 --- /dev/null +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/StubbedBuildingBlockExecution.java @@ -0,0 +1,100 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks; + +import java.io.Serializable; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import org.onap.so.bpmn.common.BuildingBlockExecution; +import org.onap.so.bpmn.common.exceptions.RequiredExecutionVariableExeception; +import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; +import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock; +import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey; + +/** + * + * @author Lathishbabu Ganesan (lathishbabu.ganesan@est.tech) + * + */ +public class StubbedBuildingBlockExecution implements BuildingBlockExecution { + + private static final String CLOUD_OWNER = "CLOUD_OWNER"; + private static final String LCP_CLOUD_REGIONID = "RegionOnce"; + private static final String TENANT_ID = UUID.randomUUID().toString(); + private final Map execution = new HashMap<>(); + private final GeneralBuildingBlock generalBuildingBlock; + + StubbedBuildingBlockExecution() { + generalBuildingBlock = getGeneralBuildingBlockValue(); + } + + @Override + public GeneralBuildingBlock getGeneralBuildingBlock() { + return generalBuildingBlock; + } + + @SuppressWarnings("unchecked") + @Override + public T getVariable(final String key) { + return (T) execution.get(key); + } + + @Override + public T getRequiredVariable(final String key) throws RequiredExecutionVariableExeception { + return null; + } + + @Override + public void setVariable(final String key, final Serializable value) { + execution.put(key, value); + } + + @Override + public Map getLookupMap() { + return Collections.emptyMap(); + } + + @Override + public String getFlowToBeCalled() { + return null; + } + + public static String getTenantId() { + return TENANT_ID; + } + + private GeneralBuildingBlock getGeneralBuildingBlockValue() { + final GeneralBuildingBlock buildingBlock = new GeneralBuildingBlock(); + buildingBlock.setCloudRegion(getCloudRegion()); + return buildingBlock; + } + + private CloudRegion getCloudRegion() { + final CloudRegion cloudRegion = new CloudRegion(); + cloudRegion.setCloudOwner(CLOUD_OWNER); + cloudRegion.setLcpCloudRegionId(LCP_CLOUD_REGIONID); + cloudRegion.setTenantId(TENANT_ID); + return cloudRegion; + } + +} diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterCreateVnfTaskTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterCreateVnfTaskTest.java index 20abe6ece1..22c4c15079 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterCreateVnfTaskTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterCreateVnfTaskTest.java @@ -30,28 +30,19 @@ import static org.mockito.Mockito.when; import static org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.Constants.CREATE_VNF_REQUEST_PARAM_NAME; import static org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.Constants.CREATE_VNF_RESPONSE_PARAM_NAME; import static org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.Constants.INPUT_PARAMETER; - -import java.io.Serializable; import java.util.Collections; -import java.util.HashMap; -import java.util.Map; import java.util.UUID; - import org.junit.Test; import org.mockito.Mock; import org.onap.so.bpmn.BaseTaskTest; import org.onap.so.bpmn.common.BuildingBlockExecution; -import org.onap.so.bpmn.common.exceptions.RequiredExecutionVariableExeception; import org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.utils.InputParameter; -import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion; import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf; -import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock; import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf; import org.onap.vnfmadapter.v1.model.CreateVnfRequest; import org.onap.vnfmadapter.v1.model.CreateVnfResponse; import org.onap.vnfmadapter.v1.model.Tenant; - import com.google.common.base.Optional; @@ -60,191 +51,131 @@ import com.google.common.base.Optional; */ public class VnfmAdapterCreateVnfTaskTest extends BaseTaskTest { - private static final String MODEL_INSTANCE_NAME = "MODEL_INSTANCE_NAME"; - - private static final String CLOUD_OWNER = "CLOUD_OWNER"; - - private static final String LCP_CLOUD_REGIONID = "RegionOnce"; - - private static final String TENANT_ID = UUID.randomUUID().toString(); - - private static final String VNF_ID = UUID.randomUUID().toString(); - - private static final String VNF_NAME = "VNF_NAME"; - - private static final String JOB_ID = UUID.randomUUID().toString(); - - @Mock - private VnfmAdapterServiceProvider mockedVnfmAdapterServiceProvider; - - private final BuildingBlockExecution stubbedxecution = new StubbedBuildingBlockExecution(); - - @Test - public void testBuildCreateVnfRequest_withValidValues_storesRequestInExecution() throws Exception { - - final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); - stubbedxecution.setVariable(INPUT_PARAMETER, - new InputParameter(Collections.emptyMap(), Collections.emptyList())); - - when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf()); - objUnderTest.buildCreateVnfRequest(stubbedxecution); - - final CreateVnfRequest actual = stubbedxecution.getVariable(CREATE_VNF_REQUEST_PARAM_NAME); - assertNotNull(actual); - assertEquals(VNF_NAME + "." + MODEL_INSTANCE_NAME, actual.getName()); - - final Tenant actualTenant = actual.getTenant(); - assertEquals(CLOUD_OWNER, actualTenant.getCloudOwner()); - assertEquals(LCP_CLOUD_REGIONID, actualTenant.getRegionName()); - assertEquals(TENANT_ID, actualTenant.getTenantId()); - - } + private static final String MODEL_INSTANCE_NAME = "MODEL_INSTANCE_NAME"; - @Test - public void testBuildCreateVnfRequest_extractPojosForBBThrowsException_exceptionBuilderCalled() throws Exception { + private static final String CLOUD_OWNER = "CLOUD_OWNER"; - final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); + private static final String LCP_CLOUD_REGIONID = "RegionOnce"; - when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenThrow(RuntimeException.class); + private static final String VNF_ID = UUID.randomUUID().toString(); - objUnderTest.buildCreateVnfRequest(stubbedxecution); + private static final String VNF_NAME = "VNF_NAME"; - final CreateVnfRequest actual = stubbedxecution.getVariable(CREATE_VNF_REQUEST_PARAM_NAME); + private static final String JOB_ID = UUID.randomUUID().toString(); - assertNull(actual); - verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1200), - any(Exception.class)); + @Mock + private VnfmAdapterServiceProvider mockedVnfmAdapterServiceProvider; - } + private final BuildingBlockExecution stubbedxecution = new StubbedBuildingBlockExecution(); - @Test - public void testInvokeVnfmAdapter_validValues_storesResponseInExecution() throws Exception { + @Test + public void testBuildCreateVnfRequest_withValidValues_storesRequestInExecution() throws Exception { - final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); + final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); + stubbedxecution.setVariable(INPUT_PARAMETER, new InputParameter(Collections.emptyMap(), Collections.emptyList())); - stubbedxecution.setVariable(CREATE_VNF_REQUEST_PARAM_NAME, new CreateVnfRequest()); + when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf()); + objUnderTest.buildCreateVnfRequest(stubbedxecution); - when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf()); - when(mockedVnfmAdapterServiceProvider.invokeCreateInstantiationRequest(eq(VNF_ID), any(CreateVnfRequest.class))) - .thenReturn(getCreateVnfResponse()); + final CreateVnfRequest actual = stubbedxecution.getVariable(CREATE_VNF_REQUEST_PARAM_NAME); + assertNotNull(actual); + assertEquals(VNF_NAME + "." + MODEL_INSTANCE_NAME, actual.getName()); - objUnderTest.invokeVnfmAdapter(stubbedxecution); + final Tenant actualTenant = actual.getTenant(); + assertEquals(CLOUD_OWNER, actualTenant.getCloudOwner()); + assertEquals(LCP_CLOUD_REGIONID, actualTenant.getRegionName()); + assertEquals(StubbedBuildingBlockExecution.getTenantId(), actualTenant.getTenantId()); - assertNotNull(stubbedxecution.getVariable(CREATE_VNF_RESPONSE_PARAM_NAME)); - } + } - @Test - public void testInvokeVnfmAdapter_invalidValues_storesResponseInExecution() throws Exception { + @Test + public void testBuildCreateVnfRequest_extractPojosForBBThrowsException_exceptionBuilderCalled() throws Exception { - final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); + final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); - stubbedxecution.setVariable(CREATE_VNF_REQUEST_PARAM_NAME, new CreateVnfRequest()); + when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenThrow(RuntimeException.class); - when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf()); - when(mockedVnfmAdapterServiceProvider.invokeCreateInstantiationRequest(eq(VNF_ID), any(CreateVnfRequest.class))) - .thenReturn(Optional.absent()); + objUnderTest.buildCreateVnfRequest(stubbedxecution); - objUnderTest.invokeVnfmAdapter(stubbedxecution); + final CreateVnfRequest actual = stubbedxecution.getVariable(CREATE_VNF_REQUEST_PARAM_NAME); - assertNull(stubbedxecution.getVariable(CREATE_VNF_RESPONSE_PARAM_NAME)); - verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1202), - any(Exception.class)); - } + assertNull(actual); + verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1200), + any(Exception.class)); + } - @Test - public void testInvokeVnfmAdapter_extractPojosForBBThrowsException_exceptionBuilderCalled() throws Exception { + @Test + public void testInvokeVnfmAdapter_validValues_storesResponseInExecution() throws Exception { - final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); + final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); - when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenThrow(RuntimeException.class); + stubbedxecution.setVariable(CREATE_VNF_REQUEST_PARAM_NAME, new CreateVnfRequest()); - objUnderTest.invokeVnfmAdapter(stubbedxecution); + when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf()); + when(mockedVnfmAdapterServiceProvider.invokeCreateInstantiationRequest(eq(VNF_ID), any(CreateVnfRequest.class))) + .thenReturn(getCreateVnfResponse()); - assertNull(stubbedxecution.getVariable(CREATE_VNF_RESPONSE_PARAM_NAME)); - verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1202), - any(Exception.class)); + objUnderTest.invokeVnfmAdapter(stubbedxecution); - } + assertNotNull(stubbedxecution.getVariable(CREATE_VNF_RESPONSE_PARAM_NAME)); + } - private Optional getCreateVnfResponse() { - final CreateVnfResponse response = new CreateVnfResponse(); - response.setJobId(JOB_ID); - return Optional.of(response); - } + @Test + public void testInvokeVnfmAdapter_invalidValues_storesResponseInExecution() throws Exception { - private GenericVnf getGenericVnf() { - final GenericVnf genericVnf = new GenericVnf(); - genericVnf.setVnfId(VNF_ID); - genericVnf.setModelInfoGenericVnf(getModelInfoGenericVnf()); - genericVnf.setVnfName(VNF_NAME); - return genericVnf; - } + final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); - private ModelInfoGenericVnf getModelInfoGenericVnf() { - final ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf(); - modelInfoGenericVnf.setModelInstanceName(MODEL_INSTANCE_NAME); - return modelInfoGenericVnf; - } + stubbedxecution.setVariable(CREATE_VNF_REQUEST_PARAM_NAME, new CreateVnfRequest()); - private VnfmAdapterCreateVnfTask getEtsiVnfInstantiateTask() { - return new VnfmAdapterCreateVnfTask(exceptionUtil, extractPojosForBB, mockedVnfmAdapterServiceProvider); - } + when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf()); + when(mockedVnfmAdapterServiceProvider.invokeCreateInstantiationRequest(eq(VNF_ID), any(CreateVnfRequest.class))) + .thenReturn(Optional.absent()); - private class StubbedBuildingBlockExecution implements BuildingBlockExecution { + objUnderTest.invokeVnfmAdapter(stubbedxecution); - private final Map execution = new HashMap<>(); - private final GeneralBuildingBlock generalBuildingBlock; + assertNull(stubbedxecution.getVariable(CREATE_VNF_RESPONSE_PARAM_NAME)); + verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1202), + any(Exception.class)); + } - StubbedBuildingBlockExecution() { - generalBuildingBlock = getGeneralBuildingBlockValue(); - } - @Override - public GeneralBuildingBlock getGeneralBuildingBlock() { - return generalBuildingBlock; - } + @Test + public void testInvokeVnfmAdapter_extractPojosForBBThrowsException_exceptionBuilderCalled() throws Exception { - @SuppressWarnings("unchecked") - @Override - public T getVariable(final String key) { - return (T) execution.get(key); - } + final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask(); - @Override - public T getRequiredVariable(final String key) throws RequiredExecutionVariableExeception { - return null; - } + when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenThrow(RuntimeException.class); - @Override - public void setVariable(final String key, final Serializable value) { - execution.put(key, value); - } + objUnderTest.invokeVnfmAdapter(stubbedxecution); - @Override - public Map getLookupMap() { - return Collections.emptyMap(); - } + assertNull(stubbedxecution.getVariable(CREATE_VNF_RESPONSE_PARAM_NAME)); + verify(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1202), + any(Exception.class)); - @Override - public String getFlowToBeCalled() { - return null; - } + } - private GeneralBuildingBlock getGeneralBuildingBlockValue() { - final GeneralBuildingBlock buildingBlock = new GeneralBuildingBlock(); - buildingBlock.setCloudRegion(getCloudRegion()); - return buildingBlock; - } + private Optional getCreateVnfResponse() { + final CreateVnfResponse response = new CreateVnfResponse(); + response.setJobId(JOB_ID); + return Optional.of(response); + } - private CloudRegion getCloudRegion() { - final CloudRegion cloudRegion = new CloudRegion(); - cloudRegion.setCloudOwner(CLOUD_OWNER); - cloudRegion.setLcpCloudRegionId(LCP_CLOUD_REGIONID); - cloudRegion.setTenantId(TENANT_ID); - return cloudRegion; - } + private GenericVnf getGenericVnf() { + final GenericVnf genericVnf = new GenericVnf(); + genericVnf.setVnfId(VNF_ID); + genericVnf.setModelInfoGenericVnf(getModelInfoGenericVnf()); + genericVnf.setVnfName(VNF_NAME); + return genericVnf; + } - } + private ModelInfoGenericVnf getModelInfoGenericVnf() { + final ModelInfoGenericVnf modelInfoGenericVnf = new ModelInfoGenericVnf(); + modelInfoGenericVnf.setModelInstanceName(MODEL_INSTANCE_NAME); + return modelInfoGenericVnf; + } + private VnfmAdapterCreateVnfTask getEtsiVnfInstantiateTask() { + return new VnfmAdapterCreateVnfTask(exceptionUtil, extractPojosForBB, mockedVnfmAdapterServiceProvider); + } } diff --git a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterServiceProviderImplTest.java b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterServiceProviderImplTest.java index 0f443916c4..79894d513d 100644 --- a/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterServiceProviderImplTest.java +++ b/bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/adapter/vnfm/tasks/VnfmAdapterServiceProviderImplTest.java @@ -28,23 +28,18 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; import static org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.TestConstants.DUMMY_GENERIC_VND_ID; import static org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.TestConstants.getVnfmBasicHttpConfigProvider; - import java.util.UUID; - import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.VnfmAdapterServiceProvider; -import org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.VnfmAdapterServiceProviderImpl; -import org.onap.so.bpmn.infrastructure.adapter.vnfm.tasks.VnfmAdapterUrlProvider; import org.onap.so.rest.exceptions.RestProcessingException; import org.onap.so.rest.service.HttpRestServiceProvider; import org.onap.vnfmadapter.v1.model.CreateVnfRequest; import org.onap.vnfmadapter.v1.model.CreateVnfResponse; +import org.onap.vnfmadapter.v1.model.DeleteVnfResponse; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; - import com.google.common.base.Optional; @@ -66,6 +61,9 @@ public class VnfmAdapterServiceProviderImplTest { @Mock private ResponseEntity mockedResponseEntity; + @Mock + private ResponseEntity deleteVnfResponse; + @Test public void testInvokeCreateInstantiationRequest_httpServiceProviderReturnsStatusAcceptedWithBody_validResponse() { @@ -120,6 +118,67 @@ public class VnfmAdapterServiceProviderImplTest { } + @Test + public void testInvokeDeleteRequest() { + when(mockedHttpServiceProvider.deleteHttpRequest(anyString(), eq(DeleteVnfResponse.class))) + .thenReturn(deleteVnfResponse); + when(deleteVnfResponse.getStatusCode()).thenReturn(HttpStatus.ACCEPTED); + when(deleteVnfResponse.hasBody()).thenReturn(true); + final DeleteVnfResponse response = getDeleteVnfResponse(DUMMY_JOB_ID); + when(deleteVnfResponse.getBody()).thenReturn(response); + final VnfmAdapterServiceProvider objUnderTest = + new VnfmAdapterServiceProviderImpl(getVnfmAdapterUrlProvider(), mockedHttpServiceProvider); + final Optional actual = objUnderTest.invokeDeleteRequest(DUMMY_GENERIC_VND_ID); + assertTrue(actual.isPresent()); + } + + @Test + public void testInvokeDeleteRequestNotAccepted() { + when(mockedHttpServiceProvider.deleteHttpRequest(anyString(), eq(DeleteVnfResponse.class))) + .thenReturn(deleteVnfResponse); + when(deleteVnfResponse.getStatusCode()).thenReturn(HttpStatus.BAD_GATEWAY); + final VnfmAdapterServiceProvider objUnderTest = + new VnfmAdapterServiceProviderImpl(getVnfmAdapterUrlProvider(), mockedHttpServiceProvider); + final Optional actual = objUnderTest.invokeDeleteRequest(DUMMY_GENERIC_VND_ID); + assertFalse(actual.isPresent()); + } + + @Test + public void testInvokeDeleteRequestNoBody() { + when(mockedHttpServiceProvider.deleteHttpRequest(anyString(), eq(DeleteVnfResponse.class))) + .thenReturn(deleteVnfResponse); + when(deleteVnfResponse.getStatusCode()).thenReturn(HttpStatus.ACCEPTED); + when(deleteVnfResponse.hasBody()).thenReturn(false); + final VnfmAdapterServiceProvider objUnderTest = + new VnfmAdapterServiceProviderImpl(getVnfmAdapterUrlProvider(), mockedHttpServiceProvider); + final Optional actual = objUnderTest.invokeDeleteRequest(DUMMY_GENERIC_VND_ID); + assertFalse(actual.isPresent()); + } + + @Test + public void testInvokeDeleteRequestNoJobId() { + when(mockedHttpServiceProvider.deleteHttpRequest(anyString(), eq(DeleteVnfResponse.class))) + .thenReturn(deleteVnfResponse); + when(deleteVnfResponse.getStatusCode()).thenReturn(HttpStatus.ACCEPTED); + when(deleteVnfResponse.hasBody()).thenReturn(true); + final DeleteVnfResponse response = getDeleteVnfResponse(""); + when(deleteVnfResponse.getBody()).thenReturn(response); + final VnfmAdapterServiceProvider objUnderTest = + new VnfmAdapterServiceProviderImpl(getVnfmAdapterUrlProvider(), mockedHttpServiceProvider); + final Optional actual = objUnderTest.invokeDeleteRequest(DUMMY_GENERIC_VND_ID); + assertFalse(actual.isPresent()); + } + + @Test + public void testInvokeDeleteRequestException() { + when(mockedHttpServiceProvider.deleteHttpRequest(anyString(), eq(DeleteVnfResponse.class))) + .thenThrow(RestProcessingException.class); + final VnfmAdapterServiceProvider objUnderTest = + new VnfmAdapterServiceProviderImpl(getVnfmAdapterUrlProvider(), mockedHttpServiceProvider); + final Optional actual = objUnderTest.invokeDeleteRequest(DUMMY_GENERIC_VND_ID); + assertFalse(actual.isPresent()); + } + private void assertWithJobId(final String jobId) { when(mockedHttpServiceProvider.postHttpRequest(eq(CREATE_VNF_REQUEST), anyString(), @@ -160,6 +219,12 @@ public class VnfmAdapterServiceProviderImplTest { return response; } + private DeleteVnfResponse getDeleteVnfResponse(final String jobId) { + final DeleteVnfResponse response = new DeleteVnfResponse(); + response.setJobId(jobId); + return response; + } + private VnfmAdapterUrlProvider getVnfmAdapterUrlProvider() { return new VnfmAdapterUrlProvider(getVnfmBasicHttpConfigProvider()); -- cgit 1.2.3-korg