Controller Design Studio: Blueprint Manager
[ccsdk/cds.git] / ms / blueprintsprocessor / modules / inbounds / selfservice-api / src / test / kotlin / org / onap / ccsdk / apps / blueprintsprocessor / selfservice / api / utils / BluePrintMappingTests.kt
1 package org.onap.ccsdk.apps.blueprintsprocessor.selfservice.api.utils
2
3 import com.fasterxml.jackson.databind.ObjectMapper
4 import com.google.protobuf.ListValue
5 import com.google.protobuf.NullValue
6 import com.google.protobuf.Struct
7 import com.google.protobuf.Value
8 import com.google.protobuf.util.JsonFormat
9 import org.junit.Assert
10 import org.junit.Test
11 import org.junit.runner.RunWith
12 import org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.Flags
13 import org.onap.ccsdk.apps.controllerblueprints.common.api.ActionIdentifiers
14 import org.onap.ccsdk.apps.controllerblueprints.common.api.CommonHeader
15 import org.onap.ccsdk.apps.controllerblueprints.common.api.Flag
16 import org.springframework.test.context.junit4.SpringRunner
17 import java.text.SimpleDateFormat
18
19 @RunWith(SpringRunner::class)
20 class BluePrintMappingsTest {
21
22     val formatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
23     val dateString = "2019-01-16T18:25:43.511Z"
24     val dateForTest = formatter.parse(dateString)
25
26     val flag = Flag.newBuilder().setIsForce(false).setTtl(1).build()
27
28     fun createFlag(): Flags {
29         val flag = Flags()
30         flag.isForce = false
31         flag.ttl = 1
32         return flag
33     }
34
35     @Test
36     fun flagToJavaTest() {
37         val flag2 = flag.toJava()
38
39         Assert.assertEquals(flag.isForce, flag2.isForce)
40         Assert.assertEquals(flag.ttl, flag2.ttl)
41     }
42
43     @Test
44     fun flagToProtoTest() {
45         val flag = createFlag()
46         val flag2 = flag.toProto()
47
48         Assert.assertEquals(flag.isForce, flag2.isForce)
49         Assert.assertEquals(flag.ttl, flag2.ttl)
50     }
51
52     fun createStatus(): org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.Status {
53         val status = org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.Status()
54         status.code = 400
55         status.errorMessage = "Concurrent modification exception"
56         status.eventType = "Update"
57         status.message = "Error uploading data"
58         status.timestamp = dateForTest
59         return status
60     }
61
62     @Test
63     fun statusToProtoTest() {
64         val status = createStatus()
65         val status2 = status.toProto()
66
67         Assert.assertEquals(status.code, status2.code)
68         Assert.assertEquals(status.errorMessage, status2.errorMessage)
69         Assert.assertEquals(status.eventType, status2.eventType)
70         Assert.assertEquals(status.message, status2.message)
71         Assert.assertEquals(status.timestamp.toString(), status2.timestamp)
72     }
73
74     @Test
75     fun commonHeaderToJavaTest() {
76         val flag = Flag.newBuilder().setIsForce(true).setTtl(2).build()
77
78         val commonHeader = CommonHeader.newBuilder().setOriginatorId("Origin").setRequestId("requestID").setSubRequestId("subRequestID").setTimestamp(dateString).setFlag(flag).build()
79         val commonHeader2 = commonHeader.toJava()
80
81         Assert.assertEquals(commonHeader.originatorId, commonHeader2.originatorId)
82         Assert.assertEquals(commonHeader.requestId, commonHeader2.requestId)
83         Assert.assertEquals(commonHeader.subRequestId, commonHeader2.subRequestId)
84         Assert.assertEquals(commonHeader.timestamp, formatter.format(commonHeader2.timestamp))
85     }
86
87     fun createCommonHeader(): org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.CommonHeader {
88         val commonHeader = org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.CommonHeader()
89         commonHeader.flags = createFlag()
90         commonHeader.originatorId = "1234"
91         commonHeader.requestId = "2345"
92         commonHeader.subRequestId = "0123"
93         commonHeader.timestamp = dateForTest
94         return commonHeader
95     }
96
97     @Test
98     fun commonHeaderToProtoTest() {
99         val commonHeader = createCommonHeader()
100         val commonHeader2 = commonHeader.toProto()
101         Assert.assertEquals(commonHeader.originatorId, commonHeader2.originatorId)
102         Assert.assertEquals(commonHeader.requestId, commonHeader2.requestId)
103         Assert.assertEquals(commonHeader.subRequestId, commonHeader2.subRequestId)
104         Assert.assertEquals(commonHeader.timestamp.toString(), commonHeader2.timestamp)
105     }
106
107     @Test
108     fun actionIdentifierToJavaTest() {
109         val actionIdentifiers = ActionIdentifiers.newBuilder().setActionName("Process Action").setBlueprintName("BlueprintName").setBlueprintVersion("3.0").setMode("Execution").build()
110         val actionIdentifiers2 = actionIdentifiers.toJava()
111
112         Assert.assertEquals(actionIdentifiers.actionName, actionIdentifiers2.actionName)
113         Assert.assertEquals(actionIdentifiers.blueprintName, actionIdentifiers2.blueprintName)
114         Assert.assertEquals(actionIdentifiers.blueprintVersion, actionIdentifiers2.blueprintVersion)
115         Assert.assertEquals(actionIdentifiers.mode, actionIdentifiers2.mode)
116     }
117
118     fun createActionIdentifier(): org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ActionIdentifiers {
119         val ac = org.onap.ccsdk.apps.blueprintsprocessor.core.api.data.ActionIdentifiers()
120         ac.mode = "mode"
121         ac.blueprintVersion = "version"
122         ac.blueprintName = "name"
123         ac.actionName = "action"
124         return ac
125     }
126
127     @Test
128     fun actionIdentifierToProtoTest() {
129         val actionIdentifiers = createActionIdentifier()
130         val actionIdentifiers2 = actionIdentifiers.toProto()
131
132         Assert.assertEquals(actionIdentifiers.actionName, actionIdentifiers2.actionName)
133         Assert.assertEquals(actionIdentifiers.blueprintName, actionIdentifiers2.blueprintName)
134         Assert.assertEquals(actionIdentifiers.blueprintVersion, actionIdentifiers2.blueprintVersion)
135         Assert.assertEquals(actionIdentifiers.mode, actionIdentifiers2.mode)
136     }
137
138     @Test
139     fun testStructToJava() {
140         val struct = Struct.newBuilder().putAllFields(createValues()).build()
141         val struct2 = struct.toJava()
142
143         val mapper = ObjectMapper()
144
145         Assert.assertEquals(JsonFormat.printer().print(struct).replace(" ", "").replace("\r",""),
146                 mapper.writerWithDefaultPrettyPrinter().writeValueAsString(struct2).replace(" ", "").replace("\r",""))
147     }
148
149     fun createValues(): Map<String, Value> {
150         val map = mutableMapOf<String, Value>()
151
152         val boolValue = Value.newBuilder().setBoolValue(true).build()
153         val stringValue = Value.newBuilder().setStringValue("string").build()
154         val doubleValue = Value.newBuilder().setNumberValue(Double.MAX_VALUE).build()
155         val jsonValue = Value.newBuilder().setStringValue("{\"bblah\": \"bbblo\"}").build()
156         val listValue = Value.newBuilder().setListValue(ListValue.newBuilder().addValues(boolValue).addValues(boolValue).build()).build()
157         val nullValue = Value.newBuilder().setNullValue(NullValue.NULL_VALUE).build()
158
159         map.put("bool", boolValue)
160         map.put("string", stringValue)
161         map.put("doublbe", doubleValue)
162         map.put("json", jsonValue)
163         map.put("list", listValue)
164         map.put("null", nullValue)
165
166         val structValue = Value.newBuilder().setStructValue(Struct.newBuilder().putAllFields(map).build()).build()
167
168         map.put("struct", structValue)
169
170         return map
171     }
172 }