From f0884915f5249d60f7874a68593cfa4cc1e84681 Mon Sep 17 00:00:00 2001 From: Lukasz Muszkieta Date: Tue, 23 Oct 2018 15:24:39 +0200 Subject: Add junit tests for CreateAAIVfModule Change-Id: Ib879988d06f1956b1ce6801c62c5d5ce8712704a Issue-ID: SO-784 Signed-off-by: Lukasz Muszkieta --- .../common/scripts/CreateAAIVfModuleTest.groovy | 205 +++++++++++++++++++++ .../so/bpmn/common/scripts/MsoGroovyTest.groovy | 95 +--------- 2 files changed, 207 insertions(+), 93 deletions(-) create mode 100644 bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleTest.groovy (limited to 'bpmn/MSOCommonBPMN/src/test') 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 new file mode 100644 index 0000000000..999a12c869 --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleTest.groovy @@ -0,0 +1,205 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.bpmn.common.scripts + +import joptsimple.internal.Strings +import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake +import org.junit.Before +import org.junit.Test +import org.onap.so.bpmn.core.UrnPropertiesReader +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 { + + 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 + + @Before + void setupTest() { + testedObject = new CreateAAIVfModule() + executionFake = new DelegateExecutionFake() + } + + @Test + void preProcessRequest_successful() { + //given + prepareUrnPropertiesReader() + executionFake.setVariable("vnfId", VNF_ID) + executionFake.setVariable("vnfType", VNF_TYPE) + executionFake.setVariable("vnfName", VNF_NAME) + executionFake.setVariable("serviceId", SERVICE_ID) + executionFake.setVariable("personaModelId", PERSONAL_MODEL_ID) + executionFake.setVariable("personaModelVersion", PERSONAL_MODEL_VERSION) + executionFake.setVariable("modelCustomizationId", MODEL_CUST_ID) + executionFake.setVariable("vnfPersonaModelId", VNF_PERSONAL_MODEL_ID) + executionFake.setVariable("vnfPersonaModelVersion", VNF_PERSONAL_MODEL_VER) + executionFake.setVariable("isBaseVfModule", "true") + executionFake.setVariable("vfModuleName", VF_MODULE_NAME) + executionFake.setVariable("vfModuleModelName", VF_MODULE_MODEL_NAME) + //when + testedObject.preProcessRequest(executionFake) + //then + assertThat(executionFake.getVariable("CAAIVfMod_vnfId")).isEqualTo(VNF_ID) + assertThat(executionFake.getVariable("CAAIVfMod_vnfName")).isEqualTo(VNF_NAME) + assertThat(executionFake.getVariable("CAAIVfMod_vnfType")).isEqualTo(VNF_TYPE) + assertThat(executionFake.getVariable("CAAIVfMod_serviceId")).isEqualTo(SERVICE_ID) + assertThat(executionFake.getVariable("CAAIVfMod_personaId")).isEqualTo(PERSONAL_MODEL_ID) + assertThat(executionFake.getVariable("CAAIVfMod_personaVer")).isEqualTo(PERSONAL_MODEL_VERSION) + assertThat(executionFake.getVariable("CAAIVfMod_modelCustomizationId")).isEqualTo(MODEL_CUST_ID) + assertThat(executionFake.getVariable("CAAIVfMod_vnfPersonaId")).isEqualTo(VNF_PERSONAL_MODEL_ID) + assertThat(executionFake.getVariable("CAAIVfMod_vnfPersonaVer")).isEqualTo(VNF_PERSONAL_MODEL_VER) + assertThat(executionFake.getVariable("CAAIVfMod_isBaseVfModule")).isEqualTo(true) + assertThat(executionFake.getVariable("CAAIVfMod_moduleName")).isEqualTo(VF_MODULE_NAME) + assertThat(executionFake.getVariable("CAAIVfMod_moduleModelName")).isEqualTo(VF_MODULE_MODEL_NAME) + assertThat(executionFake.getVariable("CAAIVfMod_aaiNamespace")) + .isEqualTo(DEFAULT_AAI_NAMESPACE + "v" + DEFAULT_AAI_VERSION) + } + + @Test + void processAAIGenericVnfQuery_setVnfResponse() { + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 200) + executionFake.setVariable("CAAIVfMod_vnfId", Strings.EMPTY) + executionFake.setVariable("CAAIVfMod_vnfName", VNF_NAME) + + testedObject.processAAIGenericVnfQuery(executionFake) + + assertThat(executionFake.getVariable("CAAIVfMod_queryGenericVnfResponse")) + .isEqualTo("Invalid request for new Generic VNF which already exists, Vnf Name=" + VNF_NAME) + } + + @Test + void processAAIGenericVnfQuery_setVfModuleResponse() { + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 500) + executionFake.setVariable("CAAIVfMod_vnfId", VNF_ID) + + testedObject.processAAIGenericVnfQuery(executionFake) + + assertThat(executionFake.getVariable("CAAIVfMod_createVfModuleResponse")) + .isEqualTo("Invalid request for Add-on Module requested for non-existant Generic VNF, VNF Id=" + VNF_ID) + } + + @Test + void parseForAddOnModule_moduleNameFound() { + String xml = "" + VNF_NAME + "" + + "" + VF_MODULE_NAME + "" + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME) + + testedObject.parseForAddOnModule(executionFake) + + assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) + assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(true) + assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse")) + .isEqualTo("VF Module " + VF_MODULE_NAME + " already exists for Generic VNF " + VNF_NAME) + } + + @Test + void parseForAddOnModule_moduleNameNotFound() { + String xml = "" + VNF_NAME + "" + + "" + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME) + executionFake.setVariable("CAAIVfMod_moduleExists", false) + + testedObject.parseForAddOnModule(executionFake) + + assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) + assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false) + assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse")) + .isEqualTo("VF Module " + VF_MODULE_NAME + " does not exist for Generic VNF " + VNF_NAME) + } + + @Test + void parseForBaseModule_moduleNameFound() { + String xml = "" + VNF_NAME + "" + + "" + VF_MODULE_NAME + "" + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME) + + testedObject.parseForBaseModule(executionFake) + + assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) + assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false) + assertThat(executionFake.getVariable("CAAIVfMod_baseModuleConflict")).isEqualTo(true) + assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse")) + .isEqualTo("VF Module " + VF_MODULE_NAME + " already exists for Generic VNF " + VNF_NAME) + } + + @Test + void parseForBaseModule_isBaseVfModule() { + String xml = "" + VNF_NAME + "" + + "true" + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + executionFake.setVariable("CAAIVfMod_baseModuleConflict", false) + + testedObject.parseForBaseModule(executionFake) + + assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) + assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false) + assertThat(executionFake.getVariable("CAAIVfMod_baseModuleConflict")).isEqualTo(true) + assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse")) + .isEqualTo("Base VF Module already exists for Generic VNF " + VNF_NAME) + } + + @Test + void parseForBaseModule_baseModuleConflictIsFalse() { + String xml = "" + VNF_NAME + "" + executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", xml) + executionFake.setVariable("CAAIVfMod_baseModuleConflict", false) + executionFake.setVariable("CAAIVfMod_moduleName", VF_MODULE_NAME) + + testedObject.parseForBaseModule(executionFake) + + assertThat(executionFake.getVariable("CAAIVfMod_vnfNameFromAAI")).isEqualTo(VNF_NAME) + assertThat(executionFake.getVariable("CAAIVfMod_moduleExists")).isEqualTo(false) + assertThat(executionFake.getVariable("CAAIVfMod_parseModuleResponse")) + .isEqualTo("VF Module " + VF_MODULE_NAME + " does not exist for Generic VNF " + VNF_NAME) + } + + private void prepareUrnPropertiesReader() { + Environment mockEnvironment = mock(Environment.class) + when(mockEnvironment.getProperty("mso.workflow.global.default.aai.version")).thenReturn(DEFAULT_AAI_VERSION) + when(mockEnvironment.getProperty("mso.workflow.global.default.aai.namespace")).thenReturn(DEFAULT_AAI_NAMESPACE) + UrnPropertiesReader urnPropertiesReader = new UrnPropertiesReader() + urnPropertiesReader.setEnvironment(mockEnvironment) + } + +} 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 3a2673c9ee..19638f42da 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 @@ -30,29 +30,15 @@ import org.junit.Rule import org.junit.rules.ExpectedException import org.junit.runner.RunWith import org.mockito.runners.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) 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) @@ -63,91 +49,14 @@ 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 Optional getAAIObjectFromJson(Class clazz , String file){ - String json = FileUtil.readResourceFile(file) - AAIResultWrapper resultWrapper = new AAIResultWrapper(json) - return resultWrapper.asBean(clazz) - } - - protected Optional mockAAIGenericVnf(String vnfId){ - return mockAAIGenericVnf(vnfId,"__files/aai/GenericVnf.json") - } - - protected Optional 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 = getAAIObjectFromJson(GenericVnf.class,file); - when(client.get(GenericVnf.class, resourceUri)).thenReturn(genericVnf) - when(client.get(GenericVnf.class, resourceUriDepthOne)).thenReturn(genericVnf) - return genericVnf - } - - protected Optional 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 = 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) - } } -- cgit 1.2.3-korg