Fix null safety - ResourceResolutionDBService.write 41/106941/2
authorJozsef Csongvai <jozsef.csongvai@bell.ca>
Thu, 30 Apr 2020 17:27:56 +0000 (13:27 -0400)
committerJozsef Csongvai <jozsef.csongvai@bell.ca>
Thu, 30 Apr 2020 17:48:56 +0000 (13:48 -0400)
Issue-ID: CCSDK-2352
Signed-off-by: Jozsef Csongvai <jozsef.csongvai@bell.ca>
Change-Id: I49a56dff0636617111f02be141764600e0a1e082

ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/ResourceResolutionDBService.kt
ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/db/ResourceResolutionDBServiceTest.kt

index dc15537..1a5d062 100644 (file)
@@ -181,11 +181,11 @@ class ResourceResolutionDBService(private val resourceResolutionRepository: Reso
         resourceResolution.resolutionKey = resolutionKey
         resourceResolution.resourceType = resourceType
         resourceResolution.resourceId = resourceId
-        if (BluePrintConstants.STATUS_SUCCESS == resourceAssignment.status) {
-            resourceResolution.value = JacksonUtils.getValue(resourceAssignment.property?.value!!).toString()
-        } else {
-            resourceResolution.value = ""
-        }
+        resourceResolution.value = resourceAssignment.property?.value?.let {
+            if (BluePrintConstants.STATUS_SUCCESS == resourceAssignment.status)
+                JacksonUtils.getValue(it).toString()
+            else ""
+        } ?: ""
         resourceResolution.name = resourceAssignment.name
         resourceResolution.dictionaryName = resourceAssignment.dictionaryName
         resourceResolution.dictionaryVersion = resourceAssignment.version
index e667cd1..672d4b7 100644 (file)
@@ -18,6 +18,7 @@ package org.onap.ccsdk.cds.blueprintsprocessor.functions.resource.resolution.db
 
 import io.mockk.every
 import io.mockk.mockk
+import io.mockk.slot
 import kotlinx.coroutines.runBlocking
 import org.junit.Before
 import org.junit.Test
@@ -224,6 +225,29 @@ open class ResourceResolutionDBServiceTest {
         }
     }
 
+    @Test
+    fun writeWithNullValue() {
+        val slot = slot<ResourceResolution>()
+        val resourceAssignment = ResourceAssignment()
+        resourceAssignment.status = BluePrintConstants.STATUS_SUCCESS
+        resourceAssignment.dictionarySource = "ddSource"
+        resourceAssignment.dictionaryName = "ddName"
+        resourceAssignment.version = 1
+        resourceAssignment.name = "test"
+        every {
+            resourceResolutionRepository.saveAndFlush(capture(slot))
+        } returns ResourceResolution()
+        runBlocking {
+            resourceResolutionDBService.write(
+                            props, bluePrintRuntimeService, artifactPrefix, resourceAssignment
+                    )
+
+            val res = slot.captured
+
+            assertEquals("", res.value)
+        }
+    }
+
     @Test
     fun deleteByBlueprintNameAndBlueprintVersionAndArtifactNameAndResolutionKeyTest() {
         every {