aboutsummaryrefslogtreecommitdiffstats
path: root/ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/BluePrintWorkflowExecutionServiceImplTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/BluePrintWorkflowExecutionServiceImplTest.kt')
-rw-r--r--ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/BluePrintWorkflowExecutionServiceImplTest.kt50
1 files changed, 50 insertions, 0 deletions
diff --git a/ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/BluePrintWorkflowExecutionServiceImplTest.kt b/ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/BluePrintWorkflowExecutionServiceImplTest.kt
index 330056221..8295f924a 100644
--- a/ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/BluePrintWorkflowExecutionServiceImplTest.kt
+++ b/ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/BluePrintWorkflowExecutionServiceImplTest.kt
@@ -16,7 +16,10 @@
package org.onap.ccsdk.cds.blueprintsprocessor.services.workflow
+import com.fasterxml.jackson.databind.JsonNode
+import com.fasterxml.jackson.databind.node.ObjectNode
import io.mockk.every
+import io.mockk.mockk
import io.mockk.mockkObject
import io.mockk.unmockkAll
import kotlinx.coroutines.runBlocking
@@ -24,18 +27,27 @@ import org.junit.After
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ActionIdentifiers
+import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.CommonHeader
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput
import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceOutput
import org.onap.ccsdk.cds.blueprintsprocessor.services.workflow.mock.MockComponentFunction
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
+import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintError
import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintProcessorException
+import org.onap.ccsdk.cds.controllerblueprints.core.asJsonType
+import org.onap.ccsdk.cds.controllerblueprints.core.data.Step
+import org.onap.ccsdk.cds.controllerblueprints.core.data.Workflow
import org.onap.ccsdk.cds.controllerblueprints.core.interfaces.BluePrintWorkflowExecutionService
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintContext
import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintDependencyService
+import org.onap.ccsdk.cds.controllerblueprints.core.service.BluePrintRuntimeService
import org.onap.ccsdk.cds.controllerblueprints.core.utils.BluePrintMetadataUtils
import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.test.context.ContextConfiguration
import org.springframework.test.context.junit4.SpringRunner
+import java.lang.RuntimeException
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
import kotlin.test.assertNotNull
@@ -126,4 +138,42 @@ class BluePrintWorkflowExecutionServiceImplTest {
}
}
}
+
+ @Test
+ fun `Should handle errors from resolve workflow output`() {
+ val imperativeWorkflowExecutionService: ImperativeWorkflowExecutionService = mockk()
+ val bluePrintWorkflowExecutionServiceImpl = BluePrintWorkflowExecutionServiceImpl(
+ mockk(), mockk(), imperativeWorkflowExecutionService)
+ val bluePrintRuntimeService: BluePrintRuntimeService<MutableMap<String, JsonNode>> = mockk()
+ val bluePrintContext: BluePrintContext = mockk()
+ val executionServiceInput = ExecutionServiceInput().apply {
+ this.actionIdentifiers = ActionIdentifiers().apply { this.actionName = "config-assign" }
+ this.commonHeader = CommonHeader()
+ this.payload = """{"config-assign-request": {}}""".asJsonType() as ObjectNode
+ }
+ val workflow = Workflow().apply {
+ this.steps = mutableMapOf("one" to Step(), "two" to Step())
+ }
+ val blueprintError = BluePrintError()
+
+ every { bluePrintRuntimeService.bluePrintContext() } returns bluePrintContext
+ every { bluePrintRuntimeService.assignWorkflowInputs(any(), any()) } returns Unit
+ every { bluePrintContext.workflowByName(any()) } returns workflow
+ every {
+ bluePrintRuntimeService.resolveWorkflowOutputs(any())
+ } throws RuntimeException("failed to resolve property...")
+ every {
+ runBlocking {
+ imperativeWorkflowExecutionService.executeBluePrintWorkflow(any(), any(), any())
+ }
+ } returns ExecutionServiceOutput()
+ every { bluePrintRuntimeService.getBluePrintError() } returns blueprintError
+
+ runBlocking {
+ val output = bluePrintWorkflowExecutionServiceImpl.executeBluePrintWorkflow(
+ bluePrintRuntimeService, executionServiceInput, mutableMapOf())
+ assertEquals("failed to resolve property...", blueprintError.errors[0])
+ assertEquals("""{"config-assign-response":{}}""".asJsonType(), output.payload)
+ }
+ }
}