re base code
[sdc.git] / catalog-fe / src / test / java / org / openecomp / sdc / fe / servlets / PluginStatusBLTest.java
1 package org.openecomp.sdc.fe.servlets;
2
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;
18
19 import java.io.IOException;
20 import java.util.ArrayList;
21 import java.util.List;
22
23 import static org.junit.Assert.assertTrue;
24 import static org.mockito.Mockito.when;
25
26 public class PluginStatusBLTest {
27
28         final static CloseableHttpClient httpClient = Mockito.mock(CloseableHttpClient.class);
29         PluginStatusBL pluginStatusBL = new PluginStatusBL(httpClient);
30         private static  Gson gson = new GsonBuilder().setPrettyPrinting().create();
31
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<>();
40
41         final static String offlinePluginsDisplayName = "offlinePlugin";
42         final static String offlinePluginDiscoveryPath = "http://192.168.10.1:1000/offline";
43
44         final static String onlinePluginDisplayName = "onlinePlugin";
45         final static String onlinePluginDiscoveryPath = "http://192.168.10.1:2000/online";
46
47         @BeforeClass
48         public static void beforeClass() {
49                 ConfigurationManager.setTestInstance(configurationManager);
50                 when(configurationManager.getPluginsConfiguration()).thenReturn(pluginsConfiguration);
51                 
52                 offlinePlugin.setPluginId(offlinePluginsDisplayName);
53                 offlinePlugin.setPluginDiscoveryUrl(offlinePluginDiscoveryPath);
54
55                 onlinePlugin.setPluginId(onlinePluginDisplayName);
56                 onlinePlugin.setPluginDiscoveryUrl(onlinePluginDiscoveryPath);
57         }
58
59         @Before
60         public void beforeTest() {
61                 testPluginsList = new ArrayList<>();
62                 assertPluginList = new ArrayList<>();
63         }
64
65         @Test
66         public void TestOfflinePluginBeingReturnedWithIsOnlineValueFalse() throws ClientProtocolException, IOException {
67                 testPluginsList.add(offlinePlugin);
68                 when(pluginsConfiguration.getPluginsList()).thenReturn(testPluginsList);
69                 
70                 when(statusLine.getStatusCode()).thenReturn(404);               
71                 when(httpResponse.getStatusLine()).thenReturn(statusLine);              
72                 when(httpClient.execute(Mockito.any(HttpHead.class))).thenReturn(httpResponse);
73
74                 offlinePlugin.setOnline(false);
75                 assertPluginList.add(offlinePlugin);
76
77                 String result = gson.toJson(assertPluginList);
78                 String actualResult = pluginStatusBL.checkPluginsListAvailability();
79
80                 System.out.println(result);
81                 System.out.println(actualResult);
82                 
83                 assertTrue(pluginStatusBL.checkPluginsListAvailability().equals(result));
84         }
85         
86         @Test
87         public void TestOnlinePluginBeingReturnedWithIsOnlineValueTrue() throws ClientProtocolException, IOException {
88                 testPluginsList.add(onlinePlugin);
89                 when(pluginsConfiguration.getPluginsList()).thenReturn(testPluginsList);
90                 
91                 when(statusLine.getStatusCode()).thenReturn(200);               
92                 when(httpResponse.getStatusLine()).thenReturn(statusLine);              
93                 when(httpClient.execute(Mockito.any())).thenReturn(httpResponse);
94
95                 onlinePlugin.setOnline(true);
96                 assertPluginList.add(onlinePlugin);
97
98                 String result = gson.toJson(assertPluginList);
99                 
100                 assertTrue(pluginStatusBL.checkPluginsListAvailability().equals(result));
101                 
102         }
103
104 }