Add support for workflow validation
[ccsdk/cds.git] / components / core / src / test / kotlin / org / onap / ccsdk / apps / controllerblueprints / core / service / BluePrintRuntimeServiceTest.kt
index f1980d2..1dfb89a 100644 (file)
 \r
 package org.onap.ccsdk.apps.controllerblueprints.core.service\r
 \r
+import com.att.eelf.configuration.EELFLogger\r
+import com.att.eelf.configuration.EELFManager\r
 import com.fasterxml.jackson.databind.JsonNode\r
-import org.junit.Before\r
+import com.fasterxml.jackson.databind.node.NullNode\r
 import org.junit.Test\r
 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants\r
-import org.onap.ccsdk.apps.controllerblueprints.core.factory.BluePrintParserFactory\r
+import org.onap.ccsdk.apps.controllerblueprints.core.asJsonPrimitive\r
+import org.onap.ccsdk.apps.controllerblueprints.core.utils.BluePrintMetadataUtils\r
 import org.onap.ccsdk.apps.controllerblueprints.core.utils.BluePrintRuntimeUtils\r
 import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils.jsonNodeFromFile\r
 import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils.jsonNodeFromObject\r
-import com.att.eelf.configuration.EELFLogger\r
-import com.att.eelf.configuration.EELFManager\r
 import kotlin.test.assertEquals\r
 import kotlin.test.assertNotNull\r
 \r
