2 * Copyright © 2018-2019 AT&T Intellectual Property.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.utils
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 org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.orderByHighestPriority
23 import kotlin.test.assertNotNull
24 import kotlin.test.assertTrue
26 class MessageCorrelationUtilsTest {
29 fun testCorrelationKeysReordered() {
31 val message1 = MessagePrioritizationSample.createMessage(
32 "sample-group", MessageState.NEW.name,
33 "type-0", "key1=value1,key2=value2"
35 val message2 = MessagePrioritizationSample.createMessage(
36 "sample-group", MessageState.NEW.name,
37 "type-0", "key2=value2,key1=value1"
40 val multipleMessages: MutableList<MessagePrioritization> = arrayListOf()
41 multipleMessages.add(message1)
42 multipleMessages.add(message2)
43 val multipleMessagesResponse = MessageCorrelationUtils.correlatedMessages(multipleMessages)
44 assertTrue(multipleMessagesResponse.correlated, "failed in multipleMessages correlated keys reordered")
48 fun differentTypesWithSameCorrelationMessages() {
50 /* Assumption is Same group with different types */
51 val differentTypesWithSameCorrelationMessages = MessagePrioritizationSample
52 .sampleMessageWithDifferentTypeSameCorrelation("sample-group", MessageState.NEW.name, 3)
53 val differentTypesWithSameCorrelationMessagesResponse = MessageCorrelationUtils.correlatedMessagesWithTypes(
54 differentTypesWithSameCorrelationMessages,
55 arrayListOf("type-0", "type-1", "type-2")
58 differentTypesWithSameCorrelationMessagesResponse.correlated,
59 "failed to correlate differentTypesWithSameCorrelationMessagesResponse"
62 /* Assumption is Same group with different types and one missing expected types,
63 In this case type-3 message is missing */
64 val differentTypesWithSameCorrelationMessagesResWithMissingType =
65 MessageCorrelationUtils.correlatedMessagesWithTypes(
66 differentTypesWithSameCorrelationMessages,
67 arrayListOf("type-0", "type-1", "type-2", "type-3")
70 !differentTypesWithSameCorrelationMessagesResWithMissingType.correlated,
71 "failed to correlate differentTypesWithSameCorrelationMessagesResWithMissingType"
76 fun withSameCorrelationMessagesWithIgnoredTypes() {
77 /** With ignoring Types */
78 /** Assumption is only one message received */
79 val withSameCorrelationOneMessages = MessagePrioritizationSample
80 .sampleMessageWithSameCorrelation("sample-group", MessageState.NEW.name, 1)
81 val withSameCorrelationOneMessagesResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
82 withSameCorrelationOneMessages, null
85 !withSameCorrelationOneMessagesResp.correlated,
86 "failed to correlate withSameCorrelationMessagesResp"
89 /** Assumption is two message received for same group with same correlation */
90 val withSameCorrelationMessages = MessagePrioritizationSample
91 .sampleMessageWithSameCorrelation("sample-group", MessageState.NEW.name, 2)
92 val withSameCorrelationMessagesResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
93 withSameCorrelationMessages, null
96 withSameCorrelationMessagesResp.correlated,
97 "failed to correlate withSameCorrelationMessagesResp"
102 fun differentTypesWithDifferentCorrelationMessage() {
103 /** Assumption is two message received for same group with different expected types and different correlation */
104 val message1 = MessagePrioritizationSample.createMessage(
105 "sample-group", MessageState.NEW.name,
106 "type-0", "key1=value1,key2=value2"
108 val message2 = MessagePrioritizationSample.createMessage(
109 "sample-group", MessageState.NEW.name,
110 "type-1", "key1=value1,key2=value3"
112 val differentTypesWithDifferentCorrelationMessage: MutableList<MessagePrioritization> = arrayListOf()
113 differentTypesWithDifferentCorrelationMessage.add(message1)
114 differentTypesWithDifferentCorrelationMessage.add(message2)
115 val differentTypesWithDifferentCorrelationMessageResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
116 differentTypesWithDifferentCorrelationMessage,
117 arrayListOf("type-0", "type-1")
120 !differentTypesWithDifferentCorrelationMessageResp.correlated,
121 "failed to correlate differentTypesWithDifferentCorrelationMessageResp"
126 fun testPrioritizationOrdering() {
127 val differentPriorityMessages = MessagePrioritizationSample
128 .sampleMessageWithSameCorrelation("sample-group", MessageState.NEW.name, 5)
129 val orderedPriorityMessages = differentPriorityMessages.orderByHighestPriority()
130 assertNotNull(orderedPriorityMessages, "failed to order the priority messages")