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("sample-group", MessageState.NEW.name,
30 "type-0", "key1=value1,key2=value2")
31 val message2 = MessagePrioritizationSample.createMessage("sample-group", MessageState.NEW.name,
32 "type-0", "key2=value2,key1=value1")
34 val multipleMessages: MutableList<MessagePrioritization> = arrayListOf()
35 multipleMessages.add(message1)
36 multipleMessages.add(message2)
37 val multipleMessagesResponse = MessageCorrelationUtils.correlatedMessages(multipleMessages)
38 assertTrue(multipleMessagesResponse.correlated, "failed in multipleMessages correlated keys reordered")
42 fun differentTypesWithSameCorrelationMessages() {
44 /* Assumption is Same group with different types */
45 val differentTypesWithSameCorrelationMessages = MessagePrioritizationSample
46 .sampleMessageWithDifferentTypeSameCorrelation("sample-group", MessageState.NEW.name, 3)
47 val differentTypesWithSameCorrelationMessagesResponse = MessageCorrelationUtils.correlatedMessagesWithTypes(
48 differentTypesWithSameCorrelationMessages,
49 arrayListOf("type-0", "type-1", "type-2"))
50 assertTrue(differentTypesWithSameCorrelationMessagesResponse.correlated,
51 "failed to correlate differentTypesWithSameCorrelationMessagesResponse")
53 /* Assumption is Same group with different types and one missing expected types,
54 In this case type-3 message is missing */
55 val differentTypesWithSameCorrelationMessagesResWithMissingType = MessageCorrelationUtils.correlatedMessagesWithTypes(
56 differentTypesWithSameCorrelationMessages,
57 arrayListOf("type-0", "type-1", "type-2", "type-3"))
58 assertTrue(!differentTypesWithSameCorrelationMessagesResWithMissingType.correlated,
59 "failed to correlate differentTypesWithSameCorrelationMessagesResWithMissingType")
63 fun withSameCorrelationMessagesWithIgnoredTypes() {
64 /** With ignoring Types */
65 /** Assumption is only one message received */
66 val withSameCorrelationOneMessages = MessagePrioritizationSample
67 .sampleMessageWithSameCorrelation("sample-group", MessageState.NEW.name, 1)
68 val withSameCorrelationOneMessagesResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
69 withSameCorrelationOneMessages, null)
70 assertTrue(!withSameCorrelationOneMessagesResp.correlated,
71 "failed to correlate withSameCorrelationMessagesResp")
73 /** Assumption is two message received for same group with same correlation */
74 val withSameCorrelationMessages = MessagePrioritizationSample
75 .sampleMessageWithSameCorrelation("sample-group", MessageState.NEW.name, 2)
76 val withSameCorrelationMessagesResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
77 withSameCorrelationMessages, null)
78 assertTrue(withSameCorrelationMessagesResp.correlated,
79 "failed to correlate withSameCorrelationMessagesResp")
83 fun differentTypesWithDifferentCorrelationMessage() {
84 /** Assumption is two message received for same group with different expected types and different correlation */
85 val message1 = MessagePrioritizationSample.createMessage("sample-group", MessageState.NEW.name,
86 "type-0", "key1=value1,key2=value2")
87 val message2 = MessagePrioritizationSample.createMessage("sample-group", MessageState.NEW.name,
88 "type-1", "key1=value1,key2=value3")
89 val differentTypesWithDifferentCorrelationMessage: MutableList<MessagePrioritization> = arrayListOf()
90 differentTypesWithDifferentCorrelationMessage.add(message1)
91 differentTypesWithDifferentCorrelationMessage.add(message2)
92 val differentTypesWithDifferentCorrelationMessageResp = MessageCorrelationUtils.correlatedMessagesWithTypes(
93 differentTypesWithDifferentCorrelationMessage,
94 arrayListOf("type-0", "type-1"))
95 assertTrue(!differentTypesWithDifferentCorrelationMessageResp.correlated,
96 "failed to correlate differentTypesWithDifferentCorrelationMessageResp")