00c2d206d5779c6b6c60035f7533f431f313eef9
[sdc.git] / catalog-fe / src / test / java / org / openecomp / sdc / fe / servlets / DesignerStatusBLTest.java
1 package org.openecomp.sdc.fe.servlets;
2
3 import static org.junit.Assert.assertTrue;
4 import static org.mockito.Mockito.when;
5
6 import java.io.IOException;
7 import java.util.ArrayList;
8 import java.util.List;
9
10 import org.apache.http.StatusLine;
11 import org.apache.http.client.ClientProtocolException;
12 import org.apache.http.client.methods.CloseableHttpResponse;
13 import org.apache.http.client.methods.HttpHead;
14 import org.apache.http.impl.client.CloseableHttpClient;
15 import org.junit.BeforeClass;
16 import org.junit.Test;
17 import org.mockito.Mockito;
18 import org.openecomp.sdc.fe.config.ConfigurationManager;
19 import org.openecomp.sdc.fe.config.DesignersConfiguration;
20 import org.openecomp.sdc.fe.config.DesignersConfiguration.Designer;
21 import org.openecomp.sdc.fe.impl.DesignerStatusBL;
22
23 import com.google.gson.Gson;
24 import com.google.gson.GsonBuilder;
25
26 public class DesignerStatusBLTest {
27
28         final static CloseableHttpClient httpClient = Mockito.mock(CloseableHttpClient.class);
29         DesignerStatusBL designerStatusBL = new DesignerStatusBL(httpClient);
30         private static  Gson gson = new GsonBuilder().setPrettyPrinting().create();
31
32         final static ConfigurationManager configurationManager = Mockito.mock(ConfigurationManager.class);
33         final static DesignersConfiguration designersConfiguration = Mockito.mock(DesignersConfiguration.class);
34         final static Designer offlineDesigner = new Designer();
35         final static Designer onlineDesigner = new Designer();
36         final static CloseableHttpResponse httpResponse = Mockito.mock(CloseableHttpResponse.class);
37         final static StatusLine statusLine = Mockito.mock(StatusLine.class); 
38         final static List<Designer> testDesignersList = new ArrayList<>();
39
40         final static String offlineDesignerDisplayName = "offlineDesigner";
41         final static String offlineDesignerHost = "192.168.10.1";
42         final static int offlineDesignerPort = 1000;
43         final static String offlineDesignerPath = "/offline";
44         final static String offlineDesignerProtocol = "http";
45
46         final static String onlineDesignerDisplayName = "onlineDesigner";
47         final static String onlineDesignerHost = "192.168.20.2";
48         final static int onlineDesignerPort = 2000;
49         final static String onlineDesignerPath = "/online";
50         final static String onlineDesignerProtocol = "http";
51
52         @BeforeClass
53         public static void beforeClass() {
54                 ConfigurationManager.setTestInstance(configurationManager);
55                 when(configurationManager.getDesignersConfiguration()).thenReturn(designersConfiguration);
56                 
57                 offlineDesigner.setDisplayName(offlineDesignerDisplayName);
58                 offlineDesigner.setDesignerHost(offlineDesignerHost);
59                 offlineDesigner.setDesignerPort(offlineDesignerPort);
60                 offlineDesigner.setDesignerPath(offlineDesignerPath);
61                 offlineDesigner.setDesignerProtocol(offlineDesignerProtocol);
62
63                 StringBuilder offlineRequestString = new StringBuilder();
64                 offlineRequestString.append(offlineDesignerProtocol).append("://").append(onlineDesignerHost).append(":")
65                                 .append(offlineDesignerPort).append(offlineDesignerPath);
66
67                 onlineDesigner.setDisplayName(onlineDesignerDisplayName);
68                 onlineDesigner.setDesignerHost(onlineDesignerHost);
69                 onlineDesigner.setDesignerPort(onlineDesignerPort);
70                 onlineDesigner.setDesignerPath(onlineDesignerPath);
71                 onlineDesigner.setDesignerProtocol(onlineDesignerProtocol);
72
73                 StringBuilder onlineRequestString = new StringBuilder();
74                 onlineRequestString.append(onlineDesignerProtocol).append("://").append(onlineDesignerHost).append(":")
75                                 .append(offlineDesignerPort).append(offlineDesignerPath);
76                 
77         }
78
79         @Test
80         public void TestOfflineDesignerNotBeingReturnedWhenCallingCheckDesignerListAvailability() throws ClientProtocolException, IOException {
81                 testDesignersList.add(offlineDesigner);
82                 when(designersConfiguration.getDesignersList()).thenReturn(testDesignersList);
83                 
84                 when(statusLine.getStatusCode()).thenReturn(404);               
85                 when(httpResponse.getStatusLine()).thenReturn(statusLine);              
86                 when(httpClient.execute(Mockito.any(HttpHead.class))).thenReturn(httpResponse);
87                 
88                 assertTrue(designerStatusBL.checkDesignerListAvailability().equals("[]"));
89                 
90         }
91         
92         @Test
93         public void TestOnlineDesignerNotBeingReturnedWhenCallingCheckDesignerListAvailability() throws ClientProtocolException, IOException {
94                 testDesignersList.add(onlineDesigner);
95                 when(designersConfiguration.getDesignersList()).thenReturn(testDesignersList);
96                 
97                 when(statusLine.getStatusCode()).thenReturn(200);               
98                 when(httpResponse.getStatusLine()).thenReturn(statusLine);              
99                 when(httpClient.execute(Mockito.any())).thenReturn(httpResponse);
100                 
101                 String result = gson.toJson(testDesignersList);
102                 
103                 assertTrue(designerStatusBL.checkDesignerListAvailability().contains(result));
104                 
105         }
106
107 }