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 kotlin.test.assertTrue
24 class MessageCorrelationUtilsTest {
27 fun testCorrelationKeysReordered() {
29 val message1 = MessagePrioritizationSample.createMessage(
30 "sample-group", MessageState.NEW.name,
31 "type-0", "key1=value1,key2=value2"
33 val message2 = MessagePrioritizationSample.createMessage(
34 "sample-group", MessageState.NEW.name,
35 "type-0", "key2=value2,key1=value1"
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")
46 fun differentTypesWithSameCorrelationMessages() {
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")
56 differentTypesWithSameCorrelationMessagesResponse.correlated,
57 "failed to correlate differentTypesWithSameCorrelationMessagesResponse"
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")
67 !differentTypesWithSameCorrelationMessagesResWithMissingType.correlated,
68 "failed to correlate differentTypesWithSameCorrelationMessagesResWithMissingType"
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
82 !withSameCorrelationOneMessagesResp.correlated,
83 "failed to correlate withSameCorrelationMessagesResp"
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
93 withSameCorrelationMessagesResp.correlated,
94 "failed to correlate withSameCorrelationMessagesResp"
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"
105 val message2 = MessagePrioritizationSample.createMessage(
106 "sample-group", MessageState.NEW.name,
107 "type-1", "key1=value1,key2=value3"
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")
117 !differentTypesWithDifferentCorrelationMessageResp.correlated,
118 "failed to correlate differentTypesWithDifferentCorrelationMessageResp"