60968c05e4e1a346964fee9285a65acc95c0545e
[dcaegen2/collectors/datafile.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  * ============LICENSE_END=========================================================
17  */
18
19 package org.onap.dcaegen2.collectors.datafile.configuration;
20
21
22 import static org.assertj.core.api.Assertions.assertThat;
23
24 import com.google.gson.Gson;
25 import com.google.gson.JsonObject;
26 import org.junit.jupiter.api.Test;
27 import org.onap.dcaegen2.collectors.datafile.config.DmaapConsumerConfiguration;
28 import org.onap.dcaegen2.collectors.datafile.config.DmaapPublisherConfiguration;
29 import org.onap.dcaegen2.collectors.datafile.config.ImmutableDmaapConsumerConfiguration;
30 import org.onap.dcaegen2.collectors.datafile.config.ImmutableDmaapPublisherConfiguration;
31
32 class CloudConfigParserTest {
33
34     private static final String CORRECT_JSON =
35         "{\"dmaap.dmaapProducerConfiguration.dmaapTopicName\": \"/events/unauthenticated.VES_NOTIFICATION_OUTPUT\", "
36             + "\"dmaap.dmaapConsumerConfiguration.timeoutMS\": -1,"
37             + " \"dmaap.dmaapConsumerConfiguration.dmaapHostName\": \"message-router.onap.svc.cluster.local\","
38             + "\"dmaap.dmaapConsumerConfiguration.dmaapUserName\": \"admin\", "
39             + "\"dmaap.dmaapProducerConfiguration.dmaapPortNumber\": 3904, "
40             + "\"dmaap.dmaapConsumerConfiguration.dmaapUserPassword\": \"admin\", "
41             + "\"dmaap.dmaapProducerConfiguration.dmaapProtocol\": \"http\", "
42             + "\"dmaap.dmaapProducerConfiguration.dmaapContentType\": \"application/json\", "
43             + "\"dmaap.dmaapConsumerConfiguration.dmaapTopicName\": \"/events/unauthenticated.VES_NOTIFICATION_OUTPUT\", "
44             + "\"dmaap.dmaapConsumerConfiguration.dmaapPortNumber\": 3904, "
45             + "\"dmaap.dmaapConsumerConfiguration.dmaapContentType\": \"application/json\", "
46             + "\"dmaap.dmaapConsumerConfiguration.messageLimit\": -1, "
47             + "\"dmaap.dmaapConsumerConfiguration.dmaapProtocol\": \"http\", "
48             + "\"dmaap.dmaapConsumerConfiguration.consumerId\": \"c12\","
49             + "\"dmaap.dmaapProducerConfiguration.dmaapHostName\": \"message-router.onap.svc.cluster.local\", "
50             + "\"dmaap.dmaapConsumerConfiguration.consumerGroup\": \"OpenDCAE-c12\", "
51             + "\"dmaap.dmaapProducerConfiguration.dmaapUserName\": \"admin\", "
52             + "\"dmaap.dmaapProducerConfiguration.dmaapUserPassword\": \"admin\"}";
53
54     private static final ImmutableDmaapConsumerConfiguration correctDmaapConsumerConfig =
55         new ImmutableDmaapConsumerConfiguration.Builder()
56             .timeoutMS(-1)
57             .dmaapHostName("message-router.onap.svc.cluster.local")
58             .dmaapUserName("admin")
59             .dmaapUserPassword("admin")
60             .dmaapTopicName("/events/unauthenticated.VES_NOTIFICATION_OUTPUT")
61             .dmaapPortNumber(3904)
62             .dmaapContentType("application/json")
63             .messageLimit(-1)
64             .dmaapProtocol("http")
65             .consumerId("c12")
66             .consumerGroup("OpenDCAE-c12")
67             .build();
68
69     private static final ImmutableDmaapPublisherConfiguration correctDmaapPublisherConfig =
70         new ImmutableDmaapPublisherConfiguration.Builder()
71             .dmaapTopicName("/events/unauthenticated.VES_NOTIFICATION_OUTPUT")
72             .dmaapUserPassword("admin")
73             .dmaapPortNumber(3904)
74             .dmaapProtocol("http")
75             .dmaapContentType("application/json")
76             .dmaapHostName("message-router.onap.svc.cluster.local")
77             .dmaapUserName("admin")
78             .build();
79
80     private CloudConfigParser cloudConfigParser = new CloudConfigParser(
81         new Gson().fromJson(CORRECT_JSON, JsonObject.class));
82
83
84     @Test
85     public void shouldCreateDmaapConsumerConfigurationCorrectly() {
86         // when
87         DmaapConsumerConfiguration dmaapConsumerConfig = cloudConfigParser.getDmaapConsumerConfig();
88
89         // then
90         assertThat(dmaapConsumerConfig).isNotNull();
91         assertThat(dmaapConsumerConfig).isEqualToComparingFieldByField(correctDmaapConsumerConfig);
92     }
93
94
95     @Test
96     public void shouldCreateDmaapPublisherConfigurationCorrectly() {
97         // when
98         DmaapPublisherConfiguration dmaapPublisherConfig = cloudConfigParser.getDmaapPublisherConfig();
99
100         // then
101         assertThat(dmaapPublisherConfig).isNotNull();
102         assertThat(dmaapPublisherConfig).isEqualToComparingFieldByField(correctDmaapPublisherConfig);
103     }
104 }