summaryrefslogtreecommitdiffstats
path: root/ms/blueprintsprocessor/functions/resource-resolution/src
diff options
context:
space:
mode:
authorAlexis de Talhouët <adetalhouet89@gmail.com>2019-06-29 18:27:23 -0400
committerAlexis de Talhouët <adetalhouet89@gmail.com>2019-07-04 15:53:42 -0400
commitef0045e16049ca80a39f4c81db25e4cead7d5cd3 (patch)
tree7384773b91fa957b73a12f7e49244f2370c091f6 /ms/blueprintsprocessor/functions/resource-resolution/src
parent5f0a5dde67bc0e7c99bd8f9e9b7c447e69ce62fa (diff)
Add unit test for resolution repository
Change-Id: If66670cc5397b0bcce340092ec6ff9ec008677bc Issue-ID: CCSDK-1423 Signed-off-by: Alexis de Talhouët <adetalhouet89@gmail.com>
Diffstat (limited to 'ms/blueprintsprocessor/functions/resource-resolution/src')
-rw-r--r--ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/ResourceResolutionDBServiceTest.kt211
-rw-r--r--ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/TemplateResolutionServiceTest.kt140
-rw-r--r--ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/mock/MockRestResourceResolutionProcessor.kt2
3 files changed, 352 insertions, 1 deletions
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/ResourceResolutionDBServiceTest.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/ResourceResolutionDBServiceTest.kt
new file mode 100644
index 000000000..cfd00ac1d
--- /dev/null
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/ResourceResolutionDBServiceTest.kt
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2019 Bell Canada.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.db
+
+import io.mockk.every
+import io.mockk.mockk
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+import org.junit.Test
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.ResourceResolutionConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
+import org.onap.ccsdk.cds.controllerblueprints.core.service.DefaultBluePrintRuntimeService
+import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment
+import org.springframework.dao.EmptyResultDataAccessException
+import kotlin.test.assertEquals
+
+open class ResourceResolutionDBServiceTest {
+
+ private val resourceResolutionRepository = mockk<ResourceResolutionRepository>()
+
+ private val resourceResolutionDBService = ResourceResolutionDBService(resourceResolutionRepository)
+
+ private val resolutionKey = "resolutionKey"
+ private val resourceId = "1"
+ private val resourceType = "ServiceInstance"
+ private val occurrence = 0
+ private val artifactPrefix = "template"
+ private val blueprintName = "blueprintName"
+ private val blueprintVersion = "1.0.0"
+ private val metadata = hashMapOf<String, String>()
+ private val props = hashMapOf<String, Any>()
+ private val bluePrintContext = mockk<BluePrintContext>()
+ private val bluePrintRuntimeService = mockk<DefaultBluePrintRuntimeService>()
+
+ @Before
+ fun setup() {
+ metadata[BluePrintConstants.METADATA_TEMPLATE_VERSION] = blueprintVersion
+ metadata[BluePrintConstants.METADATA_TEMPLATE_NAME] = blueprintName
+
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_KEY] = resolutionKey
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_RESOURCE_ID] = resourceId
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_RESOURCE_TYPE] = resourceType
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_OCCURRENCE] = occurrence
+
+ every { bluePrintContext.metadata } returns metadata
+
+ every { bluePrintRuntimeService.bluePrintContext() } returns bluePrintContext
+ }
+
+ @Test
+ fun findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResolutionKeyAndOccurrenceTest() {
+
+ val rr1 = ResourceResolution()
+ val rr2 = ResourceResolution()
+
+ val list = listOf(rr1, rr2)
+ every {
+ resourceResolutionRepository.findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResolutionKeyAndOccurrence(
+ any(), any(), any(), any(), any())
+ } returns list
+ runBlocking {
+
+ val res =
+ resourceResolutionDBService.findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResolutionKeyAndOccurrence(
+ bluePrintRuntimeService, resolutionKey, occurrence, artifactPrefix)
+
+ assertEquals(2, res.size)
+ }
+ }
+
+ @Test
+ fun findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResolutionKeyAndOccurrenceTestException() {
+ every {
+ resourceResolutionRepository.findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResolutionKeyAndOccurrence(
+ any(), any(), any(), any(), any())
+ } throws EmptyResultDataAccessException(1)
+ runBlocking {
+ val res =
+ resourceResolutionDBService.findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResolutionKeyAndOccurrence(
+ bluePrintRuntimeService, resolutionKey, occurrence, artifactPrefix)
+
+ assert(res.isEmpty())
+ }
+ }
+
+ @Test
+ fun findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResourceIdAndResourceTypeAndOccurrenceTest() {
+
+ val rr1 = ResourceResolution()
+ val rr2 = ResourceResolution()
+ val list = listOf(rr1, rr2)
+ every {
+ resourceResolutionRepository.findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResourceIdAndResourceTypeAndOccurrence(
+ any(), any(), any(), any(), any(), any())
+ } returns list
+ runBlocking {
+
+ val res =
+ resourceResolutionDBService.findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResourceIdAndResourceTypeAndOccurrence(
+ bluePrintRuntimeService, resourceId, resourceType, occurrence, artifactPrefix)
+
+ assertEquals(2, res.size)
+ }
+ }
+
+ @Test
+ fun findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResourceIdAndResourceTypeAndOccurrenceTestException() {
+ every {
+ resourceResolutionRepository.findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResourceIdAndResourceTypeAndOccurrence(
+ any(), any(), any(), any(), any(), any())
+ } throws EmptyResultDataAccessException(1)
+ runBlocking {
+ val res =
+ resourceResolutionDBService.findByBlueprintNameAndBlueprintVersionAndArtifactNameAndResourceIdAndResourceTypeAndOccurrence(
+ bluePrintRuntimeService, resourceId, resourceType, occurrence, artifactPrefix)
+
+ assert(res.isEmpty())
+ }
+ }
+
+ @Test
+ fun readValueTest() {
+ val rr = ResourceResolution()
+ rr.name = "bob"
+ rr.value = "testValue"
+ every {
+ resourceResolutionRepository.findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameAndName(
+ any(), any(), any(), any(), any())
+ } returns rr
+ runBlocking {
+ val res =
+ resourceResolutionDBService.readValue(
+ blueprintName, blueprintVersion, artifactPrefix, resolutionKey, "bob")
+
+ assertEquals(rr.name, res.name)
+ assertEquals(rr.value, res.value)
+ }
+ }
+
+ @Test
+ fun readWithResolutionKeyTest() {
+ val rr1 = ResourceResolution()
+ val rr2 = ResourceResolution()
+ val list = listOf(rr1, rr2)
+ every {
+ resourceResolutionRepository.findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactName(
+ any(), any(), any(), any())
+ } returns list
+ runBlocking {
+ val res =
+ resourceResolutionDBService.readWithResolutionKey(
+ blueprintName, blueprintVersion, artifactPrefix, resolutionKey)
+ assertEquals(2, res.size)
+ }
+ }
+
+ @Test
+ fun readWithResourceIdAndResourceTypeTest() {
+ val rr1 = ResourceResolution()
+ val rr2 = ResourceResolution()
+ val list = listOf(rr1, rr2)
+ every {
+ resourceResolutionRepository.findByBlueprintNameAndBlueprintVersionAndResourceIdAndResourceType(
+ any(), any(), any(), any())
+ } returns list
+ runBlocking {
+ val res =
+ resourceResolutionDBService.readWithResourceIdAndResourceType(
+ blueprintName, blueprintVersion, resourceId, resourceType)
+ assertEquals(2, res.size)
+ }
+ }
+
+ @Test
+ fun writeTest() {
+ val resourceResolution = ResourceResolution()
+ val resourceAssignment = ResourceAssignment()
+ resourceAssignment.property?.status = BluePrintConstants.STATUS_SUCCESS
+ resourceAssignment.property?.value = "result".asJsonPrimitive()
+ resourceAssignment.dictionarySource = "ddSource"
+ resourceAssignment.dictionaryName = "ddName"
+ resourceAssignment.version = 1
+ resourceAssignment.name = "test"
+ every {
+ resourceResolutionRepository.saveAndFlush(any<ResourceResolution>())
+ } returns resourceResolution
+ runBlocking {
+ val res =
+ resourceResolutionDBService.write(
+ props, bluePrintRuntimeService, artifactPrefix, resourceAssignment)
+
+ assertEquals(resourceResolution, res)
+ }
+ }
+} \ No newline at end of file
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/TemplateResolutionServiceTest.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/TemplateResolutionServiceTest.kt
new file mode 100644
index 000000000..da1957190
--- /dev/null
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/TemplateResolutionServiceTest.kt
@@ -0,0 +1,140 @@
+package org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.db
+
+import io.mockk.confirmVerified
+import io.mockk.every
+import io.mockk.mockk
+import io.mockk.verify
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+import org.junit.Test
+import org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.ResourceResolutionConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
+import org.onap.ccsdk.cds.controllerblueprints.core.service.DefaultBluePrintRuntimeService
+import org.onap.ccsdk.cds.controllerblueprints.resource.dict.ResourceAssignment
+import org.springframework.dao.EmptyResultDataAccessException
+import kotlin.test.assertEquals
+
+class TemplateResolutionServiceTest {
+
+ private val templateResolutionRepository = mockk<TemplateResolutionRepository>()
+
+ private val templateResolutionService = TemplateResolutionService(templateResolutionRepository)
+
+ private val resolutionKey = "resolutionKey"
+ private val resourceId = "1"
+ private val resourceType = "ServiceInstance"
+ private val occurrence = 0
+ private val artifactPrefix = "template"
+ private val blueprintName = "blueprintName"
+ private val blueprintVersion = "1.0.0"
+ private val result = "result"
+ private val metadata = hashMapOf<String, String>()
+ private val props = hashMapOf<String, Any>()
+ private val bluePrintContext = mockk<BluePrintContext>()
+ private val bluePrintRuntimeService = mockk<DefaultBluePrintRuntimeService>()
+
+ @Before
+ fun setup() {
+ metadata[BluePrintConstants.METADATA_TEMPLATE_VERSION] = blueprintVersion
+ metadata[BluePrintConstants.METADATA_TEMPLATE_NAME] = blueprintName
+
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_KEY] = resolutionKey
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_RESOURCE_ID] = resourceId
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_RESOURCE_TYPE] = resourceType
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_OCCURRENCE] = occurrence
+
+ every { bluePrintContext.metadata } returns metadata
+
+ every { bluePrintRuntimeService.bluePrintContext() } returns bluePrintContext
+ }
+
+ @Test
+ fun findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameTest() {
+ val tr = TemplateResolution()
+ tr.result = "res"
+ runBlocking {
+ every {
+ templateResolutionRepository.findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ any(), any(), any(), any(), any())
+ } returns tr
+ val res =
+ templateResolutionService.findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactName(
+ bluePrintRuntimeService, artifactPrefix, resolutionKey)
+ assertEquals(tr.result, res)
+ }
+ }
+
+ @Test(expected = EmptyResultDataAccessException::class)
+ fun findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameTestException() {
+ val tr = TemplateResolution()
+ runBlocking {
+ every {
+ templateResolutionRepository.findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ any(), any(), any(), any(), any())
+ } returns tr
+ templateResolutionService.findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactName(
+ bluePrintRuntimeService, artifactPrefix, resolutionKey)
+ }
+ }
+
+ @Test
+ fun writeWithResolutionKeyTest() {
+ val tr = TemplateResolution()
+ runBlocking {
+ every { templateResolutionRepository.saveAndFlush(any<TemplateResolution>()) } returns tr
+ every {
+ templateResolutionRepository.findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ any(), any(), any(), any(), any())
+ } returns null
+ val res = templateResolutionService.write(props, result, bluePrintRuntimeService, artifactPrefix)
+ assertEquals(tr, res)
+ }
+ }
+
+ @Test
+ fun writeWithResolutionKeyExistingTest() {
+ val tr = TemplateResolution()
+ runBlocking {
+ every { templateResolutionRepository.saveAndFlush(any<TemplateResolution>()) } returns tr
+ every {
+ templateResolutionRepository.findByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ any(), any(), any(), any(), any())
+ } returns tr
+ every {
+ templateResolutionRepository.deleteByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ any(), any(), any(), any(), any())
+ } returns Unit
+ val res = templateResolutionService.write(props, result, bluePrintRuntimeService, artifactPrefix)
+ verify {
+ templateResolutionRepository.deleteByResolutionKeyAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ eq(resolutionKey), eq(blueprintName), eq(blueprintVersion), eq(artifactPrefix), eq(occurrence))
+ }
+ assertEquals(tr, res)
+ }
+ }
+
+ @Test
+ fun writeWithResourceIdResourceTypeExistingTest() {
+ props[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_KEY] = ""
+ val tr = TemplateResolution()
+ runBlocking {
+ every { templateResolutionRepository.saveAndFlush(any<TemplateResolution>()) } returns tr
+ every {
+ templateResolutionRepository.findByResourceIdAndResourceTypeAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ any(), any(), any(), any(), any(), any())
+ } returns tr
+ every {
+ templateResolutionRepository.deleteByResourceIdAndResourceTypeAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ any(), any(), any(), any(), any(), any())
+ } returns Unit
+ val res = templateResolutionService.write(props, result, bluePrintRuntimeService, artifactPrefix)
+ verify {
+ templateResolutionRepository.deleteByResourceIdAndResourceTypeAndBlueprintNameAndBlueprintVersionAndArtifactNameAndOccurrence(
+ eq(resourceId), eq(resourceType), eq(blueprintName), eq(blueprintVersion), eq(artifactPrefix), eq(occurrence))
+ }
+ assertEquals(tr, res)
+ }
+ }
+} \ No newline at end of file
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/mock/MockRestResourceResolutionProcessor.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/mock/MockRestResourceResolutionProcessor.kt
index be023307b..e80663094 100644
--- a/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/mock/MockRestResourceResolutionProcessor.kt
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/mock/MockRestResourceResolutionProcessor.kt
@@ -98,7 +98,7 @@ class MockRestResourceResolutionProcessor(private val blueprintRestLibPropertySe
}
} catch (e: Exception) {
ResourceAssignmentUtils.setFailedResourceDataValue(executionRequest, e.message)
- throw BluePrintProcessorException("Failed in template key ($executionRequest) assignments with: ${e.message}",
+ throw BluePrintProcessorException("Failed in template resolutionKey ($executionRequest) assignments with: ${e.message}",
e)
}
}