New KPI Compution MS
[dcaegen2/services.git] / components / kpi-computation-ms / src / test / java / org / onap / dcaegen2 / kpi / dmaap / DmaapClientTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2021 China Mobile.
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  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.dcaegen2.kpi.dmaap;
22
23 import static org.mockito.Mockito.when;
24
25 import com.att.nsa.cambria.client.CambriaTopicManager;
26 import com.google.gson.Gson;
27 import com.google.gson.JsonObject;
28
29 import java.io.BufferedReader;
30 import java.io.FileReader;
31 import java.io.IOException;
32 import java.util.ArrayList;
33 import java.util.HashSet;
34 import java.util.List;
35 import java.util.Set;
36
37 import org.junit.Before;
38 import org.junit.Test;
39 import org.junit.runner.RunWith;
40 import org.mockito.InjectMocks;
41 import org.mockito.Mock;
42 import org.mockito.Mockito;
43 import org.mockito.MockitoAnnotations;
44 import org.onap.dcaegen2.kpi.models.Configuration;
45 import org.springframework.boot.test.context.SpringBootTest;
46 import org.springframework.test.context.junit4.SpringRunner;
47
48 @RunWith(SpringRunner.class)
49 @SpringBootTest(classes = DmaapClientTest.class)
50 public class DmaapClientTest {
51
52     @Mock
53     private CambriaTopicManager topicManager;
54
55     @InjectMocks
56     DmaapClient client;
57
58     @Before
59     public void setup() {
60         MockitoAnnotations.initMocks(this);
61     }
62
63     @Test
64     public void getAllTopicsTest() {
65         Set<String> topics = new HashSet<String>();
66         topics.add("topic1");
67         topics.add("topic2");
68         Configuration configuration = Configuration.getInstance();
69         List<String> list = new ArrayList<String>();
70         list.add("server");
71         configuration.setDmaapServers(list);
72         configuration.setCg("cg");
73         configuration.setCid("cid");
74         configuration.setPollingInterval(30);
75         configuration.setPollingTimeout(100);
76
77         try {
78             when(topicManager.getTopics()).thenReturn(topics);
79
80             client = Mockito.mock(DmaapClient.class);
81             client.initClient();
82             Mockito.verify(client).initClient();
83             // Mockito.verifycreateAndConfigureTopics();
84
85         } catch (IOException e) {
86             e.printStackTrace();
87         }
88     }
89
90     @Test
91     public void startClientTest() {
92         try {
93             Configuration configuration = Configuration.getInstance();
94             String configAllJson = readFromFile("src/test/resources/config_all.json");
95
96             JsonObject configAll = new Gson().fromJson(configAllJson, JsonObject.class);
97
98             JsonObject config = configAll.getAsJsonObject("config");
99             System.out.println(configuration);
100             configuration.updateConfigurationFromJsonObject(config);
101             DmaapClient client = new DmaapClient();
102             client.initClient();
103             // Mockito.verify(client).startClient();
104             // Mockito.verifycreateAndConfigureTopics();
105
106         } catch (Exception e) {
107             e.printStackTrace();
108         }
109     }
110
111     private static String readFromFile(String file) {
112         String content = "";
113         try (BufferedReader bufferedReader = new BufferedReader(new FileReader(file))) {
114             content = bufferedReader.readLine();
115             String temp;
116             while ((temp = bufferedReader.readLine()) != null) {
117                 content = content.concat(temp);
118             }
119             content = content.trim();
120         } catch (Exception e) {
121             content = null;
122         }
123         return content;
124     }
125 }