3876cbba57bdd7c51537ee2b9bc402909feb9c6c
[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.functions.message.prioritization.utils
18
19 import org.junit.Test
20 import org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.MessageState
21 import org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.db.MessagePrioritization
22 import kotlin.test.assertTrue
23
24 class MessageCorrelationUtilsTest {
25
26     @Test
27     fun testCorrelationKeysReordered() {
28
29         val message1 = MessagePrioritizationSample.createMessage(
30             "sample-group", MessageState.NEW.name,
31             "type-0", "key1=value1,key2=value2"
32         )
33         val message2 = MessagePrioritizationSample.createMessage(
34             "sample-group", MessageState.NEW.name,
35             "type-0", "key2=value2,key1=value1"
36         )
37
38         val multipleMessages: MutableList<MessagePrioritization> = arrayListOf()
39         multipleMessages.add(message1)
40         multipleMessages.add(message2)
41         val multipleMessagesResponse = MessageCorrelationUtils.correlatedMessages(multipleMessages)
42         assertTrue(multipleMessagesResponse.correlated, "failed in multipleMessages correlated keys reordered")
43     }
44
45     @Test
46     fun differentTypesWithSameCorrelationMessages() {
47         /** With Types **/
48         /* Assumption is Same group with different types */
49         val differentTypesWithSameCorrelationMessages = MessagePrioritizationSample
50             .sampleMessageWithDifferentTypeSameCorrelation("sample-group", MessageState.NEW.name, 3)
51         val differentTypesWithSameCorrelationMessagesResponse = MessageCorrelationUtils.correlatedMessagesWithTypes(
52             differentTypesWithSameCorrelationMessages,
53             arrayListOf("type-0", "type-1", "type-2")
54         )
55         assertTrue(
56             differentTypesWithSameCorrelationMessagesResponse.correlated,
57             "failed to correlate differentTypesWithSameCorrelationMessagesResponse"
58         )
59
60         /* Assumption is Same group with different types and one missing expected types,
61         In this case type-3 message is missing */
62         val differentTypesWithSameCorrelationMessagesResWithMissingType = MessageCorrelationUtils.correlatedMessagesWithTypes(
63             differentTypesWithSameCorrelationMessages,
64             arrayListOf("type-0", "type-1", "type-2", "type-3")
65         )
66         assertTrue(
67             !differentTypesWithSameCorrelationMessagesResWithMissingType.correlated,
68             "failed to correlate differentTypesWithSameCorrelationMessagesResWithMissingType"
69         )
70     }
71
72     @Test
73     fun withSameCorrelationMessagesWithIgnoredTypes() {
74         /** With ignoring Types */
75         /** Assumption is only one message received */
76         val withSameCorrelationOneMessages = MessagePrioritizationSample
77             .sampleMessageWithSameCorrelation("sample-group", MessageState.NEW.name, 1)
78         val withSameCorrelationOneMessagesResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
79             withSameCorrelationOneMessages, null
80         )
81         assertTrue(
82             !withSameCorrelationOneMessagesResp.correlated,
83             "failed to correlate withSameCorrelationMessagesResp"
84         )
85
86         /** Assumption is two message received for same group with same correlation */
87         val withSameCorrelationMessages = MessagePrioritizationSample
88             .sampleMessageWithSameCorrelation("sample-group", MessageState.NEW.name, 2)
89         val withSameCorrelationMessagesResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
90             withSameCorrelationMessages, null
91         )
92         assertTrue(
93             withSameCorrelationMessagesResp.correlated,
94             "failed to correlate withSameCorrelationMessagesResp"
95         )
96     }
97
98     @Test
99     fun differentTypesWithDifferentCorrelationMessage() {
100         /** Assumption is two message received for same group with different expected types and different correlation */
101         val message1 = MessagePrioritizationSample.createMessage(
102             "sample-group", MessageState.NEW.name,
103             "type-0", "key1=value1,key2=value2"
104         )
105         val message2 = MessagePrioritizationSample.createMessage(
106             "sample-group", MessageState.NEW.name,
107             "type-1", "key1=value1,key2=value3"
108         )
109         val differentTypesWithDifferentCorrelationMessage: MutableList<MessagePrioritization> = arrayListOf()
110         differentTypesWithDifferentCorrelationMessage.add(message1)
111         differentTypesWithDifferentCorrelationMessage.add(message2)
112         val differentTypesWithDifferentCorrelationMessageResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
113             differentTypesWithDifferentCorrelationMessage,
114             arrayListOf("type-0", "type-1")
115         )
116         assertTrue(
117             !differentTypesWithDifferentCorrelationMessageResp.correlated,
118             "failed to correlate differentTypesWithDifferentCorrelationMessageResp"
119         )
120     }
121 }