b10e1023b3fbd94ff0a88f984b9fc1fab4402d2c
[ccsdk/cds.git] /
1 /*
2  * Copyright © 2018-2019 AT&T Intellectual Property.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.onap.ccsdk.cds.blueprintsprocessor.message
18
19 import org.apache.kafka.streams.StreamsConfig
20 import org.junit.Test
21 import org.onap.ccsdk.cds.controllerblueprints.core.BluePrintConstants
22 import org.onap.ccsdk.cds.controllerblueprints.core.dsl.relationshipTypeConnectsTo
23 import org.onap.ccsdk.cds.controllerblueprints.core.dsl.serviceTemplate
24 import kotlin.test.assertEquals
25 import kotlin.test.assertNotNull
26
27 class MessagePropertiesDSLTest {
28
29     @Test
30     fun testMessageProducerDSL() {
31         val serviceTemplate = serviceTemplate("message-properties-test", "1.0.0", "xxx.@xx.com", "message") {
32             topologyTemplate {
33                 relationshipTemplateMessageProducer("sample-basic-auth", "Message Producer") {
34                     kafkaBasicAuth {
35                         bootstrapServers("sample-bootstrapServers")
36                         clientId("sample-client-id")
37                         acks("all")
38                         retries(3)
39                         enableIdempotence(true)
40                         topic("sample-topic")
41                     }
42                 }
43             }
44             relationshipTypeConnectsToMessageProducer()
45             relationshipTypeConnectsTo()
46         }
47
48         // println(serviceTemplate.asJsonString(true))
49         assertNotNull(serviceTemplate, "failed to create service template")
50         val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
51         assertNotNull(relationshipTemplates, "failed to get relationship templates")
52         assertEquals(1, relationshipTemplates.size, "relationshipTemplates doesn't match")
53         assertNotNull(relationshipTemplates["sample-basic-auth"], "failed to get sample-basic-auth")
54
55         val relationshipTypes = serviceTemplate.relationshipTypes
56         assertNotNull(relationshipTypes, "failed to get relationship types")
57         assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
58         assertNotNull(
59             relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
60             "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
61         )
62         assertNotNull(
63             relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_PRODUCER],
64             "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_PRODUCER}"
65         )
66     }
67
68     @Test
69     fun testMessageConsumerDSL() {
70         val serviceTemplate = serviceTemplate("message-properties-test", "1.0.0", "xxx.@xx.com", "message") {
71             topologyTemplate {
72                 relationshipTemplateMessageConsumer("sample-basic-auth", "Message Consumer") {
73                     kafkaBasicAuth {
74                         bootstrapServers("sample-bootstrapServers")
75                         clientId("sample-client-id")
76                         groupId("sample-group-id")
77                         topic("sample-topic")
78                         autoCommit(false)
79                         autoOffsetReset("latest")
80                         pollMillSec(5000)
81                         pollRecords(20)
82                     }
83                 }
84                 relationshipTemplateMessageConsumer("sample-stream-basic-auth", "Message Consumer") {
85                     kafkaStreamsBasicAuth {
86                         bootstrapServers("sample-bootstrapServers")
87                         applicationId("sample-application-id")
88                         autoOffsetReset("latest")
89                         processingGuarantee(StreamsConfig.EXACTLY_ONCE)
90                         topic("sample-streaming-topic")
91                     }
92                 }
93             }
94             relationshipTypeConnectsToMessageConsumer()
95             relationshipTypeConnectsTo()
96         }
97
98         // println(serviceTemplate.asJsonString(true))
99         assertNotNull(serviceTemplate, "failed to create service template")
100         val relationshipTemplates = serviceTemplate.topologyTemplate?.relationshipTemplates
101         assertNotNull(relationshipTemplates, "failed to get relationship templates")
102         assertEquals(2, relationshipTemplates.size, "relationshipTemplates doesn't match")
103         assertNotNull(relationshipTemplates["sample-basic-auth"], "failed to get sample-basic-auth")
104         assertNotNull(relationshipTemplates["sample-stream-basic-auth"], "failed to get sample-stream-basic-auth")
105
106         val relationshipTypes = serviceTemplate.relationshipTypes
107         assertNotNull(relationshipTypes, "failed to get relationship types")
108         assertEquals(2, relationshipTypes.size, "relationshipTypes doesn't match")
109         assertNotNull(
110             relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO],
111             "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO}"
112         )
113         assertNotNull(
114             relationshipTypes[BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_CONSUMER],
115             "failed to get ${BluePrintConstants.MODEL_TYPE_RELATIONSHIPS_CONNECTS_TO_MESSAGE_CONSUMER}"
116         )
117     }
118 }