VESCollector Test optimization
[dcaegen2/collectors/ves.git] / src / test / java / org / onap / dcae / multiplestreamreducer / MultipleStreamReducerTest.java
1 /*
2  * ============LICENSE_START=======================================================
3  * VES Collector
4  * ================================================================================
5  * Copyright (C) 2021 Nokia. All rights reserved.
6  * Copyright (C) 2023 AT&T Intellectual Property. All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21 package org.onap.dcae.multiplestreamreducer;
22
23 import io.vavr.collection.HashMap;
24 import io.vavr.collection.Map;
25
26 import static org.junit.jupiter.api.Assertions.assertEquals;
27
28 import org.junit.jupiter.api.Test;
29
30
31 class MultipleStreamReducerTest {
32
33     private final MultipleStreamReducer multipleStreamReducer = new MultipleStreamReducer();
34     private final Map<String, String[]> domainToStreams = HashMap.of(
35             "fault", new String[]{"ves-fault", "stream1", "stream2"},
36             "log", new String[]{"ves-syslog", "stream3", "stream4", "stream5"},
37             "test", new String[]{"stream6"}
38     );
39
40     @Test
41     void shouldReduceStreamsToTheFirstOne() {
42         //given
43         Map<String, String> expected = HashMap.of(
44                 "fault", "ves-fault",
45                 "log", "ves-syslog",
46                 "test", "stream6"
47         );
48
49         //when
50         final Map<String, String> domainToStreamsAfterReduce = multipleStreamReducer.reduce(domainToStreams);
51
52         //then
53         assertEquals(expected, domainToStreamsAfterReduce);
54     }
55
56     @Test
57     void shouldReturnInfoAboutDomainToStreamsConfig() {
58         String newLine = System.getProperty("line.separator");
59         //given
60         final Map<String, String> domainToStreamsAfterReduce = multipleStreamReducer.reduce(domainToStreams);
61         String expectedRedundantStreamsInfo =
62                 "Domain: fault has active stream: ves-fault" + newLine + 
63                 "Domain: log has active stream: ves-syslog" + newLine +
64                 "Domain: test has active stream: stream6" + newLine;
65
66         //when
67         final String domainToStreamsConfigInfo = multipleStreamReducer.getDomainToStreamsInfo(domainToStreamsAfterReduce);
68
69         //then
70         assertEquals(expectedRedundantStreamsInfo, domainToStreamsConfigInfo);
71     }
72
73 }