@@ -37,13 +38,6 @@ import kotlin.test.assertNotNull
  */\r
 class BluePrintRuntimeServiceTest {\r
     private val log: EELFLogger = EELFManager.getInstance().getLogger(this::class.toString())\r
-    val basepath = "load/blueprints"\r
-\r
-\r
-    @Before\r
-    fun setUp(): Unit {\r
-\r
-    }\r
 \r
     @Test\r
     fun testResolveNodeTemplateProperties() {\r
@@ -56,40 +50,40 @@ class BluePrintRuntimeServiceTest {
         val inputNode: JsonNode = jsonNodeFromFile(inputDataPath)\r
         bluePrintRuntimeService.assignInputs(inputNode)\r
 \r
-        val propContext: MutableMap<String, Any?> = bluePrintRuntimeService.resolveNodeTemplateProperties("resource-assignment-action")\r
-        log.info("Context {}", bluePrintRuntimeService.context)\r
+        val propContext: MutableMap<String, JsonNode> = bluePrintRuntimeService.resolveNodeTemplateProperties("activate-process")\r
 \r
         assertNotNull(propContext, "Failed to populate interface property values")\r
-        assertEquals(propContext.get("mode"), jsonNodeFromObject("sync"), "Failed to populate parameter process-name")\r
-        assertEquals(propContext.get("version"), jsonNodeFromObject("1.0.0"), "Failed to populate parameter version")\r
     }\r
 \r
     @Test\r
-    fun testResolveNodeTemplateInterfaceOperationInputs() {\r
-        log.info("************************ testResolveNodeTemplateInterfaceOperationInputs **********************")\r
-        val bluePrintContext: BluePrintContext = BluePrintParserFactory.instance(BluePrintConstants.TYPE_DEFAULT)!!\r
-                .readBlueprintFile("baseconfiguration/Definitions/activation-blueprint.json", basepath)\r
-        assertNotNull(bluePrintContext, "Failed to populate Blueprint context")\r
-\r
-        val context: MutableMap<String, Any> = hashMapOf()\r
-        context[BluePrintConstants.PROPERTY_BLUEPRINT_BASE_PATH] = basepath.plus("/simple-baseconfig")\r
+    fun testResolveNodeTemplateCapabilityProperties() {\r
+        log.info("************************ testResolveNodeTemplateRequirementProperties **********************")\r
+        //TODO\r
+    }\r
 \r
-        val inputDataPath = "src/test/resources/data/default-context.json"\r
-        BluePrintRuntimeUtils.assignInputsFromFile(bluePrintContext, inputDataPath, context)\r
+    @Test\r
+    fun testResolveNodeTemplateRequirementProperties() {\r
+        log.info("************************ testResolveNodeTemplateRequirementProperties **********************")\r
+        //TODO\r
+    }\r
 \r
+    @Test\r
+    fun testResolveNodeTemplateInterfaceOperationInputs() {\r
+        log.info("************************ testResolveNodeTemplateInterfaceOperationInputs **********************")\r
 \r
-        val bluePrintRuntimeService = BluePrintRuntimeService(bluePrintContext, context)\r
+        val bluePrintRuntimeService = getBluePrintRuntimeService()\r
 \r
-        log.info("Prepared Context {}", context)\r
+        val executionContext = bluePrintRuntimeService.getExecutionContext()\r
 \r
-        val inContext: MutableMap<String, Any?> = bluePrintRuntimeService.resolveNodeTemplateInterfaceOperationInputs("resource-assignment-ra-component",\r
-                "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode", "process")\r
+        BluePrintRuntimeUtils.assignInputsFromClassPathFile(bluePrintRuntimeService.bluePrintContext(),\r
+                "data/default-context.json", executionContext)\r
 \r
-        log.info("In Context {}", inContext)\r
+        val inContext: MutableMap<String, JsonNode> = bluePrintRuntimeService.resolveNodeTemplateInterfaceOperationInputs("resource-assignment",\r
+                "ResourceAssignmentComponent", "process")\r
 \r
         assertNotNull(inContext, "Failed to populate interface input property values")\r
-        assertEquals(inContext.get("action-name"), jsonNodeFromObject("sample-action"), "Failed to populate parameter action-name")\r
-        assertEquals(inContext.get("request-id"), jsonNodeFromObject("12345"), "Failed to populate parameter action-name")\r
+        assertEquals(inContext["action-name"], jsonNodeFromObject("sample-action"), "Failed to populate parameter action-name")\r
+        assertEquals(inContext["request-id"], jsonNodeFromObject("12345"), "Failed to populate parameter action-name")\r
     }\r
 \r
     @Test\r
@@ -98,24 +92,18 @@ class BluePrintRuntimeServiceTest {
 \r
         val bluePrintRuntimeService = getBluePrintRuntimeService()\r
 \r
-        val successValue: JsonNode = jsonNodeFromObject("Success")\r
-        val paramValue: JsonNode = jsonNodeFromObject("param-content")\r
-\r
-        bluePrintRuntimeService.setNodeTemplateAttributeValue("resource-assignment-ra-component", "params", paramValue)\r
-\r
-        bluePrintRuntimeService.resolveNodeTemplateInterfaceOperationOutputs("resource-assignment-ra-component",\r
-                "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode", "process")\r
+        bluePrintRuntimeService.setNodeTemplateAttributeValue("resource-assignment", "assignment-params", NullNode.getInstance())\r
 \r
-        val resourceAssignmentParamsNode = bluePrintRuntimeService.getNodeTemplateOperationOutputValue("resource-assignment-ra-component",\r
-                "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode", "process", "resource-assignment-params")\r
+        bluePrintRuntimeService.resolveNodeTemplateInterfaceOperationOutputs("resource-assignment",\r
+                "ResourceAssignmentComponent", "process")\r
 \r
-        val statusNode = bluePrintRuntimeService.getNodeTemplateOperationOutputValue("resource-assignment-ra-component",\r
-                "org-onap-ccsdk-config-assignment-service-ConfigAssignmentNode", "process", "status")\r
-\r
-        assertEquals(paramValue, resourceAssignmentParamsNode, "Failed to get operation property resource-assignment-params")\r
-\r
-        assertEquals(successValue, statusNode, "Failed to get operation property status")\r
+        val outputStatus = bluePrintRuntimeService.getNodeTemplateOperationOutputValue("resource-assignment",\r
+                "ResourceAssignmentComponent", "process", "status")\r
+        assertEquals("success".asJsonPrimitive(), outputStatus, "Failed to get operation property status")\r
 \r
+        val outputParams = bluePrintRuntimeService.getNodeTemplateOperationOutputValue("resource-assignment",\r
+                "ResourceAssignmentComponent", "process", "resource-assignment-params")\r
+        assertEquals(NullNode.getInstance(), outputParams, "Failed to get operation property resource-assignment-params")\r
 \r
     }\r
 \r
@@ -129,8 +117,6 @@ class BluePrintRuntimeServiceTest {
         bluePrintRuntimeService.setNodeTemplateAttributeValue("resource-assignment-ra-component", "context2",\r
                 jsonNodeFromObject("context2-value"))\r
 \r
-        log.info("Context {}", bluePrintRuntimeService.context)\r
-\r
         val keys = listOf("context1", "context2")\r
 \r
         val jsonValueNode = bluePrintRuntimeService.getJsonForNodeTemplateAttributeProperties("resource-assignment-ra-component", keys)\r
@@ -139,15 +125,14 @@ class BluePrintRuntimeServiceTest {
 \r
     }\r
 \r
-    private fun getBluePrintRuntimeService(): BluePrintRuntimeService {\r
-        val bluePrintContext: BluePrintContext = BluePrintParserFactory.instance(BluePrintConstants.TYPE_DEFAULT)!!\r
-                .readBlueprintFile("baseconfiguration/Definitions/activation-blueprint.json", basepath)\r
-        assertNotNull(bluePrintContext, "Failed to populate Blueprint context")\r
+    private fun getBluePrintRuntimeService(): BluePrintRuntimeService<MutableMap<String, JsonNode>> {\r
+        val blueprintBasePath: String = ("./../model-catalog/blueprint-model/starter-blueprint/baseconfiguration")\r
+        val blueprintRuntime = BluePrintMetadataUtils.getBluePrintRuntime("1234", blueprintBasePath)\r
+        val checkBasePath = blueprintRuntime.get(BluePrintConstants.PROPERTY_BLUEPRINT_BASE_PATH)\r
 \r
-        val context: MutableMap<String, Any> = hashMapOf()\r
-        context[BluePrintConstants.PROPERTY_BLUEPRINT_BASE_PATH] = basepath.plus("/simple-baseconfig")\r
+        assertEquals(blueprintBasePath.asJsonPrimitive(), checkBasePath, "Failed to get base path after runtime creation")\r
 \r
-        return BluePrintRuntimeService(bluePrintContext, context)\r
+        return blueprintRuntime\r
     }\r
 \r
 }
\ No newline at end of file