c6bd8001513c56c15ab263458d41d264c133f1eb
[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 = new 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 putOnboardingWidgetWithUserPermissionTest() {
167                 FieldsValidator actualFieldsValidator = null;
168                 EPUser user = mockUser.mockEPUser();
169                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
170                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
171                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
172                 OnboardingWidget onboardingWidget=new OnboardingWidget();
173                 onboardingWidget.id=12L;
174                 onboardingWidget.normalize();
175                 //Mockito.doNothing().when(onboardingWidget).normalize();       
176                 FieldsValidator expectedFieldValidator = new FieldsValidator();
177                 List<FieldName> fields = new ArrayList<>();
178
179                 expectedFieldValidator.setHttpStatusCode((long) 200);
180                 expectedFieldValidator.setFields(fields);
181                 expectedFieldValidator.setErrorCode(null);
182                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
183                 actualFieldsValidator = widgetsController.putOnboardingWidget(mockedRequest, 12L, onboardingWidget, mockedResponse);
184                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
185                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
186                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
187         }
188         
189         @Test
190         public void postOnboardingWidgetTest(){
191                 EPUser user=mockUser.mockEPUser();
192                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
193                 FieldsValidator actualFieldsValidator = null;
194                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
195                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
196                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
197                 OnboardingWidget onboardingWidget=new OnboardingWidget();
198                 onboardingWidget.id=12L;
199                 onboardingWidget.normalize();
200                 FieldsValidator expectedFieldValidator = new FieldsValidator();
201                 List<FieldName> fields = new ArrayList<>();
202
203                 expectedFieldValidator.setHttpStatusCode((long) 200);
204                 expectedFieldValidator.setFields(fields);
205                 expectedFieldValidator.setErrorCode(null);
206                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
207                 actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest, onboardingWidget, mockedResponse);
208                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
209                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
210                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
211         }
212         
213         @Test
214         public void postOnboardingWidgetTestwiThoutUserPermission() {
215                 FieldsValidator actualFieldsValidator = null;
216                 EPUser user = mockUser.mockEPUser();
217                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
218                 OnboardingWidget onboardingWidget=new OnboardingWidget();
219                 onboardingWidget.id=12L;
220                 onboardingWidget.normalize();
221                 //Mockito.doNothing().when(onboardingWidget).normalize();       
222                 FieldsValidator expectedFieldValidator = new FieldsValidator();
223                 List<FieldName> fields = new ArrayList<>();
224
225                 expectedFieldValidator.setHttpStatusCode((long) 200);
226                 expectedFieldValidator.setFields(fields);
227                 expectedFieldValidator.setErrorCode(null);
228                 Mockito.when(widgetService.setOnboardingWidget(user, onboardingWidget)).thenReturn(expectedFieldValidator);
229                 actualFieldsValidator = widgetsController.postOnboardingWidget(mockedRequest,  onboardingWidget, mockedResponse);
230                 
231         }
232         
233         @Test
234         public void deleteOnboardingWidgetTest(){
235                 FieldsValidator actualFieldsValidator = null;
236                 EPUser user=mockUser.mockEPUser();
237                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
238                 FieldsValidator expectedFieldValidator = new FieldsValidator();
239                 List<FieldName> fields = new ArrayList<>();
240                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
241                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
242                 expectedFieldValidator.setHttpStatusCode((long) 200);
243                 expectedFieldValidator.setFields(fields);
244                 expectedFieldValidator.setErrorCode(null);
245                 Mockito.when(widgetService.deleteOnboardingWidget(user, 12L)).thenReturn(expectedFieldValidator);
246                 actualFieldsValidator = widgetsController.deleteOnboardingWidget(mockedRequest,  12L, mockedResponse);
247                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
248                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
249                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
250         }
251         @Test
252         public void deleteOnboardingWidgetWithOutUserPermissionsTest(){
253                 FieldsValidator actualFieldsValidator = null;
254                 EPUser user=mockUser.mockEPUser();
255                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
256                 FieldsValidator expectedFieldValidator = new FieldsValidator();
257                 List<FieldName> fields = new ArrayList<>();
258                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(false);
259                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(false);
260                 expectedFieldValidator.setHttpStatusCode((long) 200);
261                 expectedFieldValidator.setFields(fields);
262                 expectedFieldValidator.setErrorCode(null);
263                 Mockito.when(widgetService.deleteOnboardingWidget(user, 12L)).thenReturn(expectedFieldValidator);
264                 actualFieldsValidator = widgetsController.deleteOnboardingWidget(mockedRequest,  12L, mockedResponse);
265                 
266         }
267         
268         @Test
269         public void putWidgetCatalogSelectionTest1() throws Exception {
270
271                 FieldsValidator actualFieldsValidator = new FieldsValidator();
272                 EPUser user=mockUser.mockEPUser();
273                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
274                 FieldsValidator expectedFieldValidator = new FieldsValidator();
275                 List<FieldName> fields = new ArrayList<>();
276                 Mockito.when(rolesService.isSuperAdmin(user)).thenReturn(true);
277                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
278                 expectedFieldValidator.setHttpStatusCode((long) 200);
279                 expectedFieldValidator.setFields(fields);
280                 expectedFieldValidator.setErrorCode(null);
281                 WidgetCatalogPersonalization widgetCatalogPersonalization=new WidgetCatalogPersonalization();
282                 widgetCatalogPersonalization.widgetId=12L;
283                 //Mockito.doThrow(new Exception()).doNothing().when(persUserWidgetService).setPersUserAppValue(user, 12L, true);
284                 //Mockito.doNothing().thenReturn();
285                 actualFieldsValidator = widgetsController.putWidgetCatalogSelection(mockedRequest, widgetCatalogPersonalization, mockedResponse);
286                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
287                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
288                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
289         
290                 
291         }
292         
293         @Test(expected=ClassCastException.class)
294         public void putWidgetCatalogSelectionTest() throws Exception {
295
296                 FieldsValidator actualFieldsValidator = new FieldsValidator();
297                 EPUser user=null;
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(true);
302                 Mockito.when(rolesService.isAccountAdmin(user)).thenReturn(true);
303                 expectedFieldValidator.setHttpStatusCode((long) 200);
304                 expectedFieldValidator.setFields(fields);
305                 expectedFieldValidator.setErrorCode(null);
306                 WidgetCatalogPersonalization widgetCatalogPersonalization=new WidgetCatalogPersonalization();
307                 Mockito.doAnswer((Answer) new Exception()).doNothing().when(persUserWidgetService).setPersUserAppValue(user, 12L, true);
308                 //Mockito.doNothing().thenReturn();
309                 actualFieldsValidator = widgetsController.putWidgetCatalogSelection(mockedRequest, widgetCatalogPersonalization, mockedResponse);
310                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
311                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
312                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
313         
314                 
315         }
316
317 }