Merge "Add declarative acceptance tests"
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / services / execution-service / src / main / kotlin / org / onap / ccsdk / cds / blueprintsprocessor / services / execution / ComponentScriptExecutorDSL.kt
index de6a8bd..bf49972 100644 (file)
@@ -23,7 +23,7 @@ import org.onap.ccsdk.cds.controllerblueprints.core.asJsonPrimitive
 import org.onap.ccsdk.cds.controllerblueprints.core.asJsonType
 import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeTemplate
 import org.onap.ccsdk.cds.controllerblueprints.core.data.NodeType
-import org.onap.ccsdk.cds.controllerblueprints.core.dsl.AbstractNodeTemplateImplBuilder
+import org.onap.ccsdk.cds.controllerblueprints.core.dsl.AbstractNodeTemplateOperationImplBuilder
 import org.onap.ccsdk.cds.controllerblueprints.core.dsl.PropertiesAssignmentBuilder
 import org.onap.ccsdk.cds.controllerblueprints.core.dsl.nodeType
 
@@ -65,49 +65,51 @@ fun BluePrintTypes.nodeTypeComponentScriptExecutor(): NodeType {
 /** Component Builder */
 fun BluePrintTypes.nodeTemplateComponentScriptExecutor(id: String,
                                                        description: String,
-                                                       block: ComponentScriptExecutorNodeTemplateImplBuilder.() -> Unit)
+                                                       block: ComponentScriptExecutorNodeTemplateBuilder.() -> Unit)
         : NodeTemplate {
-    return ComponentScriptExecutorNodeTemplateImplBuilder(id, description).apply(block).build()
+    return ComponentScriptExecutorNodeTemplateBuilder(id, description).apply(block).build()
 }
 
-class ComponentScriptExecutorNodeTemplateImplBuilder(id: String, description: String) :
-        AbstractNodeTemplateImplBuilder<ComponentScriptExecutorInputAssignmentBuilder,
-                ComponentScriptExecutorOutputAssignmentBuilder>(id, "component-script-executor",
+class ComponentScriptExecutorNodeTemplateBuilder(id: String, description: String) :
+        AbstractNodeTemplateOperationImplBuilder<PropertiesAssignmentBuilder,
+                ComponentScriptExecutorNodeTemplateBuilder.InputsBuilder,
+                ComponentScriptExecutorNodeTemplateBuilder.OutputsBuilder>(id, "component-script-executor",
                 "ComponentScriptExecutor",
-                description)
+                description) {
 
-class ComponentScriptExecutorInputAssignmentBuilder : PropertiesAssignmentBuilder() {
+    class InputsBuilder : PropertiesAssignmentBuilder() {
 
-    fun type(type: String) = type(type.asJsonPrimitive())
+        fun type(type: String) = type(type.asJsonPrimitive())
 
-    fun type(type: JsonNode) {
-        property(ComponentScriptExecutor.INPUT_SCRIPT_TYPE, type)
-    }
+        fun type(type: JsonNode) {
+            property(ComponentScriptExecutor.INPUT_SCRIPT_TYPE, type)
+        }
 
-    fun scriptClassReference(scriptClassReference: String) = scriptClassReference(scriptClassReference.asJsonPrimitive())
+        fun scriptClassReference(scriptClassReference: String) = scriptClassReference(scriptClassReference.asJsonPrimitive())
 
-    fun scriptClassReference(scriptClassReference: JsonNode) {
-        property(ComponentScriptExecutor.INPUT_SCRIPT_CLASS_REFERENCE, scriptClassReference)
-    }
+        fun scriptClassReference(scriptClassReference: JsonNode) {
+            property(ComponentScriptExecutor.INPUT_SCRIPT_CLASS_REFERENCE, scriptClassReference)
+        }
 
-    fun dynamicProperties(dynamicProperties: String) = dynamicProperties(dynamicProperties.asJsonType())
+        fun dynamicProperties(dynamicProperties: String) = dynamicProperties(dynamicProperties.asJsonType())
 
-    fun dynamicProperties(dynamicProperties: JsonNode) {
-        property(ComponentScriptExecutor.INPUT_DYNAMIC_PROPERTIES, dynamicProperties)
+        fun dynamicProperties(dynamicProperties: JsonNode) {
+            property(ComponentScriptExecutor.INPUT_DYNAMIC_PROPERTIES, dynamicProperties)
+        }
     }
-}
 
-class ComponentScriptExecutorOutputAssignmentBuilder : PropertiesAssignmentBuilder() {
+    class OutputsBuilder : PropertiesAssignmentBuilder() {
 
-    fun status(status: String) = status(status.asJsonPrimitive())
+        fun status(status: String) = status(status.asJsonPrimitive())
 
-    fun status(status: JsonNode) {
-        property(ComponentScriptExecutor.OUTPUT_STATUS, status)
-    }
+        fun status(status: JsonNode) {
+            property(ComponentScriptExecutor.OUTPUT_STATUS, status)
+        }
 
-    fun responseData(responseData: String) = responseData(responseData.asJsonType())
+        fun responseData(responseData: String) = responseData(responseData.asJsonType())
 
-    fun responseData(responseData: JsonNode) {
-        property(ComponentScriptExecutor.OUTPUT_RESPONSE_DATA, responseData)
+        fun responseData(responseData: JsonNode) {
+            property(ComponentScriptExecutor.OUTPUT_RESPONSE_DATA, responseData)
+        }
     }
 }
\ No newline at end of file