Fixed health check issue
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / controller / WidgetsControllerTest.java
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  *
8  * Unless otherwise specified, all software contained herein is licensed
9  * under the Apache License, Version 2.0 (the "License");
10  * you may not use this software except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *             http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Unless otherwise specified, all documentation contained herein is licensed
22  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23  * you may not use this documentation except in compliance with the License.
24  * You may obtain a copy of the License at
25  *
26  *             https://creativecommons.org/licenses/by/4.0/
27  *
28  * Unless required by applicable law or agreed to in writing, documentation
29  * distributed under the License is distributed on an "AS IS" BASIS,
30  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31  * See the License for the specific language governing permissions and
32  * limitations under the License.
33  *
34  * ============LICENSE_END============================================
35  *
36  * 
37  */
38 package org.onap.portalapp.portal.controller;
39
40 import static org.junit.Assert.assertEquals;
41
42 import java.util.ArrayList;
43 import java.util.List;
44
45 import javax.servlet.http.HttpServletRequest;
46 import javax.servlet.http.HttpServletResponse;
47
48 import org.junit.Before;
49 import org.junit.Test;
50 import org.mockito.InjectMocks;
51 import org.mockito.Mock;
52 import org.mockito.Mockito;
53 import org.mockito.MockitoAnnotations;
54 import org.mockito.stubbing.Answer;
55 import org.onap.portalapp.portal.core.MockEPUser;
56 import org.onap.portalapp.portal.domain.EPUser;
57 import org.onap.portalapp.portal.framework.MockitoTestSuite;
58 import org.onap.portalapp.portal.service.AdminRolesService;
59 import org.onap.portalapp.portal.service.PersUserWidgetService;
60 import org.onap.portalapp.portal.service.WidgetService;
61 import org.onap.portalapp.portal.transport.FieldsValidator;
62 import org.onap.portalapp.portal.transport.FieldsValidator.FieldName;
63 import org.onap.portalapp.portal.transport.OnboardingWidget;
64 import org.onap.portalapp.portal.transport.WidgetCatalogPersonalization;
65 import org.onap.portalapp.util.EPUserUtils;
66 import org.springframework.web.client.RestClientException;
67
68 public class WidgetsControllerTest  extends MockitoTestSuite{
69
70         @InjectMocks
71         WidgetsController widgetsController;
72         
73         @Mock
74         private AdminRolesService rolesService;
75         
76         @Mock
77         private WidgetService widgetService ;
78         
79         @Mock
80         private PersUserWidgetService persUserWidgetService;
81         
82         @Mock
83         EPUser epuser;
84         
85         MockEPUser mockUser = new MockEPUser();
86         
87         @Before
88         public void setup() {
89                 MockitoAnnotations.initMocks(this);
90         }
91         
92         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
93
94         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
95         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
96         
97         @Test
98         public void getOnboardingWidgetsTest() throws RestClientException, Exception{
99                 EPUser user = mockUser.mockEPUser();
100                 String getType="test";
101                 List<OnboardingWidget> actualResult = null;
102                 String expectedResult = null;
103                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
104                 List<OnboardingWidget> onboardingWidgets = null;
105                 //Mockito.when(StringUtils.isEmpty("")).thenReturn(true);
106                 Mockito.when(widgetService.getOnboardingWidgets(user, getType.equals("managed"))).thenReturn(onboardingWidgets);
107                 actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse);
108                 assertEquals(expectedResult, actualResult);
109         
110         }
111         
112         @Test
113         public void getOnboardingWidgetsTest1(){
114                 EPUser user = mockUser.mockEPUser();
115                 Mockito.when(mockedRequest.getHeader("X-Widgets-Type")).thenReturn("managed");
116                 //String getType=Matchers.any(String.class);
117                 List<OnboardingWidget> actualResult = null;
118                 String expectedResult = null;
119                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
120                 List<OnboardingWidget> onboardingWidgets = new ArrayList<>();
121                 OnboardingWidget widget = new OnboardingWidget();
122                 onboardingWidgets.add(widget);          //Mockito.when(StringUtils.isEmpty("")).thenReturn(true);
123                 Mockito.when(widgetService.getOnboardingWidgets(user, true)).thenReturn(onboardingWidgets);
124                 actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse);
125         //      assertEquals(expectedResult, actualResult);
126         
127         }
128         
129         @Test
130         public void getOnboardingWidgetswithUserNullTest(){
131                 EPUser user = null;
132                 Mockito.when(mockedRequest.getHeader("X-Widgets-Type")).thenReturn("managed");
133                 //String getType=Matchers.any(String.class);
134                 List<OnboardingWidget> actualResult = null;
135                 String expectedResult = null;
136                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
137                 List<OnboardingWidget> onboardingWidgets = new ArrayList<>();
138                 OnboardingWidget widget = new OnboardingWidget();
139                 onboardingWidgets.add(widget);          //Mockito.when(StringUtils.isEmpty("")).thenReturn(true);
140                 Mockito.when(widgetService.getOnboardingWidgets(user, true)).thenReturn(onboardingWidgets);
141                 actualResult = widgetsController.getOnboardingWidgets(mockedRequest, mockedResponse);
142         
143         }
144         
145         @Test
146         public void putOnboardingWidgetTest() {
147                 FieldsValidator actualFieldsValidator = null;
148                 EPUser user = mockUser.mockEPUser();
149                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
150                 OnboardingWidget onboardingWidget=new OnboardingWidget();
151                 onboardingWidget.id=12L;
152                 onboardingWidget.normalize();
153                 //Mockito.doNothing().when(onboardingWidget).normalize();
154                 FieldsValidator expectedFieldValidator = new FieldsValidator();
155                 List<FieldName> fields = new ArrayList<>();
156
157                 expectedFieldValidator.setHttpStatusCode((long) 200);
158                 expectedFieldValidator.setFields(fields);
159                 expectedFieldValidator.setErrorCode(null);
160                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
161                 actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse);
162                 
163         }
164
165         @Test
166         public void putOnboardingWidgetXSSTest() {
167                 FieldsValidator actualFieldsValidator = null;
168                 EPUser user = mockUser.mockEPUser();
169                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
170                 OnboardingWidget onboardingWidget=new OnboardingWidget();
171                 onboardingWidget.id=12L;
172                 onboardingWidget.name = "<script>alert(/XSS”)</script>";
173                 onboardingWidget.normalize();
174                 FieldsValidator expectedFieldValidator = new FieldsValidator();
175                 expectedFieldValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE);
176                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
177                 actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse);
178
179                 assertEquals(expectedFieldValidator, actualFieldsValidator);
180
181         }
182         
183         @Test
184         public void putOnboardingWidgetWithUserPermissionTest() {
185                 FieldsValidator actualFieldsValidator = null;
186                 EPUser user = mockUser.mockEPUser();
187                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
188                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
189                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
190                 OnboardingWidget onboardingWidget=new OnboardingWidget();
191                 onboardingWidget.id=12L;
192                 onboardingWidget.normalize();
193                 //Mockito.doNothing().when(onboardingWidget).normalize();
194                 FieldsValidator expectedFieldValidator = new FieldsValidator();
195                 List<FieldName> fields = new ArrayList<>();
196
197                 expectedFieldValidator.setHttpStatusCode((long) 200);
198                 expectedFieldValidator.setFields(fields);
199                 expectedFieldValidator.setErrorCode(null);
200                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
201                 actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse);
202                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
203                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
204                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
205         }
206         
207         @Test
208         public void postOnboardingWidgetTest(){
209                 EPUser user=mockUser.mockEPUser();
210                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
211                 FieldsValidator actualFieldsValidator = null;
212                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
213                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
214                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
215                 OnboardingWidget onboardingWidget=new OnboardingWidget();
216                 onboardingWidget.id=12L;
217                 onboardingWidget.normalize();
218                 FieldsValidator expectedFieldValidator = new FieldsValidator();
219                 List<FieldName> fields = new ArrayList<>();
220
221                 expectedFieldValidator.setHttpStatusCode((long) 200);
222                 expectedFieldValidator.setFields(fields);
223                 expectedFieldValidator.setErrorCode(null);
224                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
225                 actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse);
226                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
227                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
228                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
229         }
230
231         @Test
232         public void postOnboardingWidgetXSSTest(){
233                 EPUser user=mockUser.mockEPUser();
234                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
235                 FieldsValidator actualFieldsValidator = null;
236                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
237                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
238                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
239                 OnboardingWidget onboardingWidget=new OnboardingWidget();
240                 onboardingWidget.id=12L;
241                 onboardingWidget.appName="<script>alert(/XSS”)</script>";
242                 onboardingWidget.normalize();
243                 FieldsValidator expectedFieldValidator = new FieldsValidator();
244                 List<FieldName> fields = new ArrayList<>();
245
246                 expectedFieldValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE);
247                 expectedFieldValidator.setFields(fields);
248                 expectedFieldValidator.setErrorCode(null);
249                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
250                 actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse);
251                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
252                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
253                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
254         }
255         
256         @Test
257         public void postOnboardingWidgetTestwiThoutUserPermission() {
258                 FieldsValidator actualFieldsValidator = null;
259                 EPUser user = mockUser.mockEPUser();
260                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
261                 OnboardingWidget onboardingWidget=new OnboardingWidget();
262                 onboardingWidget.id=12L;
263                 onboardingWidget.normalize();
264                 //Mockito.doNothing().when(onboardingWidget).normalize();
265                 FieldsValidator expectedFieldValidator = new FieldsValidator();
266                 List<FieldName> fields = new ArrayList<>();
267
268                 expectedFieldValidator.setHttpStatusCode((long) 200);
269                 expectedFieldValidator.setFields(fields);
270                 expectedFieldValidator.setErrorCode(null);
271                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
272                 actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest,  onboardingWidget, mockedResponse);
273                 
274         }
275         
276         @Test
277         public void deleteOnboardingWidgetTest(){
278                 FieldsValidator actualFieldsValidator = null;
279                 EPUser user=mockUser.mockEPUser();
280                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
281                 FieldsValidator expectedFieldValidator = new FieldsValidator();
282                 List<FieldName> fields = new ArrayList<>();
283                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
284                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
285                 expectedFieldValidator.setHttpStatusCode((long) 200);
286                 expectedFieldValidator.setFields(fields);
287                 expectedFieldValidator.setErrorCode(null);
288                 Mockito.when(widgetService.deleteOnboardingWidget(user, 12L)).thenReturn(expectedFieldValidator);
289                 actualFieldsValidator = widgetsController.deleteOnboardingWidget(mockedRequest,  12L, mockedResponse);
290                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
291                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
292                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
293         }
294         @Test
295         public void deleteOnboardingWidgetWithOutUserPermissionsTest(){
296                 FieldsValidator actualFieldsValidator = null;
297                 EPUser user=mockUser.mockEPUser();
298                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
299                 FieldsValidator expectedFieldValidator = new FieldsValidator();
300                 List<FieldName> fields = new ArrayList<>();
301                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(false);
302                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(false);
303                 expectedFieldValidator.setHttpStatusCode((long) 200);
304                 expectedFieldValidator.setFields(fields);
305                 expectedFieldValidator.setErrorCode(null);
306                 Mockito.when(widgetService.deleteOnboardingWidget(user, 12L)).thenReturn(expectedFieldValidator);
307                 actualFieldsValidator = widgetsController.deleteOnboardingWidget(mockedRequest,  12L, mockedResponse);
308                 
309         }
310         
311         @Test
312         public void putWidgetCatalogSelectionTest1() throws Exception {
313
314                 FieldsValidator actualFieldsValidator = new FieldsValidator();
315                 EPUser user=mockUser.mockEPUser();
316                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
317                 FieldsValidator expectedFieldValidator = new FieldsValidator();
318                 List<FieldName> fields = new ArrayList<>();
319                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
320                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
321                 expectedFieldValidator.setHttpStatusCode((long) 200);
322                 expectedFieldValidator.setFields(fields);
323                 expectedFieldValidator.setErrorCode(null);
324                 WidgetCatalogPersonalization widgetCatalogPersonalization=new WidgetCatalogPersonalization();
325                 widgetCatalogPersonalization.widgetId=12L;
326                 //Mockito.doThrow(new Exception()).doNothing().when(persUserWidgetService).setPersUserAppValue(user, 12L, true);
327                 //Mockito.doNothing().thenReturn();
328                 actualFieldsValidator = widgetsController.putWidgetCatalogSelection(mockedRequest, widgetCatalogPersonalization, mockedResponse);
329                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
330                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
331                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
332         
333                 
334         }
335         
336         @Test(expected=ClassCastException.class)
337         public void putWidgetCatalogSelectionTest() throws Exception {
338
339                 FieldsValidator actualFieldsValidator = new FieldsValidator();
340                 EPUser user=null;
341                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
342                 FieldsValidator expectedFieldValidator = new FieldsValidator();
343                 List<FieldName> fields = new ArrayList<>();
344                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
345                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
346                 expectedFieldValidator.setHttpStatusCode((long) 200);
347                 expectedFieldValidator.setFields(fields);
348                 expectedFieldValidator.setErrorCode(null);
349                 WidgetCatalogPersonalization widgetCatalogPersonalization=new WidgetCatalogPersonalization();
350                 Mockito.doAnswer((Answer) new Exception()).doNothing().when(persUserWidgetService).setPersUserAppValue(user, 12L, true);
351                 //Mockito.doNothing().thenReturn();
352                 actualFieldsValidator = widgetsController.putWidgetCatalogSelection(mockedRequest, widgetCatalogPersonalization, mockedResponse);
353                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
354                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
355                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
356         
357                 
358         }
359
360 }