aboutsummaryrefslogtreecommitdiffstats
path: root/bpmn/MSOCommonBPMN/src/test/groovy
diff options
context:
space:
mode:
Diffstat (limited to 'bpmn/MSOCommonBPMN/src/test/groovy')
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AaiUtilTest.groovy168
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AbstractServiceTaskProcessorTest.groovy50
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AllottedResourceUtilsTest.groovy124
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CatalogDbUtilsTest.groovy175
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CompleteMsoProcessTest.groovy26
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupNameTest.groovy258
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupTenantTest.groovy124
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleTest.groovy461
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleVolumeGroupTest.groovy119
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/DeleteAAIVfModuleTest.groovy208
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtilTest.groovy200
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/FalloutHandlerTest.groovy2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy6
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoUtilsTest.groovy26
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/NetworkUtilsTest.groovy2
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV1Test.groovy4
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterRestV2Test.groovy4
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterTest.groovy121
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/SDNCAdapterUtilsTest.groovy12
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/TrinityExceptionUtilTest.groovy4
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnfTest.groovy4
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy177
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VidUtilsTest.groovy34
-rw-r--r--bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VnfAdapterRestV1Test.groovy40
24 files changed, 1584 insertions, 765 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
deleted file mode 100644
index 05b1c5e6ed..0000000000
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/AaiUtilTest.groovy
+++ /dev/null
@@ -1,168 +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 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.rules.ExpectedException
-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
-
-@RunWith(MockitoJUnitRunner.class)
-@Ignore
-class AaiUtilTest extends MsoGroovyTest {
-
-
- @Rule
- public WireMockRule wireMockRule = new WireMockRule(8090);
-
- @Rule
- public ExpectedException thrown = ExpectedException.none
-
-
- def aaiPaylod = "<allotted-resource xmlns=\"http://org.openecomp.aai.inventory/v9\">\n" +
- "\t\t\t\t<id>allottedResourceId</id>\n" +
- "\t\t\t\t<description></description>\n" +
- "\t\t\t\t<type>allottedResourceType</type>\n" +
- "\t\t\t\t<role>allottedResourceRole</role>\n" +
- "\t\t\t\t<selflink></selflink>\n" +
- "\t\t\t\t<model-invariant-id></model-invariant-id>\n" +
- "\t\t\t\t<model-version-id></model-version-id>\n" +
- "\t\t\t\t<model-customization-id></model-customization-id>\n" +
- "\t\t\t\t<orchestration-status>PendingCreate</orchestration-status>\n" +
- "\t\t\t\t<operation-status></operation-status>\n" +
- "\t\t\t\t<relationship-list>\n" +
- "\t\t\t\t\t<relationship>\n" +
- " \t\t\t<related-to>service-instance</related-to>\n" +
- " \t\t\t<related-link>CSI_resourceLink</related-link>\n" +
- "\t\t\t\t\t</relationship>\n" +
- "\t\t\t\t</relationship-list>\n" +
- "\t\t\t</allotted-resource>";
-
- @Test
- public void testGetVersionDefault() {
- ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
- when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
- when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn('8')
-
- CreateAAIVfModule myproc = new CreateAAIVfModule()
- AaiUtil aaiUtil = new AaiUtil(myproc)
- def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')
- assertEquals('8', version)
- }
-
- @Test
- public void testGetVersionResourceSpecific() {
- ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
- when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
- when(mockExecution.getVariable("mso.workflow.default.aai.l3-network.version")).thenReturn('7')
- when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn('8')
- CreateAAIVfModule myproc = new CreateAAIVfModule()
- AaiUtil aaiUtil = new AaiUtil(myproc)
- def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')
- assertEquals('7', version)
- }
-
- @Test
- public void testGetVersionFlowSpecific() {
- ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
- when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
- when(mockExecution.getVariable("mso.workflow.custom.CreateAAIVfModule.aai.version")).thenReturn('6')
- when(mockExecution.getVariable("mso.workflow.default.aai.l3-network.version")).thenReturn('7')
-
- when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn('8')
-
- CreateAAIVfModule myproc = new CreateAAIVfModule()
- AaiUtil aaiUtil = new AaiUtil(myproc)
- def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')
- assertEquals('6', version)
- }
-
- @Test
- public void testGetVersionNotDefined() {
- thrown.expect(Exception.class)
- ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
- when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
- CreateAAIVfModule myproc = new CreateAAIVfModule()
- AaiUtil aaiUtil = new AaiUtil(myproc)
- when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn("")
-
- def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')
-
- }
-
- @Test
- public void testExecuteAAIGetCall() {
- ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
- when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
- when(mockExecution.getVariable("aai.auth")).thenReturn("9B2278E8B8E95F256A560719055F4DF3")
- when(mockExecution.getVariable("mso.msoKey")).thenReturn("aa3871669d893c7fb8abbcda31b88b4f")
- CreateAAIVfModule myproc = new CreateAAIVfModule()
- AaiUtil aaiUtil = new AaiUtil(myproc)
- def uri = aaiUtil.executeAAIGetCall(mockExecution,"http://localhost:8090/aai/v9/business/customers/customer/CUST/service-subscriptions/service-subscription/SVC/service-instances/service-instance/NST/allotted-resources/allotted-resource/allottedResourceId")
- }
-
-
- @Test
- public void testExecuteAAIPutCall() {
- ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
- when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
- when(mockExecution.getVariable("aai.auth")).thenReturn("9B2278E8B8E95F256A560719055F4DF3")
- when(mockExecution.getVariable("mso.msoKey")).thenReturn("aa3871669d893c7fb8abbcda31b88b4f")
- CreateAAIVfModule myproc = new CreateAAIVfModule()
- AaiUtil aaiUtil = new AaiUtil(myproc)
- def uri = aaiUtil.executeAAIPutCall(mockExecution,"http://localhost:8090/aai/v9/business/customers/customer/CUST/service-subscriptions/service-subscription/SVC/service-instances/service-instance/NST/allotted-resources/allotted-resource/allottedResourceId",aaiPaylod)
- }
-
- @Test
- public void testGetNamespaceFromUri_twoArguments() { // (execution, uri)
- ExecutionEntity mockExecution = setupMock('DeleteVfModuleVolumeInfraV1')
- //
- when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
- when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn('10')
- when(mockExecution.getVariable("mso.workflow.default.aai.v10.l3-network.uri")).thenReturn('/aai/v10/network/l3-networks/l3-network')
- when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn('http://org.openecomp.aai.inventory/')
- //
- when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
- CreateAAIVfModule myproc = new CreateAAIVfModule()
- AaiUtil aaiUtil = new AaiUtil(myproc)
- def ns = aaiUtil.getNamespaceFromUri(mockExecution, '/aai/v10/search/generic-query')
- assertEquals('http://org.openecomp.aai.inventory/v10', ns)
- }
-}
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..3c3e4aca91 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
@@ -1,22 +1,22 @@
-/*-
- * ============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=========================================================
- */
+/*-
+ * ============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
@@ -30,9 +30,8 @@ import org.onap.so.bpmn.core.WorkflowException;
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.junit.MockitoJUnitRunner;
import org.mockito.internal.debugging.MockitoDebuggerImpl
import org.junit.Before
import org.onap.so.bpmn.common.scripts.AaiUtil;
@@ -58,7 +57,8 @@ class AbstractServiceTaskProcessorImpl extends AbstractServiceTaskProcessor{
}
}
-@RunWith(MockitoJUnitRunner.class)
+
+@RunWith(MockitoJUnitRunner.Silent.class)
public class AbstractServiceTaskProcessorTest extends MsoGroovyTest {
@Captor
@@ -171,12 +171,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
index 5058961992..97db9775c9 100644
--- 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
@@ -1,39 +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.mockito.Matchers.eq
+import static org.junit.Assert.assertTrue
+import static org.mockito.ArgumentMatchers.any
+import static org.mockito.ArgumentMatchers.anyObject
+import static org.mockito.ArgumentMatchers.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
-import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake
-import org.junit.Test
-import org.onap.so.bpmn.core.UrnPropertiesReader
-import org.onap.so.client.aai.entities.uri.AAIResourceUri
-import org.springframework.core.env.Environment
-
-class AllottedResourceUtilsTest {
-
-
- @Test
- public void createARUrlTest() {
- AllottedResourceUtils utils = new AllottedResourceUtils(mock(AbstractServiceTaskProcessor.class))
- DelegateExecution execution = new DelegateExecutionFake()
- String allottedResourceId = "my-id"
- UrnPropertiesReader reader = new UrnPropertiesReader()
- Environment env = mock(Environment.class);
-
- when(env.getProperty(eq("mso.workflow.global.default.aai.version"))).thenReturn("14")
- when(env.getProperty(eq("aai.endpoint"))).thenReturn("http://localhost:8080")
-
-
- reader.setEnvironment(env)
-
-
- AAIResourceUri uri = mock(AAIResourceUri.class)
- when(uri.build()).thenReturn(new URI("/business/customers/customer/1/service-subscriptions/service-subscription/2/service-instances/service-instance/3"))
- String actual = utils.createARUrl(execution, uri, allottedResourceId)
-
- assertEquals("http://localhost:8080/aai/v14/business/customers/customer/1/service-subscriptions/service-subscription/2/service-instances/service-instance/3/allotted-resources/allotted-resource/my-id", actual)
- }
+
+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
index 39064caa28..d6a7cf0634 100644
--- 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
@@ -2,14 +2,14 @@
* ============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.
@@ -20,79 +20,126 @@
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.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake
+import org.json.JSONArray
+import org.json.JSONObject
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 org.onap.logging.ref.slf4j.ONAPLogConstants
+import org.onap.so.bpmn.core.UrnPropertiesReader
+import org.onap.so.bpmn.core.json.JsonUtils
+import org.onap.so.client.HttpClient
+import org.onap.so.client.HttpClientFactory
+import org.onap.so.utils.TargetEntity
+import org.skyscreamer.jsonassert.JSONAssert
+import org.skyscreamer.jsonassert.JSONCompareMode
+import org.springframework.core.env.Environment
+
+import javax.ws.rs.core.MediaType
+import javax.ws.rs.core.Response
+
+import static org.assertj.core.api.Assertions.assertThat
+import static org.mockito.ArgumentMatchers.anyString
+import static org.mockito.Mockito.eq
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
+import static org.mockito.Mockito.verify
-@RunWith(MockitoJUnitRunner.class)
class CatalogDbUtilsTest {
+ private static final String AUTHORIZATION_HEADER = "AuthHeaderTest"
+ private static final String RESPONSE_FROM_CATALOG_DB = "{\"serviceVnfs\": [{\"name\": \"service1\"," +
+ "\"vfModules\": [{\"name\": \"module1\", \"isBase\":true, \"initialCount\":1}]}]}"
+ private HttpClientFactory httpClientFactoryMock
+ private MsoUtils msoUtilsMock
+ private JsonUtils jsonUtilsMock
+ private HttpClient httpClientMock
+ private DelegateExecutionFake executionFake
+ private CatalogDbUtils testedObject
+
+
+ @Before
+ void setUp() {
+ httpClientFactoryMock = mock(HttpClientFactory.class)
+ msoUtilsMock = mock(MsoUtils.class)
+ jsonUtilsMock = mock(JsonUtils.class)
+ httpClientMock = mock(HttpClient.class)
+ executionFake = new DelegateExecutionFake()
+ testedObject = new CatalogDbUtils(httpClientFactoryMock, msoUtilsMock, jsonUtilsMock)
+ }
+
+ @Test
+ void getAllVnfsByVnfModelCustomizationUuid_CatVer1_success() {
+ // given
+ executionFake.setVariable("BasicAuthHeaderValueDB", AUTHORIZATION_HEADER)
+ mockGetResponseFromCatalogDb("http://testUrl/v2/serviceVnfs?vnfModelCustomizationUuid=testModel")
+ //when
+ JSONArray vnfsListResult = testedObject.getAllVnfsByVnfModelCustomizationUuid(executionFake, "testModel", "v1")
+ //then
+ verifyHeadersInHttpClient()
+ JSONAssert.assertEquals("[{\"vfModules\":[{\"initialCount\":1,\"modelInfo\":{\"modelType\":\"vfModule\"},\"isBase\":true}],\"modelInfo\":{\"modelType\":\"vnf\"}}]", vnfsListResult, JSONCompareMode.LENIENT)
+ }
+
+ @Test
+ void getAllVnfsByVnfModelCustomizationUuid_CatVer2_success() {
+ // given
+ executionFake.setVariable("BasicAuthHeaderValueDB", AUTHORIZATION_HEADER)
+ mockGetResponseFromCatalogDb("http://testUrl/v2/serviceVnfs?vnfModelCustomizationUuid=testModel")
+ // when
+ JSONArray vnfsListResult = testedObject.getAllVnfsByVnfModelCustomizationUuid(executionFake, "testModel", "v2")
+ // then
+ verifyHeadersInHttpClient()
+ JSONAssert.assertEquals("[{\"vfModules\":[{\"initialCount\":1,\"name\":\"module1\",\"isBase\":true}],\"name\":\"service1\"}]", vnfsListResult, JSONCompareMode.LENIENT)
+ }
+
+ @Test
+ void getServiceResourcesByServiceModelUuid_success() {
+ // given
+ executionFake.setVariable("BasicAuthHeaderValueDB", AUTHORIZATION_HEADER)
+ mockGetResponseFromCatalogDb("http://testUrl/v2/serviceResources?serviceModelUuid=testModel")
+ // when
+ JSONObject result = testedObject.getServiceResourcesByServiceModelUuid(executionFake, "testModel", "v2")
+ // then
+ verifyHeadersInHttpClient()
+ JSONAssert.assertEquals("{\"serviceVnfs\": [{\"name\": \"service1\",\"vfModules\": [{\"name\": \"module1\", \"isBase\":true, \"initialCount\":1}]}]}", result, JSONCompareMode.LENIENT)
+ }
- @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)
+ void getServiceResourcesByServiceModelInvariantUuidString_success() {
+ // given
+ executionFake.setVariable("BasicAuthHeaderValueDB", AUTHORIZATION_HEADER)
+ mockGetResponseFromCatalogDb("http://testUrl/v2/serviceResources?serviceModelInvariantUuid=testModel")
+ // when
+ String result = testedObject.getServiceResourcesByServiceModelInvariantUuidString(executionFake, "testModel")
+ // then
+ verifyHeadersInHttpClient()
+ assertThat(result).isEqualTo(RESPONSE_FROM_CATALOG_DB)
+ }
+ private Environment createEnvironmentMock() {
+ Environment mockEnvironment = mock(Environment.class)
+ UrnPropertiesReader urnPropertiesReader = new UrnPropertiesReader()
+ urnPropertiesReader.setEnvironment(mockEnvironment)
+ return mockEnvironment
}
- 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
+ private void mockGetResponseFromCatalogDb(String queryEndpoint) {
+ Environment environmentMock = createEnvironmentMock()
+ when(environmentMock.getProperty("mso.catalog.db.endpoint")).thenReturn("http://testUrl")
+ when(httpClientFactoryMock.newJsonClient(new URL(queryEndpoint), TargetEntity.CATALOG_DB)).thenReturn(httpClientMock)
+
+ Response responseMock = mock(Response.class)
+ when(httpClientMock.get()).thenReturn(responseMock)
+ when(responseMock.readEntity(String.class)) thenReturn(RESPONSE_FROM_CATALOG_DB)
+ when(responseMock.getStatus()).thenReturn(200)
}
+
+ private void verifyHeadersInHttpClient() {
+ verify(httpClientMock).addAdditionalHeader(eq(ONAPLogConstants.Headers.REQUEST_ID), anyString())
+ verify(httpClientMock).addAdditionalHeader("X-FromAppId", "BPMN")
+ verify(httpClientMock).addAdditionalHeader("Accept", MediaType.APPLICATION_JSON)
+ verify(httpClientMock).addAdditionalHeader("Authorization", AUTHORIZATION_HEADER)
+ }
+
}
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..99c351c465 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
@@ -33,7 +33,7 @@ import org.onap.so.bpmn.core.WorkflowException
import static org.assertj.core.api.Assertions.assertThat
import static org.assertj.core.api.Assertions.assertThatThrownBy
-import static org.mockito.Matchers.eq
+import static org.mockito.ArgumentMatchers.eq
import static org.mockito.Mockito.*
@RunWith(MockitoJUnitRunner.class)
@@ -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/ConfirmVolumeGroupNameTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupNameTest.groovy
index a96127aa2d..79aacdfbe9 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupNameTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ConfirmVolumeGroupNameTest.groovy
@@ -4,12 +4,14 @@
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
* ================================================================================
+ * Modifications Copyright 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.
@@ -20,64 +22,216 @@
package org.onap.so.bpmn.common.scripts
-import static org.mockito.Mockito.*
-
-import javax.ws.rs.core.UriBuilder
-
+import org.camunda.bpm.engine.delegate.BpmnError
import org.camunda.bpm.engine.delegate.DelegateExecution
-import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake
-import org.junit.Assert
import org.junit.Before
import org.junit.Test
-import org.mockito.ArgumentCaptor
-import org.mockito.Captor
-import org.mockito.Mockito
+import org.mockito.Mock
import org.mockito.MockitoAnnotations
-import org.mockito.Spy
+import org.onap.aai.domain.yang.RelationshipList
import org.onap.aai.domain.yang.VolumeGroup
+import org.onap.so.bpmn.common.scripts.ConfirmVolumeGroupName
+import org.onap.so.bpmn.common.scripts.ConfirmVolumeGroupNameFactory
+import org.onap.so.bpmn.common.scripts.ExceptionUtil
import org.onap.so.client.aai.AAIObjectType
+import org.onap.so.client.aai.AAIResourcesClient
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 org.springframework.http.HttpStatus
+
+import javax.ws.rs.core.UriBuilder
+
+import static org.assertj.core.api.Assertions.catchThrowableOfType
+import static org.junit.Assert.assertEquals
+import static org.junit.Assert.assertFalse
+import static org.junit.Assert.assertTrue
+import static org.mockito.Mockito.spy
+import static org.mockito.Mockito.when
+
+class ConfirmVolumeGroupNameTest {
+
+ private static final AAIResourceUri RESOURCE_URI = AAIUriFactory.createResourceFromExistingURI(
+ AAIObjectType.VOLUME_GROUP, UriBuilder.fromPath('/aai/test/volume-groups/volume-group/testVolumeGroup').build())
+
+ private ConfirmVolumeGroupName confirmVolumeGroupName
+ @Mock
+ private VolumeGroup volumeGroup
+ @Mock
+ private AAIResourcesClient client
+ private ExceptionUtilFake exceptionUtilFake
+
+ private DelegateExecution delegateExecution
+
+ @Before
+ public void init() throws IOException {
+ exceptionUtilFake = new ExceptionUtilFake()
+ confirmVolumeGroupName = spy(new ConfirmVolumeGroupName(exceptionUtilFake))
+ MockitoAnnotations.initMocks(this)
+ delegateExecution = new DelegateExecutionFake()
+ volumeGroup = createVolumeGroup()
+ when(confirmVolumeGroupName.getAAIClient()).thenReturn(client)
+ }
+
+ @Test
+ public void preProcessRequest_shouldSetUpVariables() {
+ String volumeGroupId = "volume-group-id-1"
+ String volumeGroupName = "volume-group-name-1"
+ String aicCloudRegion = "aic-cloud-region-1"
+ AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.VOLUME_GROUP, Defaults.CLOUD_OWNER, aicCloudRegion, volumeGroupId)
+
+ delegateExecution.setVariable("ConfirmVolumeGroupName_volumeGroupId", volumeGroupId)
+ delegateExecution.setVariable("ConfirmVolumeGroupName_volumeGroupName", volumeGroupName)
+ delegateExecution.setVariable("ConfirmVolumeGroupName_aicCloudRegion", aicCloudRegion)
+ delegateExecution.setVariable("CVGN_volumeGroupGetEndpoint", uri)
+
+ confirmVolumeGroupName.preProcessRequest(delegateExecution)
+
+ assertEquals(ConfirmVolumeGroupName.Prefix, delegateExecution.getVariable("prefix"))
+
+ assertEquals(volumeGroupId, delegateExecution.getVariable("CVGN_volumeGroupId"))
+ assertEquals(volumeGroupName, delegateExecution.getVariable("CVGN_volumeGroupName"))
+ assertEquals(aicCloudRegion, delegateExecution.getVariable("CVGN_aicCloudRegion"))
+ }
+
+ @Test
+ public void queryAAIForVolumeGroupId_shouldSucceed_whenVolumeGroupExists() {
+ delegateExecution.setVariable("CVGN_queryVolumeGroupResponseCode", HttpStatus.OK)
+ delegateExecution.setVariable("CVGN_queryVolumeGroupResponse", volumeGroup)
+ delegateExecution.setVariable("CVGN_volumeGroupGetEndpoint", RESOURCE_URI)
+ when(client.get(VolumeGroup.class, RESOURCE_URI)).thenReturn(Optional.of(volumeGroup))
+
+ confirmVolumeGroupName.queryAAIForVolumeGroupId(delegateExecution)
+
+ assertEquals(HttpStatus.OK.value(), delegateExecution.getVariable("CVGN_queryVolumeGroupResponseCode"))
+ assertEquals(volumeGroup, delegateExecution.getVariable("CVGN_queryVolumeGroupResponse"))
+ }
+
+ @Test
+ public void queryAAIForVolumeGroupId_shouldFailWith404_whenVolumeGroupDoesNotExist() {
+ delegateExecution.setVariable("CVGN_volumeGroupGetEndpoint", RESOURCE_URI)
+ when(client.get(VolumeGroup.class, RESOURCE_URI)).thenReturn(Optional.empty())
+
+ confirmVolumeGroupName.queryAAIForVolumeGroupId(delegateExecution)
+
+ assertEquals(HttpStatus.NOT_FOUND.value(), delegateExecution.getVariable("CVGN_queryVolumeGroupResponseCode"))
+ assertEquals("Volume Group not Found!", delegateExecution.getVariable("CVGN_queryVolumeGroupResponse"))
+ }
+
+ @Test
+ public void queryAAIForVolumeGroupId_shouldThrowWorkflowException_whenRuntimeExceptionIsThrown() throws BpmnError {
+ delegateExecution.setVariable("CVGN_volumeGroupGetEndpoint", RESOURCE_URI)
+ delegateExecution.setVariable("testProcessKey", "process-key1")
+
+ def errorMsg = "my runtime exception"
+ when(client.get(VolumeGroup.class, RESOURCE_URI)).thenThrow(new RuntimeException(errorMsg))
+
+ def exceptionMsg = "AAI GET Failed"
+
+ BpmnError error = catchThrowableOfType(
+ { -> confirmVolumeGroupName.queryAAIForVolumeGroupId(delegateExecution) }, BpmnError.class)
+
+ assertEquals(String.format("MSOWorkflowException: %s", exceptionMsg), error.getMessage())
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR.value().toString(), error.getErrorCode())
+
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR.value(), delegateExecution.getVariable("CVGN_queryVolumeGroupResponseCode"))
+ assertEquals(String.format("AAI GET Failed:%s", errorMsg), delegateExecution.getVariable("CVGN_queryVolumeGroupResponse"))
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR.value(), exceptionUtilFake.getErrorCode())
+ assertEquals(exceptionMsg, exceptionUtilFake.getErrorMessage())
+ assertEquals(delegateExecution, exceptionUtilFake.getDelegateExecution())
+ }
+
+ @Test
+ public void checkAAIQueryResult_shouldSetVolumeGroupNameMatchesToFalse_whenResponseCodeIs404() {
+ delegateExecution.setVariable("CVGN_queryVolumeGroupResponseCode", HttpStatus.NOT_FOUND)
+ delegateExecution.setVariable("CVGN_volumeGroupName", "")
+
+ confirmVolumeGroupName.checkAAIQueryResult(delegateExecution)
+
+ assertFalse(delegateExecution.getVariable("CVGN_volumeGroupNameMatches"))
+ }
+
+ @Test
+ public void checkAAIQueryResult_shouldSetVolumeGroupNameMatchesToTrue_whenResponseCodeIs200AndVolumeGroupNameExists() {
+ delegateExecution.setVariable("CVGN_queryVolumeGroupResponseCode", HttpStatus.OK.value())
+ delegateExecution.setVariable("CVGN_queryVolumeGroupResponse", volumeGroup)
+ delegateExecution.setVariable("CVGN_volumeGroupName", volumeGroup.getVolumeGroupName())
+
+ confirmVolumeGroupName.checkAAIQueryResult(delegateExecution)
+
+ assertTrue(delegateExecution.getVariable("CVGN_volumeGroupNameMatches"))
+ }
+
+ @Test
+ public void handleVolumeGroupNameNoMatch_shouldThrowBpmnErrorException() {
+ def volumeGroupId = "volume-group-id"
+ def volumeGroupName = "volume-group-name"
+
+ delegateExecution.setVariable("CVGN_volumeGroupId", volumeGroupId)
+ delegateExecution.setVariable("CVGN_volumeGroupName", volumeGroupName)
+
+ def errorMessage = String.format("Error occurred - volume group id %s is not associated with %s",
+ delegateExecution.getVariable('CVGN_volumeGroupId'), delegateExecution.getVariable('CVGN_volumeGroupName'))
+
+ BpmnError error = catchThrowableOfType(
+ { -> confirmVolumeGroupName.handleVolumeGroupNameNoMatch(delegateExecution) }, BpmnError.class)
+
+ assertEquals(String.format("MSOWorkflowException: %s", errorMessage), error.getMessage())
+ assertEquals("1002", error.getErrorCode())
+
+ assertEquals(1002, exceptionUtilFake.getErrorCode())
+ assertEquals(errorMessage, exceptionUtilFake.getErrorMessage())
+ assertEquals(delegateExecution, exceptionUtilFake.getDelegateExecution())
+ }
+
+ @Test
+ public void reportSuccess_shouldSetWorkflowResponseToEmptyString() {
+ confirmVolumeGroupName.reportSuccess(delegateExecution)
+ assertEquals("", delegateExecution.getVariable("WorkflowResponse"))
+ }
+
+ private VolumeGroup createVolumeGroup() {
+ VolumeGroup volumeGroup = new VolumeGroup()
+
+ volumeGroup.setVolumeGroupId("volume-group-id")
+ volumeGroup.setVolumeGroupName("volume-group-name")
+ volumeGroup.setHeatStackId("heat-stack-id")
+ volumeGroup.setVnfType("vnf-type")
+ volumeGroup.setOrchestrationStatus("orchestration-status")
+ volumeGroup.setModelCustomizationId("model-customization-id")
+ volumeGroup.setVfModuleModelCustomizationId("vf-module-model-customization-id")
+ volumeGroup.setResourceVersion("resource-version")
+ volumeGroup.setRelationshipList(new RelationshipList())
+
+ return volumeGroup
+ }
+
+ private static class ExceptionUtilFake extends ExceptionUtil {
+
+ private int errorCode
+ private String errorMessage
+ private DelegateExecution execution
+
+ @Override
+ public void buildAndThrowWorkflowException(DelegateExecution execution, int errorCode, String errorMessage) {
+ this.errorCode = errorCode
+ this.errorMessage = errorMessage
+ this.execution = execution
+ throw new BpmnError(errorCode.toString(), "MSOWorkflowException: ${errorMessage}")
+ }
+
+ public int getErrorCode() {
+ return errorCode
+ }
+
+ public String getErrorMessage() {
+ return errorMessage
+ }
+
+ public DelegateExecution getDelegateExecution() {
+ return execution
+ }
+ }
-class ConfirmVolumeGroupNameTest extends MsoGroovyTest {
-
- @Spy
- private ConfirmVolumeGroupName confirmVolumeGroupName;
-
- @Before
- public void init() throws IOException {
- super.init("ConfirmVolumeGroupName")
- MockitoAnnotations.initMocks(this);
- when(confirmVolumeGroupName.getAAIClient()).thenReturn(client)
-
- }
-
- @Test
- public void testQueryAAIForVolumeGroupId() {
-
- AAIResourceUri resourceUri = AAIUriFactory.createResourceFromExistingURI(AAIObjectType.VOLUME_GROUP, UriBuilder.fromPath('/aai/test/volume-groups/volume-group/testVolumeGroup').build());
- when(mockExecution.getVariable("CVGN_volumeGroupGetEndpoint")).thenReturn(resourceUri)
- VolumeGroup volumeGroup = new VolumeGroup()
- volumeGroup.setVolumeGroupId("Test")
- when(client.get(VolumeGroup.class,resourceUri)).thenReturn(Optional.of(volumeGroup))
- confirmVolumeGroupName.queryAAIForVolumeGroupId(mockExecution)
- Mockito.verify(mockExecution).setVariable("CVGN_queryVolumeGroupResponseCode",200)
- Mockito.verify(mockExecution).setVariable("CVGN_queryVolumeGroupResponse",volumeGroup)
- }
-
- @Test
- public void testQueryAAIForVolumeGroupId_404() {
- AAIResourceUri resourceUri = AAIUriFactory.createResourceFromExistingURI(AAIObjectType.VOLUME_GROUP, UriBuilder.fromPath('/aai/test/volume-groups/volume-group/testVolumeGroup').build());
- when(client.get(VolumeGroup.class, resourceUri)).thenReturn(Optional.empty())
- DelegateExecution execution = new DelegateExecutionFake()
- try {
- execution.setVariable("CVGN_volumeGroupGetEndpoint", resourceUri)
- confirmVolumeGroupName.queryAAIForVolumeGroupId(execution)
- }
- catch(Exception ex){}
- Assert.assertEquals(404, execution.getVariable("CVGN_queryVolumeGroupResponseCode"))
- Assert.assertEquals("Volume Group not Found!", execution.getVariable("CVGN_queryVolumeGroupResponse"))
-
- }
}
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
new file mode 100644
index 0000000000..55f68f665e
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/CreateAAIVfModuleTest.groovy
@@ -0,0 +1,461 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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.
+ * 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 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
+
+class CreateAAIVfModuleTest extends MsoGroovyTest{
+
+ 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 = "14"
+ private static final String DEFAULT_AAI_NAMESPACE = "defaultTestNamespace"
+
+ @Spy
+ CreateAAIVfModule createAAIVfModule ;
+
+ private DelegateExecutionFake executionFake;
+
+ @Before
+ 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()
+ 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
+ createAAIVfModule.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", "")
+ executionFake.setVariable("CAAIVfMod_vnfName", VNF_NAME)
+
+ createAAIVfModule.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)
+
+ 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)
+ }
+
+ @Test
+ void parseForAddOnModule_moduleNameFound() {
+
+ 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)
+
+ createAAIVfModule.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() {
+ 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)
+
+ createAAIVfModule.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() {
+ 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)
+
+ createAAIVfModule.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() {
+ 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)
+
+ createAAIVfModule.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() {
+ 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)
+
+ createAAIVfModule.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)
+ }
+
+ @Test
+ void handleFailure_errorCode5000() {
+ executionFake.setVariable("CAAIVfMod_createGenericVnfResponseCode", "123")
+ executionFake.setVariable("CAAIVfMod_createGenericVnfResponse", "responseTest")
+
+ ExceptionUtilForTesting exceptionUtilForTesting = new ExceptionUtilForTesting()
+ createAAIVfModule.setExceptionUtil(exceptionUtilForTesting)
+
+ createAAIVfModule.handleCreateVfModuleFailure(executionFake)
+
+ assertThat(exceptionUtilForTesting.getErrorCode()).isEqualTo(5000)
+ assertThat(exceptionUtilForTesting.getErrorMessage()).isEqualTo("responseTest")
+ }
+
+ @Test
+ void handleFailure_errorCode1002() {
+ executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", "responseTest")
+ executionFake.setVariable("CAAIVfMod_newGenericVnf", true)
+
+ ExceptionUtilForTesting exceptionUtilForTesting = new ExceptionUtilForTesting()
+ createAAIVfModule.setExceptionUtil(exceptionUtilForTesting)
+
+ createAAIVfModule.handleCreateVfModuleFailure(executionFake)
+
+ assertThat(exceptionUtilForTesting.getErrorCode()).isEqualTo(1002)
+ assertThat(exceptionUtilForTesting.getErrorMessage()).isEqualTo("responseTest")
+ }
+
+ @Test
+ void handleFailure_errorCode1002_queryGenericVnfResponse() {
+ executionFake.setVariable("CAAIVfMod_queryGenericVnfResponse", "responseTest")
+ executionFake.setVariable("CAAIVfMod_queryGenericVnfResponseCode", 404)
+ executionFake.setVariable("CAAIVfMod_newGenericVnf", false)
+
+ ExceptionUtilForTesting exceptionUtilForTesting = new ExceptionUtilForTesting()
+ createAAIVfModule.setExceptionUtil(exceptionUtilForTesting)
+
+ createAAIVfModule.handleCreateVfModuleFailure(executionFake)
+
+ assertThat(exceptionUtilForTesting.getErrorCode()).isEqualTo(1002)
+ assertThat(exceptionUtilForTesting.getErrorMessage()).isEqualTo("responseTest")
+ }
+
+ @Test
+ void handleFailure_errorCode5000_createVfModuleResponseCode() {
+ executionFake.setVariable("CAAIVfMod_createVfModuleResponseCode", "123")
+ executionFake.setVariable("CAAIVfMod_createVfModuleResponse", "responseTest")
+
+ ExceptionUtilForTesting exceptionUtilForTesting = new ExceptionUtilForTesting()
+ createAAIVfModule.setExceptionUtil(exceptionUtilForTesting)
+
+ createAAIVfModule.handleCreateVfModuleFailure(executionFake)
+
+ assertThat(exceptionUtilForTesting.getErrorCode()).isEqualTo(5000)
+ assertThat(exceptionUtilForTesting.getErrorMessage()).isEqualTo("responseTest")
+ }
+
+ @Test
+ void handleFailure_errorCode1002_moduleExists() {
+ executionFake.setVariable("CAAIVfMod_moduleExists", true)
+ executionFake.setVariable("CAAIVfMod_parseModuleResponse", "responseTest")
+
+ ExceptionUtilForTesting exceptionUtilForTesting = new ExceptionUtilForTesting()
+ createAAIVfModule.setExceptionUtil(exceptionUtilForTesting)
+
+ createAAIVfModule.handleCreateVfModuleFailure(executionFake)
+
+ assertThat(exceptionUtilForTesting.getErrorCode()).isEqualTo(1002)
+ assertThat(exceptionUtilForTesting.getErrorMessage()).isEqualTo("responseTest")
+ }
+
+ @Test
+ void handleFailure_errorCode1002_baseModuleConflict() {
+ executionFake.setVariable("CAAIVfMod_baseModuleConflict", true)
+ executionFake.setVariable("CAAIVfMod_parseModuleResponse", "responseTest")
+
+ ExceptionUtilForTesting exceptionUtilForTesting = new ExceptionUtilForTesting()
+ createAAIVfModule.setExceptionUtil(exceptionUtilForTesting)
+
+ createAAIVfModule.handleCreateVfModuleFailure(executionFake)
+
+ assertThat(exceptionUtilForTesting.getErrorCode()).isEqualTo(1002)
+ assertThat(exceptionUtilForTesting.getErrorMessage()).isEqualTo("responseTest")
+ }
+
+ @Test
+ void handleFailure_errorCode2000() {
+ ExceptionUtilForTesting exceptionUtilForTesting = new ExceptionUtilForTesting()
+ createAAIVfModule.setExceptionUtil(exceptionUtilForTesting)
+
+ createAAIVfModule.handleCreateVfModuleFailure(executionFake)
+
+ assertThat(exceptionUtilForTesting.getErrorCode()).isEqualTo(2000)
+ assertThat(exceptionUtilForTesting.getErrorMessage()).
+ isEqualTo("Unknown error occurred during CreateAAIVfModule flow")
+ }
+
+ 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)
+ }
+
+ class ExceptionUtilForTesting extends ExceptionUtil {
+ private int errorCode
+ private String errorMessage
+
+ int getErrorCode() {
+ return errorCode
+ }
+
+ String getErrorMessage() {
+ return errorMessage
+ }
+
+ @Override
+ void buildAndThrowWorkflowException(DelegateExecution execution, int errorCode,
+ String errorMessage) {
+ this.errorCode = errorCode
+ this.errorMessage = errorMessage
+ }
+ }
+
+}
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/ExternalAPIUtilTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtilTest.groovy
new file mode 100644
index 0000000000..db11cb6044
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/ExternalAPIUtilTest.groovy
@@ -0,0 +1,200 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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 org.assertj.core.api.AbstractAssert
+import org.camunda.bpm.engine.delegate.BpmnError
+import org.camunda.bpm.engine.delegate.DelegateExecution
+import org.junit.Test
+import org.onap.logging.ref.slf4j.ONAPLogConstants
+import org.onap.so.client.HttpClient
+import org.onap.so.client.HttpClientFactory
+import org.onap.so.utils.TargetEntity
+import org.springframework.http.HttpStatus
+
+import javax.ws.rs.core.MediaType
+import javax.ws.rs.core.Response
+
+import static org.assertj.core.api.Assertions.assertThat
+import static org.assertj.core.api.Assertions.catchThrowableOfType
+import static org.mockito.BDDMockito.given
+import static org.mockito.BDDMockito.then
+import static org.mockito.BDDMockito.willThrow
+import static org.mockito.Mockito.mock
+import static org.mockito.Mockito.times
+
+class ExternalAPIUtilTest {
+
+ private static final String URL = "http://someUrl"
+ private static final String UUID_STR = UUID.nameUUIDFromBytes("deterministic_uuid".getBytes())
+ private static final String BODY_PAYLOAD = "payload"
+
+ @Test
+ void executeExternalAPIGetCall_shouldPerformRestGetCall_withAuthorizationHeaderSet() {
+ // GIVEN
+ Response expectedResponse = createExpectedResponse(HttpStatus.ACCEPTED, BODY_PAYLOAD)
+ HttpClient httpClient = mock(HttpClient.class)
+ given(httpClient.get()).willReturn(expectedResponse)
+ HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
+ given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.EXTERNAL)).willReturn(httpClient)
+
+ // WHEN
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(httpClientFactory, new DummyMsoUtils(UUID_STR), new ExceptionUtil())
+ Response apiResponse = externalAPIUtil.executeExternalAPIGetCall(createDelegateExecution(), URL)
+
+ // THEN
+ then(httpClient).should(times(1)).addBasicAuthHeader("value_externalapi_auth", "value_mso_msoKey")
+ then(httpClient).should(times(1)).addAdditionalHeader("X-FromAppId", "MSO")
+ then(httpClient).should(times(1)).addAdditionalHeader(ONAPLogConstants.Headers.REQUEST_ID, UUID_STR)
+ then(httpClient).should(times(1)).addAdditionalHeader("Accept", MediaType.APPLICATION_JSON)
+ ResponseAssert.assertThat(apiResponse)
+ .hasStatusCode(HttpStatus.ACCEPTED)
+ .hasBody(BODY_PAYLOAD)
+ }
+
+ @Test
+ void executeExternalAPIGetCall_shouldHandleExceptionsThrownByGetCall_andRethrowAsBpmnError() {
+ // GIVEN
+ HttpClient httpClient = mock(HttpClient.class)
+ willThrow(new RuntimeException("error occurred")).given(httpClient).get()
+ HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
+ given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.EXTERNAL)).willReturn(httpClient)
+ DelegateExecution delegateExecution = createDelegateExecution()
+ DummyExceptionUtil exceptionUtil = new DummyExceptionUtil()
+
+ // WHEN
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(httpClientFactory, new DummyMsoUtils(UUID_STR), exceptionUtil)
+ BpmnError bpmnError = catchThrowableOfType({ ->
+ externalAPIUtil.executeExternalAPIGetCall(delegateExecution, URL)
+ }, BpmnError.class)
+
+ // THEN
+ assertThat(exceptionUtil.getDelegateExecution()).isSameAs(delegateExecution)
+ assertThat(bpmnError.getMessage()).isEqualTo("error occurred")
+ assertThat(bpmnError.getErrorCode()).isEqualTo("9999")
+ }
+
+ @Test
+ void executeExternalAPIPostCall_shouldHandleExceptionsThrownByPostCall_andRethrowAsBpmnError() {
+ // GIVEN
+ HttpClient httpClient = mock(HttpClient.class)
+ willThrow(new RuntimeException("error occurred")).given(httpClient).post(BODY_PAYLOAD)
+ HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
+ given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.AAI)).willReturn(httpClient)
+ DelegateExecution delegateExecution = createDelegateExecution()
+ DummyExceptionUtil exceptionUtil = new DummyExceptionUtil()
+
+ // WHEN
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(httpClientFactory, new DummyMsoUtils(UUID_STR), exceptionUtil)
+ BpmnError bpmnError = catchThrowableOfType({ ->
+ externalAPIUtil.executeExternalAPIPostCall(delegateExecution, URL, BODY_PAYLOAD)
+ }, BpmnError.class)
+
+ // THEN
+ assertThat(exceptionUtil.getDelegateExecution()).isSameAs(delegateExecution)
+ assertThat(bpmnError.getMessage()).isEqualTo("error occurred")
+ assertThat(bpmnError.getErrorCode()).isEqualTo("9999")
+ }
+
+ @Test
+ void executeExternalAPIPostCall_shouldPerformRestPostCall_withPayloadAndAuthorizationHeaderSet() {
+ // GIVEN
+ Response expectedResponse = createExpectedResponse(HttpStatus.ACCEPTED, BODY_PAYLOAD)
+ HttpClient httpClient = mock(HttpClient.class)
+ given(httpClient.post(BODY_PAYLOAD)).willReturn(expectedResponse)
+ HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
+ given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.AAI)).willReturn(httpClient)
+
+ // WHEN
+ ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(httpClientFactory, new DummyMsoUtils(UUID_STR), new ExceptionUtil())
+ Response apiResponse = externalAPIUtil.executeExternalAPIPostCall(createDelegateExecution(), URL, BODY_PAYLOAD)
+
+ // THEN
+ then(httpClient).should(times(1)).addBasicAuthHeader("value_externalapi_auth", "value_mso_msoKey")
+ then(httpClient).should(times(1)).addAdditionalHeader("X-FromAppId", "MSO")
+ then(httpClient).should(times(1)).addAdditionalHeader("X-TransactionId", UUID_STR)
+ ResponseAssert.assertThat(apiResponse)
+ .hasStatusCode(HttpStatus.ACCEPTED)
+ .hasBody(BODY_PAYLOAD)
+ }
+
+ private Response createExpectedResponse(HttpStatus httpStatus, String body) {
+ Response expectedResponse = mock(Response.class)
+ given(expectedResponse.getStatus()).willReturn(httpStatus.value())
+ given(expectedResponse.getEntity()).willReturn(body)
+ return expectedResponse
+ }
+
+ private DelegateExecution createDelegateExecution() {
+ DelegateExecution delegateExecution = mock(DelegateExecution.class)
+ given(delegateExecution.getVariable("URN_externalapi_auth")).willReturn("value_externalapi_auth")
+ given(delegateExecution.getVariable("URN_mso_msoKey")).willReturn("value_mso_msoKey")
+ return delegateExecution
+ }
+
+ private static class ResponseAssert extends AbstractAssert<ResponseAssert, Response> {
+
+ ResponseAssert(Response response) {
+ super(response, ResponseAssert.class)
+ }
+
+ static ResponseAssert assertThat(Response response) {
+ return new ResponseAssert(response)
+ }
+
+ ResponseAssert hasStatusCode(HttpStatus httpStatus) {
+ assertThat(actual.getStatus()).isEqualTo(httpStatus.value())
+ return this
+ }
+
+ ResponseAssert hasBody(String responseBody) {
+ assertThat(actual.getEntity()).isEqualTo(responseBody)
+ return this
+ }
+ }
+
+ private static class DummyMsoUtils extends MsoUtils {
+
+ private final String uuid
+
+ DummyMsoUtils(String uuid) {
+ this.uuid = uuid
+ }
+
+ String getRequestID() {
+ return uuid
+ }
+ }
+
+ private static class DummyExceptionUtil extends ExceptionUtil {
+
+ private DelegateExecution delegateExecution
+
+ @Override
+ void buildAndThrowWorkflowException(DelegateExecution delegateExecution, int errorCode, String errorMessage) {
+ this.delegateExecution = delegateExecution
+ throw new BpmnError(String.valueOf(errorCode), errorMessage)
+ }
+
+ DelegateExecution getDelegateExecution() {
+ return delegateExecution
+ }
+ }
+} \ No newline at end of file
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 3a2673c9ee..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
@@ -29,7 +29,7 @@ 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
@@ -41,9 +41,9 @@ 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()
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 968a694e11..c6a68c0e7a 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/NetworkUtilsTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/NetworkUtilsTest.groovy
index 510dcf665c..a920b22c71 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/NetworkUtilsTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/NetworkUtilsTest.groovy
@@ -30,7 +30,7 @@ import org.junit.Test;
class NetworkUtilsTest {
- def volumeRequestXml = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
+ String volumeRequestXml = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
<request-info>
<action>CREATE_VF_MODULE_VOL</action>
<source>VID</source>
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..3438c7957c 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
@@ -1,22 +1,22 @@
-/*-
- * ============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=========================================================
- */
+/*-
+ * ============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
@@ -31,15 +31,15 @@ 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
public void init()
{
@@ -47,7 +47,7 @@ public class SDNCAdapterTest {
System.setProperty("jboss.qualified.host.name","myhost.com")
}
-
+
String workflowResponse = """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1"
xmlns:tag0="http://org.onap/workflow/sdnc/adapter/schema/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -423,8 +423,8 @@ public class SDNCAdapterTest {
</service-request>
</rest:payload>
</sdncadaptersc:RequestData></aetgt:SDNCAdapterRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>"""
-
-def sdncAdapterResponse = """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
+
+String sdncAdapterResponse = """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
<sdncadapterworkflow:response-data>
<tag0:CallbackHeader xmlns:tag0="http://org.onap/workflow/sdnc/adapter/schema/v1">
<tag0:RequestId>39542e39-ccc3-4d1a-8b79-04ce88526613</tag0:RequestId>
@@ -439,7 +439,7 @@ def sdncAdapterResponse = """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xm
</sdncadapterworkflow:SDNCAdapterWorkflowResponse>
"""
-def workflowErrorResponse = """<aetgt:WorkflowException xmlns:aetgt="http://org.onap/so/workflow/schema/v1">
+String workflowErrorResponse = """<aetgt:WorkflowException xmlns:aetgt="http://org.onap/so/workflow/schema/v1">
<aetgt:ErrorMessage>Received error from SDN-C: Error processing request to SDNC. Not Found.
https://localhost:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.
SDNC Returned-[error-type:application, error-tag:data-missing,
@@ -453,7 +453,7 @@ String workflowErrorResponse1 = """<aetgt:WorkflowException xmlns:aetgt="http://
<aetgt:ErrorMessage>Invalid Callback Response from SDNC Adapter</aetgt:ErrorMessage>
<aetgt:ErrorCode>5300</aetgt:ErrorCode>
</aetgt:WorkflowException>"""
-
+
String enhancedCallbackRequestData =
"""<tag0:RequestData xmlns:tag0="http://org.onap/workflow/sdnc/adapter/schema/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -536,7 +536,7 @@ String enhancedCallbackRequestData =
<excluded-v4-address>192.168.1.7</excluded-v4-address>
</excluded-v4-addresses>
<v4-dhcp-pool-prefix>192.155.2.4</v4-dhcp-pool-prefix>
- </v4-dhcp-pools>
+ </v4-dhcp-pools>
<use-v4-default-pool>Y</use-v4-default-pool>
<excluded-v6-dhcp-addresses-from-default-pool>
<excluded-v6-address>1:5</excluded-v6-address>
@@ -567,7 +567,7 @@ String enhancedCallbackRequestData =
<excluded-v6-address>2:2</excluded-v6-address>
</excluded-v6-addresses>
<v6-dhcp-pool-prefix>0:0</v6-dhcp-pool-prefix>
- </v6-dhcp-pools>
+ </v6-dhcp-pools>
</dhcp>
<firewall-lite>
<stateful-firewall-lite-v6-enabled>N</stateful-firewall-lite-v6-enabled>
@@ -694,7 +694,7 @@ String enhancedCallbackRequestData =
</vr-lan-interface>
<routing-protocol>none</routing-protocol>
</vr-lan>
-<ucpe-vms-service-information>
+<ucpe-vms-service-information>
<transport-service-information>
<transport-service-type>AVPN</transport-service-type>
<access-circuit-info>
@@ -704,7 +704,7 @@ String enhancedCallbackRequestData =
<access-circuit-info>
<access-circuit-id>2</access-circuit-id>
<dual-mode>Standby</dual-mode>
- </access-circuit-info>
+ </access-circuit-info>
</transport-service-information>
<ucpe-information>
<ucpe-host-name>hostname</ucpe-host-name>
@@ -712,8 +712,8 @@ String enhancedCallbackRequestData =
<out-of-band-management-modem>OOB</out-of-band-management-modem>
</ucpe-information>
<vnf-list>
- <vnf-information>
- <vnf-instance-id>1</vnf-instance-id>
+ <vnf-information>
+ <vnf-instance-id>1</vnf-instance-id>
<vnf-sequence-number>1</vnf-sequence-number>
<vnf-type>ZZ</vnf-type>
<vnf-vendor>JUNIPER</vnf-vendor>
@@ -724,8 +724,8 @@ String enhancedCallbackRequestData =
<orchestration-status>1</orchestration-status>
<equipment-role>1</equipment-role>
</vnf-information>
- <vnf-information>
- <vnf-instance-id>2</vnf-instance-id>
+ <vnf-information>
+ <vnf-instance-id>2</vnf-instance-id>
<vnf-sequence-number>2</vnf-sequence-number>
<vnf-type>HY</vnf-type>
<vnf-vendor>JUNIPER</vnf-vendor>
@@ -735,9 +735,9 @@ String enhancedCallbackRequestData =
<operational-state>2</operational-state>
<orchestration-status>2</orchestration-status>
<equipment-role>2</equipment-role>
- </vnf-information>
+ </vnf-information>
</vnf-list>
- </ucpe-vms-service-information>
+ </ucpe-vms-service-information>
<request-information>
<request-action>Layer3ServiceActivateRequest</request-action>
<order-number>4281555</order-number>
@@ -815,42 +815,43 @@ def sdncAdapterResponseError =
</sdncadapterworkflow:response-data>
</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
-
+
@Test
public void testPreProcessRequest() {
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("mso-request-id")).thenReturn("testReqId")
when(mockExecution.getVariable("sdncAdapterWorkflowRequest")).thenReturn(sdncAdapterWorkflowRequest)
when(mockExecution.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("http://someurl.someting.com:28080/mso/sdncAdapterCallbackServiceImpl")
when(mockExecution.getVariable("mso.use.qualified.host")).thenReturn("true")
when(mockExecution.getProcessInstanceId()).thenReturn("745b1b50-e39e-4685-9cc8-c71f0bde8bf0")
when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
-
+
SDNCAdapter sdncAdapter = new SDNCAdapter()
sdncAdapter.preProcessRequest(mockExecution)
-
+
MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
debugger.printInvocations(mockExecution)
-
+
verify(mockExecution).setVariable("prefix","SDNCA_")
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("SDNCA_requestId", "745b1b50-e39e-4685-9cc8-c71f0bde8bf0")
verify(mockExecution).setVariable("sdncAdapterRequest", sdncAdapterRequest)
}
-
+
@Test
public void testProcessResponse()
{
@@ -859,17 +860,17 @@ def sdncAdapterResponseError =
when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(sdncAdapterCallbackResponse)
SDNCAdapter sdncAdapter = new SDNCAdapter()
sdncAdapter.postProcessResponse(mockExecution)
-
+
// MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
// debugger.printInvocations(mockExecution)
-
+
verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")
- verify(mockExecution).setVariable("enhancedCallbackRequestData",enhancedCallbackRequestData)
+ // verify(mockExecution).setVariable("enhancedCallbackRequestData",enhancedCallbackRequestData)
verify(mockExecution).setVariable("sdncAdapterResponse",workflowResponse)
verify(mockExecution).setVariable("continueListening",false)
- }
-
+ }
+
@Test
public void testProcessResponse_ErrorCase_404()
{
@@ -878,14 +879,14 @@ def sdncAdapterResponseError =
when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(sdncAdapterCallbackErrorResponse)
SDNCAdapter sdncAdapter = new SDNCAdapter()
sdncAdapter.postProcessResponse(mockExecution)
-
+
verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")
verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponseError)
verify(mockExecution).setVariable("enhancedCallbackRequestData", "")
verify(mockExecution).setVariable("continueListening",false)
-
+
}
-
+
@Test
public void testProcessResponse_ErrorCase_InvalidCallback()
{
@@ -893,19 +894,19 @@ def sdncAdapterResponseError =
when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn("<h1>Service Unavailable</h1>")
SDNCAdapter sdncAdapter = new SDNCAdapter()
sdncAdapter.postProcessResponse(mockExecution)
-
+
verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")
verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponseEmpty)
verify(mockExecution).setVariable("enhancedCallbackRequestData", "")
verify(mockExecution).setVariable("continueListening",false)
}
-
+
@Test
public void postProcessResponse()
{
-
- String SDNCAdapterCallbackRequest =
+
+ String SDNCAdapterCallbackRequest =
"""<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SDNCAdapterCallbackRequest
xmlns="http://org.onap/workflow/sdnc/adapter/schema/v1">
@@ -919,7 +920,7 @@ def sdncAdapterResponseError =
data model content does not exist ]</ResponseMessage>
</CallbackHeader>
</SDNCAdapterCallbackRequest>"""
-
+
String sdncAdapterResponse =
"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1"
xmlns:tag0="http://org.onap/workflow/sdnc/adapter/schema/v1">
@@ -940,7 +941,7 @@ def sdncAdapterResponseError =
when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(SDNCAdapterCallbackRequest)
SDNCAdapter sdncAdapter = new SDNCAdapter()
sdncAdapter.postProcessResponse(mockExecution)
-
+
verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")
verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponse)
verify(mockExecution).setVariable("enhancedCallbackRequestData", "")
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..51dd77d383 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-")
@@ -176,7 +180,7 @@ public class SDNCAdapterUtilsTest {
def rc = respcode
def rm = respmsg
- def output = """
+ String output = """
<output xmlns="org:onap:sdnc:northbound:generic-resource">
<svc-request-id>8b46e36e-b44f-4085-9404-427be1bc8a3</svc-request-id>
<response-code>${MsoUtils.xmlEscape(rc)}</response-code>
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/TrinityExceptionUtilTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/TrinityExceptionUtilTest.groovy
index 52f59a3fad..14fb60c245 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/TrinityExceptionUtilTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/TrinityExceptionUtilTest.groovy
@@ -41,7 +41,7 @@ import org.junit.Test
class TrinityExceptionUtilTest {
- def aotsFault ="""<n1:Fault xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n1="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/SoapFault.xsd" xmlns:cer="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/ErrorResponse.xsd" xsi:schemaLocation="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/SoapFault.xsd SoapFault-CDM.xsd">
+ String aotsFault ="""<n1:Fault xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n1="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/SoapFault.xsd" xmlns:cer="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/ErrorResponse.xsd" xsi:schemaLocation="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/SoapFault.xsd SoapFault-CDM.xsd">
<n1:faultcode>xml:space</n1:faultcode>
<n1:faultstring>String</n1:faultstring>
<n1:faultactor>http://test.com</n1:faultactor>
@@ -113,7 +113,7 @@ class TrinityExceptionUtilTest {
</requestError>
</Fault>
"""
- def errorString = """<requestError>
+ String errorString = """<requestError>
<serviceException>
<messageId>SVC3002</messageId>
<text>Error writing output performing %1 on %2 (msg=%3) (ec=%4)</text>
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnfTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnfTest.groovy
index 5641c5e12f..2bd5181c31 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnfTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIGenericVnfTest.groovy
@@ -40,8 +40,8 @@ import org.onap.so.bpmn.mock.FileUtil
import org.onap.so.bpmn.mock.StubResponseAAI
import static com.github.tomakehurst.wiremock.client.WireMock.*
-import static org.mockito.Matchers.any
-import static org.mockito.Matchers.refEq
+import static org.mockito.ArgumentMatchers.any
+import static org.mockito.ArgumentMatchers.refEq
import static org.mockito.Mockito.*
@RunWith(MockitoJUnitRunner.class)
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..2d2f58b415 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,95 @@ 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)
+ verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 200)
}
@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)
+ verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 404)
}
- 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)
+ verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 500)
+
}
}
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VidUtilsTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VidUtilsTest.groovy
index 1ab049571a..b80cb87c16 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VidUtilsTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/VidUtilsTest.groovy
@@ -53,7 +53,7 @@ import org.junit.Test;
class VidUtilsTest {
- def vfModuleReqJson = """
+ String vfModuleReqJson = """
{
"requestDetails": {
"modelInfo": {
@@ -153,7 +153,7 @@ class VidUtilsTest {
}
}
"""
- def bpmnReq1 = """
+ String bpmnReq1 = """
{
"requestDetails": {
"modelInfo": {
@@ -220,7 +220,7 @@ class VidUtilsTest {
}
"""
- def vidUtilResp1 = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
+ String vidUtilResp1 = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
<request-info>
<action>CREATE_VF_MODULE_VOL</action>
<source>VID</source>
@@ -256,7 +256,7 @@ class VidUtilsTest {
</volume-request>
"""
- def bpmnReq2 = """
+ String bpmnReq2 = """
{
"requestDetails": {
"modelInfo": {
@@ -305,7 +305,7 @@ class VidUtilsTest {
}
"""
- def bpmnReqJsonVolumeSuppressRollbackTrue = """
+ String bpmnReqJsonVolumeSuppressRollbackTrue = """
{
"requestDetails": {
"modelInfo": {
@@ -354,7 +354,7 @@ class VidUtilsTest {
}
"""
-def bpmnReqJsonVolumeSuppressRollbackFalse = """
+String bpmnReqJsonVolumeSuppressRollbackFalse = """
{
"requestDetails": {
"modelInfo": {
@@ -403,7 +403,7 @@ def bpmnReqJsonVolumeSuppressRollbackFalse = """
}
"""
-def bpmnReqJsonVolumeSuppressRollbackNone = """
+String bpmnReqJsonVolumeSuppressRollbackNone = """
{
"requestDetails": {
"modelInfo": {
@@ -451,7 +451,7 @@ def bpmnReqJsonVolumeSuppressRollbackNone = """
}
"""
- def bpmnReqJsonVfModuleSuppressRollbackTrue = """
+ String bpmnReqJsonVfModuleSuppressRollbackTrue = """
{
"requestDetails": {
"modelInfo": {
@@ -518,7 +518,7 @@ def bpmnReqJsonVolumeSuppressRollbackNone = """
}
"""
-def bpmnReqJsonVfModuleSuppressRollbackFalse = """
+String bpmnReqJsonVfModuleSuppressRollbackFalse = """
{
"requestDetails": {
"modelInfo": {
@@ -585,7 +585,7 @@ def bpmnReqJsonVfModuleSuppressRollbackFalse = """
}
"""
-def bpmnReqJsonVfModuleSuppressRollbackNone = """
+String bpmnReqJsonVfModuleSuppressRollbackNone = """
{
"requestDetails": {
"modelInfo": {
@@ -650,7 +650,7 @@ def bpmnReqJsonVfModuleSuppressRollbackNone = """
}
}
"""
- def vidUtilResp2 = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
+ String vidUtilResp2 = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
<request-info>
<action>CREATE_VF_MODULE_VOL</action>
<source>VID</source>
@@ -672,7 +672,7 @@ def bpmnReqJsonVfModuleSuppressRollbackNone = """
</volume-request>
"""
-def vidUtilVolumeRespBackoutOnFailureFalse = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
+String vidUtilVolumeRespBackoutOnFailureFalse = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
<request-info>
<action>CREATE_VF_MODULE_VOL</action>
<source>VID</source>
@@ -694,7 +694,7 @@ def vidUtilVolumeRespBackoutOnFailureFalse = """<volume-request xmlns="http://ww
</volume-request>
"""
-def vidUtilVolumeRespBackoutOnFailureTrue = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
+String vidUtilVolumeRespBackoutOnFailureTrue = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
<request-info>
<action>CREATE_VF_MODULE_VOL</action>
<source>VID</source>
@@ -716,7 +716,7 @@ def vidUtilVolumeRespBackoutOnFailureTrue = """<volume-request xmlns="http://www
</volume-request>
"""
-def vidUtilVolumeRespBackoutOnFailureEmpty = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
+String vidUtilVolumeRespBackoutOnFailureEmpty = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
<request-info>
<action>CREATE_VF_MODULE_VOL</action>
<source>VID</source>
@@ -738,7 +738,7 @@ def vidUtilVolumeRespBackoutOnFailureEmpty = """<volume-request xmlns="http://ww
</volume-request>
"""
-def vidUtilVfModuleRespBackoutOnFailureFalse = """<vnf-request>
+String vidUtilVfModuleRespBackoutOnFailureFalse = """<vnf-request>
<request-info>
<request-id>test-request-id-123</request-id>
<action>CREATE_VF_MODULE</action>
@@ -767,7 +767,7 @@ def vidUtilVfModuleRespBackoutOnFailureFalse = """<vnf-request>
</vnf-request>
"""
-def vidUtilVfModuleRespBackoutOnFailureTrue = """<vnf-request>
+String vidUtilVfModuleRespBackoutOnFailureTrue = """<vnf-request>
<request-info>
<request-id>test-request-id-123</request-id>
<action>CREATE_VF_MODULE</action>
@@ -796,7 +796,7 @@ def vidUtilVfModuleRespBackoutOnFailureTrue = """<vnf-request>
</vnf-request>
"""
-def vidUtilVfModuleRespBackoutOnFailureEmpty = """<vnf-request>
+String vidUtilVfModuleRespBackoutOnFailureEmpty = """<vnf-request>
<request-info>
<request-id>test-request-id-123</request-id>
<action>CREATE_VF_MODULE</action>
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..afc180e8a4 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
@@ -7,9 +7,9 @@
* 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.
@@ -34,14 +34,14 @@ import static org.junit.Assert.*;
@RunWith(MockitoJUnitRunner.class)
public class VnfAdapterRestV1Test {
-
+
@Before
public void init()
{
MockitoAnnotations.initMocks(this)
}
-
+
@Test
public void testPreProcessRequest() {
@@ -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")
@@ -59,11 +59,11 @@ public class VnfAdapterRestV1Test {
when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
when(mockExecution.getVariable("testProcessKey")).thenReturn("testProcessKey")
-
+
VnfAdapterRestV1 vnfAdapterRestV1 = new VnfAdapterRestV1()
vnfAdapterRestV1.preProcessRequest(mockExecution)
-
+
MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
//debugger.printInvocations(mockExecution)
@@ -78,8 +78,8 @@ public class VnfAdapterRestV1Test {
verify(mockExecution).setVariable("VNFREST_vnfAdapterUrl","http://localhost:18080/vnfs/rest/v1/vnfs/6d2e2469-8708-47c3-a0d4-73fa28a8a50b/vf-modules")
}
-
- def rollbackReq = """
+
+ String rollbackReq = """
<rollbackVolumeGroupRequest>
<volumeGroupRollback>
<volumeGroupId>8a07b246-155e-4b08-b56e-76e98a3c2d66</volumeGroupId>
@@ -97,7 +97,7 @@ public class VnfAdapterRestV1Test {
<notificationUrl>http://localhost:8080/mso/WorkflowMessage/VNFAResponse/683ca1ac-2145-4a00-9484-20d48bd701aa</notificationUrl>
</rollbackVolumeGroupRequest>
"""
-
+
@Test
public void testGetVolumeGroupId() {
Node root = new XmlParser().parseText(rollbackReq)
@@ -106,13 +106,29 @@ public class VnfAdapterRestV1Test {
assertEquals('8a07b246-155e-4b08-b56e-76e98a3c2d66', volGrpId)
}
-
+
@Test
public void testGetMessageId() {
Node root = new XmlParser().parseText(rollbackReq)
-
+
VnfAdapterRestV1 p = new VnfAdapterRestV1()
def messageId = p.getMessageIdForVolumeGroupRollback(root)
assertEquals('683ca1ac-2145-4a00-9484-20d48bd701aa', messageId)
}
+
+ @Test
+ public void testProcessCallback() {
+
+ String sdncAdapterWorkflowRequest = FileUtil.readResourceFile("__files/vnfAdapterMocks/vnfAdapterCallback.xml");
+ ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+
+ when(mockExecution.getVariable("VNFAResponse_MESSAGE")).thenReturn(sdncAdapterWorkflowRequest)
+ when(mockExecution.getVariable("testProcessKey")).thenReturn("testProcessKey")
+
+ VnfAdapterRestV1 vnfAdapterRestV1 = new VnfAdapterRestV1()
+ vnfAdapterRestV1.processCallback(mockExecution)
+
+ verify(mockExecution).setVariable("testProcessKeyResponse" ,sdncAdapterWorkflowRequest)
+
+ }
}