Add blueprint runtime service to validator
[ccsdk/cds.git] / components / core / src / test / kotlin / org / onap / ccsdk / apps / controllerblueprints / core / service / BluePrintExpressionServiceTest.kt
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 package org.onap.ccsdk.apps.controllerblueprints.core.service\r
18 \r
19 import com.fasterxml.jackson.databind.JsonNode\r
20 import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper\r
21 import org.junit.Test\r
22 import org.onap.ccsdk.apps.controllerblueprints.core.data.ExpressionData\r
23 import kotlin.test.assertEquals\r
24 import kotlin.test.assertNotNull\r
25 /**\r
26  *\r
27  *\r
28  * @author Brinda Santh\r
29  */\r
30 class BluePrintExpressionServiceTest {\r
31     @Test\r
32     fun testInputExpression() {\r
33         val node : JsonNode = jacksonObjectMapper().readTree("{ \"get_input\" : \"input-name\" }")\r
34         val expressionData : ExpressionData = BluePrintExpressionService.getExpressionData(node)\r
35         assertNotNull(expressionData, " Failed to populate expression data")\r
36         assertEquals(expressionData.isExpression, true, "Failed to identify as expression")\r
37         assertNotNull(expressionData.inputExpression, " Failed to populate input expression data")\r
38         assertEquals("input-name", expressionData.inputExpression?.propertyName, "Failed to get propertyName from expression data")\r
39     }\r
40 \r
41     @Test\r
42     fun testPropertyExpression() {\r
43         val node : JsonNode = jacksonObjectMapper().readTree("{ \"get_property\" : [\"SELF\", \"property-name\"] }")\r
44         val expressionData : ExpressionData = BluePrintExpressionService.getExpressionData(node)\r
45         assertNotNull(expressionData, " Failed to populate expression data")\r
46         assertEquals(expressionData.isExpression, true, "Failed to identify as expression")\r
47         assertNotNull(expressionData.propertyExpression, " Failed to populate property expression data")\r
48         assertEquals("SELF", expressionData.propertyExpression?.modelableEntityName, " Failed to get expected modelableEntityName")\r
49         assertEquals("property-name", expressionData.propertyExpression?.propertyName, " Failed to get expected propertyName")\r
50 \r
51         val node1 : JsonNode = jacksonObjectMapper().readTree("{ \"get_property\" : [\"SELF\", \"\",\"property-name\", \"resource\", \"name\"] }")\r
52         val expressionData1  : ExpressionData  = BluePrintExpressionService.getExpressionData(node1)\r
53         assertNotNull(expressionData1, " Failed to populate expression data")\r
54         assertEquals(expressionData1.isExpression, true, "Failed to identify as nested property expression")\r
55         assertNotNull(expressionData1.propertyExpression, " Failed to populate nested property expression data")\r
56         assertEquals("SELF", expressionData1.propertyExpression?.modelableEntityName, " Failed to get expected modelableEntityName")\r
57         assertEquals("property-name", expressionData1.propertyExpression?.propertyName, " Failed to get expected propertyName")\r
58         assertEquals("resource/name",expressionData1.propertyExpression?.subPropertyName, " Failed to populate nested subPropertyName expression data")\r
59     }\r
60 \r
61     @Test\r
62     fun testAttributeExpression() {\r
63         val node : JsonNode = jacksonObjectMapper().readTree("{ \"get_attribute\" : [\"SELF\", \"resource\"] }")\r
64         val expressionData : ExpressionData = BluePrintExpressionService.getExpressionData(node)\r
65         assertNotNull(expressionData, " Failed to populate expression data")\r
66         assertEquals(expressionData.isExpression, true, "Failed to identify as expression")\r
67         assertNotNull(expressionData.attributeExpression, " Failed to populate attribute expression data")\r
68         assertEquals("SELF", expressionData.attributeExpression?.modelableEntityName, " Failed to get expected modelableEntityName")\r
69         assertEquals("resource", expressionData.attributeExpression?.attributeName, " Failed to get expected attributeName")\r
70 \r
71         val node1 : JsonNode = jacksonObjectMapper().readTree("{ \"get_attribute\" : [\"SELF\", \"\",\"attribute-name\", \"resource\", \"name\"] }")\r
72         val expressionData1 : ExpressionData = BluePrintExpressionService.getExpressionData(node1)\r
73         assertNotNull(expressionData1, " Failed to populate expression data")\r
74         assertEquals(expressionData1.isExpression, true, "Failed to identify as expression")\r
75         assertNotNull(expressionData1.attributeExpression, " Failed to populate attribute expression data")\r
76         assertEquals("SELF", expressionData1.attributeExpression?.modelableEntityName, " Failed to get expected modelableEntityName")\r
77         assertEquals("attribute-name", expressionData1.attributeExpression?.attributeName, " Failed to get expected attributeName")\r
78         assertEquals("resource/name",expressionData1.attributeExpression?.subAttributeName, " Failed to populate nested subAttributeName expression data")\r
79     }\r
80 \r
81 \r
82     @Test\r
83     fun testOutputOperationExpression() {\r
84         val node : JsonNode = jacksonObjectMapper().readTree("{ \"get_operation_output\": [\"SELF\", \"interface-name\", \"operation-name\", \"output-property-name\"] }")\r
85         val expressionData : ExpressionData = BluePrintExpressionService.getExpressionData(node)\r
86         assertNotNull(expressionData, " Failed to populate expression data")\r
87         assertEquals(expressionData.isExpression, true, "Failed to identify as expression")\r
88         assertNotNull(expressionData.operationOutputExpression, " Failed to populate output expression data")\r
89         assertEquals("SELF", expressionData.operationOutputExpression?.modelableEntityName, " Failed to get expected modelableEntityName")\r
90         assertEquals("interface-name", expressionData.operationOutputExpression?.interfaceName, " Failed to get expected interfaceName")\r
91         assertEquals("operation-name", expressionData.operationOutputExpression?.operationName, " Failed to get expected operationName")\r
92         assertEquals("output-property-name", expressionData.operationOutputExpression?.propertyName, " Failed to get expected propertyName")\r
93     }\r
94 \r
95 \r
96     @Test\r
97     fun testArtifactExpression() {\r
98         val node : JsonNode = jacksonObjectMapper().readTree("{ \"get_artifact\" : [\"SELF\", \"artifact-template\"] }")\r
99         val expressionData : ExpressionData = BluePrintExpressionService.getExpressionData(node)\r
100         assertNotNull(expressionData, " Failed to populate expression data")\r
101         assertEquals(expressionData.isExpression, true, "Failed to identify as expression")\r
102         assertNotNull(expressionData.artifactExpression, " Failed to populate Artifact expression data")\r
103         assertEquals("SELF", expressionData.artifactExpression?.modelableEntityName, " Failed to get expected modelableEntityName")\r
104         assertEquals("artifact-template", expressionData.artifactExpression?.artifactName, " Failed to get expected artifactName")\r
105 \r
106 \r
107         val node1 : JsonNode = jacksonObjectMapper().readTree("{ \"get_artifact\" : [\"SELF\", \"artifact-template\", \"location\", true] }")\r
108         val expressionData1 : ExpressionData = BluePrintExpressionService.getExpressionData(node1)\r
109         assertNotNull(expressionData1, " Failed to populate expression data")\r
110         assertEquals(expressionData1.isExpression, true, "Failed to identify as expression")\r
111         assertNotNull(expressionData1.artifactExpression, " Failed to populate Artifact expression data")\r
112         assertEquals("SELF", expressionData1.artifactExpression?.modelableEntityName, " Failed to get expected modelableEntityName")\r
113         assertEquals("artifact-template", expressionData1.artifactExpression?.artifactName, " Failed to get expected artifactName")\r
114         assertEquals("location", expressionData1.artifactExpression?.location, " Failed to get expected location")\r
115         assertEquals(true, expressionData1.artifactExpression?.remove, " Failed to get expected remove")\r
116     }\r
117 }