Fail to get assignment-params when error occur

Exception is always thrown due to the contract, enforcing
the get attribute to throw an exception if not found.
For the resource resolution result, we can simply initialize
the property to an empty json, so system won't throw an exception
if user request the output, but process failed.

Change-Id: I39e288590502c75495e2938a44b874dfd0671155
Issue-ID: CCSDK-1495
Signed-off-by: Alexis de Talhouët <adetalhouet89@gmail.com>
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponent.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponent.kt
index b38ebb1..df7e048 100644
--- a/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponent.kt
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponent.kt
@@ -51,6 +51,9 @@
         properties[ResourceResolutionConstants.RESOURCE_RESOLUTION_INPUT_OCCURRENCE] = occurrence
 
         val jsonResponse = JsonNodeFactory.instance.objectNode()
+        // Initialize Output Attribute to empty JSON
+        bluePrintRuntimeService.setNodeTemplateAttributeValue(nodeTemplateName,
+            ResourceResolutionConstants.OUTPUT_ASSIGNMENT_PARAMS, jsonResponse)
 
         // validate inputs if we need to store the resource and template resolution.
         if (storeResult) {
@@ -84,7 +87,7 @@
 
         }
 
-        // Set Output Attributes
+        // Set Output Attributes with resolved value
         bluePrintRuntimeService.setNodeTemplateAttributeValue(nodeTemplateName,
                 ResourceResolutionConstants.OUTPUT_ASSIGNMENT_PARAMS, jsonResponse)
     }
diff --git a/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponentTest.kt b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponentTest.kt
index 560bc41..b63fa67 100644
--- a/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponentTest.kt
+++ b/ms/blueprintsprocessor/functions/resource-resolution/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/functions/resource/resolution/ResourceResolutionComponentTest.kt
@@ -71,6 +71,8 @@
         resourceResolutionComponent.stepName = "step"
         resourceResolutionComponent.interfaceName = "interfaceName"
         resourceResolutionComponent.operationName = "operationName"
+
+        every { bluePrintRuntimeService.setNodeTemplateAttributeValue(any(), any(), any()) } returns Unit
     }
 
     @Test
@@ -139,7 +141,6 @@
                     any<List<String>>(),
                     any<MutableMap<String, Any>>())
         } returns mutableMapOf()
-        every { bluePrintRuntimeService.setNodeTemplateAttributeValue(any(), any(), any()) } returns Unit
 
 
         runBlocking {