diff options
author | Dan Timoney <dtimoney@att.com> | 2019-04-02 18:10:23 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2019-04-02 18:10:23 +0000 |
commit | add0df2429c787de6de8238f8f87eb71a26a9be7 (patch) | |
tree | 0f5b96c5c35ebe4aa30281e37ccd9278f5cc5b61 /ms/blueprintsprocessor/modules/services | |
parent | 5e4720c9a7698ee29f74c81666b2b56bf16b46c3 (diff) | |
parent | e8db37654457e9a83136da39006e962048295cf5 (diff) |
Merge "Complementary Junit test coverage"
Diffstat (limited to 'ms/blueprintsprocessor/modules/services')
7 files changed, 205 insertions, 15 deletions
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt index 2a4509033..586888bab 100644 --- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonService.kt @@ -33,7 +33,7 @@ import java.io.File @Service class BlueprintJythonService(val pythonExecutorProperty: PythonExecutorProperty, - private val applicationContext: ApplicationContext) { + private val applicationContext: ApplicationContext) { val log: Logger = LoggerFactory.getLogger(BlueprintJythonService::class.java) @@ -57,7 +57,6 @@ class BlueprintJythonService(val pythonExecutorProperty: PythonExecutorProperty, fun jythonComponentInstance(bluePrintContext: BluePrintContext, scriptClassReference: String): BlueprintFunctionNode<*, *> { - val blueprintBasePath: String = bluePrintContext.rootPath val pythonFileName = bluePrintContext.rootPath .plus(File.separator) @@ -68,10 +67,6 @@ class BlueprintJythonService(val pythonExecutorProperty: PythonExecutorProperty, val content: String = JacksonUtils.getContent(pythonFileName) - val pythonPath: MutableList<String> = arrayListOf() - pythonPath.add(blueprintBasePath) - pythonPath.addAll(pythonExecutorProperty.modulePaths) - val jythonInstances: MutableMap<String, Any> = hashMapOf() jythonInstances["log"] = LoggerFactory.getLogger(pythonClassName) diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/PythonExecutorConfiguration.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/PythonExecutorConfiguration.kt index 430692ce0..658b0c291 100644 --- a/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/PythonExecutorConfiguration.kt +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/PythonExecutorConfiguration.kt @@ -23,7 +23,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.ComponentScan import org.springframework.context.annotation.Configuration import java.io.File -import java.util.* +import java.util.Properties @Configuration @ComponentScan diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonServiceTest.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonServiceTest.kt index c8c9f0b6a..ceb824d13 100644 --- a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonServiceTest.kt +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintJythonServiceTest.kt @@ -30,6 +30,7 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.TestPropertySource import org.springframework.test.context.junit4.SpringRunner import kotlin.test.assertNotNull +import kotlin.test.BeforeTest @RunWith(SpringRunner::class) @ContextConfiguration(classes = [BlueprintJythonService::class, PythonExecutorProperty::class]) @@ -38,25 +39,39 @@ import kotlin.test.assertNotNull "blueprints.processor.functions.python.executor.executionPath=./../../../../../components/scripts/python/ccsdk_blueprints"]) class BlueprintJythonServiceTest { + lateinit var blueprintContext: BluePrintContext @Autowired private lateinit var blueprintJythonService: BlueprintJythonService + @BeforeTest + fun init() { + blueprintContext = mockk<BluePrintContext>() + every { blueprintContext.rootPath } returns normalizedPathName("target") + } + @Test fun testGetAbstractPythonPlugin() { - val bluePrintContext = mockk<BluePrintContext>() - every { bluePrintContext.rootPath } returns normalizedPathName("target") - - val dependencies: MutableMap<String, Any> = hashMapOf() val content = JacksonUtils.getClassPathFileContent("scripts/SamplePythonComponentNode.py") + val dependencies: MutableMap<String, Any> = hashMapOf() - val abstractComponentFunction = blueprintJythonService - .jythonInstance<AbstractComponentFunction>(bluePrintContext, "SamplePythonComponentNode", + val abstractPythonPlugin = blueprintJythonService + .jythonInstance<AbstractComponentFunction>(blueprintContext, "SamplePythonComponentNode", content, dependencies) - assertNotNull(abstractComponentFunction, "failed to get python component") + assertNotNull(abstractPythonPlugin, "failed to get python component") + + abstractPythonPlugin.process(ExecutionServiceInput()) + + } + + @Test + fun testGetAbstractJythonComponent() { + + val scriptInstance = "test-classes/scripts/SamplePythonComponentNode.py" - abstractComponentFunction.process(ExecutionServiceInput()) + val abstractJythonComponent = blueprintJythonService.jythonComponentInstance(blueprintContext, scriptInstance) + assertNotNull(abstractJythonComponent, "failed to get Jython component") } }
\ No newline at end of file diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHostTest.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHostTest.kt new file mode 100644 index 000000000..3c3efa252 --- /dev/null +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonHostTest.kt @@ -0,0 +1,62 @@ +/* + * Copyright © 2019 IBM, 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.services.execution.scripts + +import org.junit.Test + +import org.junit.runner.RunWith +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.TestPropertySource +import org.springframework.test.context.junit4.SpringRunner +import kotlin.test.assertNotNull +import kotlin.test.BeforeTest + +@RunWith(SpringRunner::class) +@ContextConfiguration(classes = [BluePrintPython::class, PythonExecutorProperty::class, String::class]) +@TestPropertySource(properties = +["blueprints.processor.functions.python.executor.modulePaths=./../../../../../components/scripts/python/ccsdk_blueprints", + "blueprints.processor.functions.python.executor.executionPath=./../../../../../components/scripts/python/ccsdk_blueprints"]) +class BlueprintPythonHostTest { + + lateinit var blueprintPythonHost: BlueprintPythonHost + + @Autowired + lateinit var pythonExecutorProperty: PythonExecutorProperty + + @BeforeTest + fun init() { + val blueprintBasePath = "./../../../../../components/model-catalog/blueprint-model/test-blueprint/baseconfiguration" + val pythonPath: MutableList<String> = arrayListOf() + pythonPath.add(blueprintBasePath) + pythonPath.addAll(pythonExecutorProperty.modulePaths) + + blueprintPythonHost = BlueprintPythonHost(BluePrintPython(pythonExecutorProperty.executionPath, pythonPath, arrayListOf())) + } + + @Test + fun testGetPythonComponent() { + val content = JacksonUtils.getContent("./src/test/resources/PythonTestScript.py") + + val pythonClassName = "PythonTestScript" + val dependencies: MutableMap<String, Any> = hashMapOf() + + val pythonObject = blueprintPythonHost.getPythonComponent(content, pythonClassName, dependencies) + + assertNotNull(pythonObject, "failed to get python object") + } +}
\ No newline at end of file diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonInterpreterProxyTest.kt b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonInterpreterProxyTest.kt new file mode 100644 index 000000000..12ef9733a --- /dev/null +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/execution/scripts/BlueprintPythonInterpreterProxyTest.kt @@ -0,0 +1,48 @@ +package org.onap.ccsdk.cds.blueprintsprocessor.services.execution.scripts + +import org.junit.Test +import org.junit.runner.RunWith +import org.onap.ccsdk.cds.controllerblueprints.core.utils.JacksonUtils + +import kotlin.test.assertNotNull +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.test.context.ContextConfiguration +import org.springframework.test.context.TestPropertySource +import org.springframework.test.context.junit4.SpringRunner +import kotlin.test.BeforeTest + +@RunWith(SpringRunner::class) +@ContextConfiguration(classes = [BluePrintPython::class, PythonExecutorProperty::class, String::class]) +@TestPropertySource(properties = +["blueprints.processor.functions.python.executor.modulePaths=./../../../../../components/scripts/python/ccsdk_blueprints", + "blueprints.processor.functions.python.executor.executionPath=./../../../../../components/scripts/python/ccsdk_blueprints"]) +class BlueprintPythonInterpreterProxyTest { + + lateinit var blueprintPythonInterpreterProxy: BlueprintPythonInterpreterProxy + + @Autowired + lateinit var pythonExecutorProperty: PythonExecutorProperty + + @BeforeTest + fun init() { + val blueprintBasePath = "./../../../../../components/model-catalog/blueprint-model/test-blueprint/baseconfiguration" + val pythonPath: MutableList<String> = arrayListOf() + pythonPath.add(blueprintBasePath) + pythonPath.addAll(pythonExecutorProperty.modulePaths) + val pythonClassName = "PythonTestScript" + val content = JacksonUtils.getContent("./src/test/resources/PythonTestScript.py") + + val blueprintPython = BluePrintPython(pythonExecutorProperty.executionPath, pythonPath, arrayListOf()) + blueprintPython.content = content + blueprintPython.pythonClassName = pythonClassName + blueprintPython.moduleName = "Unit test - Blueprint Python Script [Class Name = $pythonClassName]" + + blueprintPythonInterpreterProxy = BlueprintPythonInterpreterProxy(blueprintPython) + } + + @Test + fun getPythonInterpreter() { + val pythonObject = blueprintPythonInterpreterProxy.getPythonInstance(hashMapOf()) + assertNotNull(pythonObject, "failed to get python interpreter") + } +}
\ No newline at end of file diff --git a/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/PythonTestScript.py b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/PythonTestScript.py new file mode 100644 index 000000000..42b611b88 --- /dev/null +++ b/ms/blueprintsprocessor/modules/services/execution-service/src/test/resources/PythonTestScript.py @@ -0,0 +1,9 @@ +class PythonTestScript(): + + def process(self, execution_request): + print "Processing calling..." + PROPERTY_BLUEPRINT_BASE_PATH + return None + + def recover(self, runtime_exception, execution_request): + print "Recovering calling..." + PROPERTY_BLUEPRINT_BASE_PATH + return None diff --git a/ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/NodeTemplateExecutionServiceTest.kt b/ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/NodeTemplateExecutionServiceTest.kt new file mode 100644 index 000000000..05cd99785 --- /dev/null +++ b/ms/blueprintsprocessor/modules/services/workflow-service/src/test/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/services/workflow/NodeTemplateExecutionServiceTest.kt @@ -0,0 +1,61 @@ +/* + * Copyright © 2019 IBM, 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.services.workflow + +import kotlinx.coroutines.runBlocking +import org.junit.Test +import org.junit.runner.RunWith +import org.onap.ccsdk.cds.blueprintsprocessor.core.api.data.ExecutionServiceInput +import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants +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 kotlin.test.assertEquals +import kotlin.test.assertNotNull + +@RunWith(SpringRunner::class) +@ContextConfiguration(classes = [WorkflowServiceConfiguration::class]) + +class NodeTemplateExecutionServiceTest { + @Autowired + lateinit var nodeTemplateExecutionService: NodeTemplateExecutionService + + @Test + fun testExecuteNodeTemplate() { + runBlocking { + val bluePrintRuntimeService = BluePrintMetadataUtils.getBluePrintRuntime("1234", + "./../../../../../components/model-catalog/blueprint-model/test-blueprint/baseconfiguration") + + val executionServiceInput = JacksonUtils.readValueFromClassPathFile("execution-input/resource-assignment-input.json", + ExecutionServiceInput::class.java)!! + + // Assign Workflow inputs Mock + val input = executionServiceInput.payload.get("resource-assignment-request") + bluePrintRuntimeService.assignWorkflowInputs("resource-assignment", input) + + val nodeTemplate = "resource-assignment" + + val executionServiceOutput = nodeTemplateExecutionService + .executeNodeTemplate(bluePrintRuntimeService, nodeTemplate, executionServiceInput) + + assertNotNull(executionServiceOutput, "failed to get response") + assertEquals(BluePrintConstants.STATUS_SUCCESS, executionServiceOutput.status.message, + "failed to get successful response") + } + } +}
\ No newline at end of file |