350cee682fbd12a6cf377c087029bd525b8dfebd
[dcaegen2/services/prh.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * PNF-REGISTRATION-HANDLER
4  * ================================================================================
5  * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.dcaegen2.services.prh.configuration;
22
23 import com.google.gson.Gson;
24 import com.google.gson.JsonObject;
25 import org.junit.jupiter.api.Test;
26 import org.onap.dcaegen2.services.prh.TestAppConfiguration;
27 import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.AaiClientConfiguration;
28 import org.onap.dcaegen2.services.sdk.rest.services.aai.client.config.ImmutableAaiClientConfiguration;
29 import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.ImmutableMessageRouterPublishRequest;
30 import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterPublishRequest;
31 import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.model.MessageRouterSubscribeRequest;
32
33 import java.nio.file.Files;
34 import java.nio.file.Paths;
35 import java.time.Duration;
36
37 import static java.lang.ClassLoader.getSystemResource;
38 import static org.assertj.core.api.Assertions.assertThat;
39
40
41 class ConsulConfigurationParserTest {
42
43     private final String correctJson =
44             new String(Files.readAllBytes(Paths.get(getSystemResource("flattened_configuration.json").toURI())));
45     private final ImmutableAaiClientConfiguration correctAaiClientConfig =
46             TestAppConfiguration.createDefaultAaiClientConfiguration();
47     private final ImmutableMessageRouterPublishRequest correctDmaapPublisherConfig =
48             TestAppConfiguration.createDefaultMessageRouterPublishRequest();
49     private final CbsContentParser consulConfigurationParser = new CbsContentParser(
50             new Gson().fromJson(correctJson, JsonObject.class));
51
52     ConsulConfigurationParserTest() throws Exception {
53     }
54
55     @Test
56     void shouldCreateAaiConfigurationCorrectly() {
57         // when
58         AaiClientConfiguration aaiClientConfig = consulConfigurationParser.getAaiClientConfig();
59
60         // then
61         assertThat(aaiClientConfig).isNotNull();
62         assertThat(aaiClientConfig).isEqualToComparingFieldByField(correctAaiClientConfig);
63     }
64
65     @Test
66     void shouldCreateMessageRouterSubscribeRequestCorrectly() {
67         // given
68         MessageRouterSubscribeRequest messageRouterSubscribeRequest = consulConfigurationParser.getMessageRouterSubscribeRequest();
69
70         // then
71         assertThat(messageRouterSubscribeRequest.sourceDefinition().topicUrl()).isEqualTo("http://dmaap-mr:2222/events/unauthenticated.VES_PNFREG_OUTPUT");
72         assertThat(messageRouterSubscribeRequest.consumerGroup()).isEqualTo("OpenDCAE-c12");
73         assertThat(messageRouterSubscribeRequest.consumerId()).isEqualTo("c12");
74         assertThat(messageRouterSubscribeRequest.timeout()).isEqualTo(Duration.ofMillis(-1));
75     }
76
77     @Test
78     void shouldCreateMessageRouterPublishConfigurationCorrectly() {
79         // when
80         MessageRouterPublishRequest messageRouterPublishRequest = consulConfigurationParser.getMessageRouterPublishRequest();
81
82         // then
83         assertThat(messageRouterPublishRequest.contentType()).isEqualTo("application/json");
84         assertThat(messageRouterPublishRequest.sinkDefinition().topicUrl()).isEqualTo("http://dmaap-mr:2222/events/unauthenticated.PNF_READY");
85     }
86 }