1 package org.openecomp.sdc.fe.servlets;
3 import com.google.gson.Gson;
4 import com.google.gson.GsonBuilder;
5 import org.apache.http.StatusLine;
6 import org.apache.http.client.ClientProtocolException;
7 import org.apache.http.client.methods.CloseableHttpResponse;
8 import org.apache.http.client.methods.HttpHead;
9 import org.apache.http.impl.client.CloseableHttpClient;
10 import org.junit.Before;
11 import org.junit.BeforeClass;
12 import org.junit.Test;
13 import org.mockito.Mockito;
14 import org.openecomp.sdc.fe.config.ConfigurationManager;
15 import org.openecomp.sdc.fe.config.PluginsConfiguration;
16 import org.openecomp.sdc.fe.config.PluginsConfiguration.Plugin;
17 import org.openecomp.sdc.fe.impl.PluginStatusBL;
19 import java.io.IOException;
20 import java.util.ArrayList;
21 import java.util.List;
23 import static org.junit.Assert.assertTrue;
24 import static org.mockito.Mockito.when;
26 public class PluginStatusBLTest {
28 final static CloseableHttpClient httpClient = Mockito.mock(CloseableHttpClient.class);
29 PluginStatusBL pluginStatusBL = new PluginStatusBL(httpClient);
30 private static Gson gson = new GsonBuilder().setPrettyPrinting().create();
32 final static ConfigurationManager configurationManager = Mockito.mock(ConfigurationManager.class);
33 final static PluginsConfiguration pluginsConfiguration = Mockito.mock(PluginsConfiguration.class);
34 final static Plugin offlinePlugin = new Plugin();
35 final static Plugin onlinePlugin = new Plugin();
36 final static CloseableHttpResponse httpResponse = Mockito.mock(CloseableHttpResponse.class);
37 final static StatusLine statusLine = Mockito.mock(StatusLine.class);
38 static List<Plugin> testPluginsList = new ArrayList<>();
39 static List<Plugin> assertPluginList = new ArrayList<>();
41 final static String offlinePluginsDisplayName = "offlinePlugin";
42 final static String offlinePluginDiscoveryPath = "http://192.168.10.1:1000/offline";
44 final static String onlinePluginDisplayName = "onlinePlugin";
45 final static String onlinePluginDiscoveryPath = "http://192.168.10.1:2000/online";
48 public static void beforeClass() {
49 ConfigurationManager.setTestInstance(configurationManager);
50 when(configurationManager.getPluginsConfiguration()).thenReturn(pluginsConfiguration);
52 offlinePlugin.setPluginId(offlinePluginsDisplayName);
53 offlinePlugin.setPluginDiscoveryUrl(offlinePluginDiscoveryPath);
55 onlinePlugin.setPluginId(onlinePluginDisplayName);
56 onlinePlugin.setPluginDiscoveryUrl(onlinePluginDiscoveryPath);
60 public void beforeTest() {
61 testPluginsList = new ArrayList<>();
62 assertPluginList = new ArrayList<>();
66 public void TestOfflinePluginBeingReturnedWithIsOnlineValueFalse() throws ClientProtocolException, IOException {
67 testPluginsList.add(offlinePlugin);
68 when(pluginsConfiguration.getPluginsList()).thenReturn(testPluginsList);
70 when(statusLine.getStatusCode()).thenReturn(404);
71 when(httpResponse.getStatusLine()).thenReturn(statusLine);
72 when(httpClient.execute(Mockito.any(HttpHead.class))).thenReturn(httpResponse);
74 offlinePlugin.setOnline(false);
75 assertPluginList.add(offlinePlugin);
77 String result = gson.toJson(assertPluginList);
78 String actualResult = pluginStatusBL.checkPluginsListAvailability();
80 System.out.println(result);
81 System.out.println(actualResult);
83 assertTrue(pluginStatusBL.checkPluginsListAvailability().equals(result));
87 public void TestOnlinePluginBeingReturnedWithIsOnlineValueTrue() throws ClientProtocolException, IOException {
88 testPluginsList.add(onlinePlugin);
89 when(pluginsConfiguration.getPluginsList()).thenReturn(testPluginsList);
91 when(statusLine.getStatusCode()).thenReturn(200);
92 when(httpResponse.getStatusLine()).thenReturn(statusLine);
93 when(httpClient.execute(Mockito.any())).thenReturn(httpResponse);
95 onlinePlugin.setOnline(true);
96 assertPluginList.add(onlinePlugin);
98 String result = gson.toJson(assertPluginList);
100 assertTrue(pluginStatusBL.checkPluginsListAvailability().equals(result));