2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ===================================================================
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
13 * http://www.apache.org/licenses/LICENSE-2.0
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.
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
26 * https://creativecommons.org/licenses/by/4.0/
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.
34 * ============LICENSE_END============================================
38 package org.onap.portalapp.portal.controller;
40 import static org.junit.Assert.assertEquals;
41 import static org.junit.Assert.assertNull;
42 import static org.junit.Assert.assertTrue;
44 import java.io.IOException;
45 import java.util.ArrayList;
46 import java.util.List;
48 import javax.servlet.http.HttpServletRequest;
49 import javax.servlet.http.HttpServletResponse;
50 import javax.servlet.http.HttpSession;
52 import org.junit.Before;
53 import org.junit.Test;
54 import org.mockito.InjectMocks;
55 import org.mockito.Mock;
56 import org.mockito.Mockito;
57 import org.mockito.MockitoAnnotations;
58 import org.onap.portalapp.portal.controller.AppCatalogController;
59 import org.onap.portalapp.portal.core.MockEPUser;
60 import org.onap.portalapp.portal.domain.EPApp;
61 import org.onap.portalapp.portal.domain.EPUser;
62 import org.onap.portalapp.portal.domain.EpAppType;
63 import org.onap.portalapp.portal.ecomp.model.AppCatalogItem;
64 import org.onap.portalapp.portal.framework.MockitoTestSuite;
65 import org.onap.portalapp.portal.service.AdminRolesService;
66 import org.onap.portalapp.portal.service.AdminRolesServiceImpl;
67 import org.onap.portalapp.portal.service.EPAppCommonServiceImpl;
68 import org.onap.portalapp.portal.service.EPAppService;
69 import org.onap.portalapp.portal.service.PersUserAppService;
70 import org.onap.portalapp.portal.service.PersUserAppServiceImpl;
71 import org.onap.portalapp.portal.transport.AppCatalogPersonalization;
72 import org.onap.portalapp.portal.transport.FieldsValidator;
73 import org.onap.portalapp.portal.transport.FieldsValidator.FieldName;
74 import org.onap.portalapp.util.EPUserUtils;
75 import org.onap.portalsdk.core.util.SystemProperties;
77 public class AppCatalogControllerTest extends MockitoTestSuite {
80 AdminRolesService adminRolesService = new AdminRolesServiceImpl();
83 EPAppService appService = new EPAppCommonServiceImpl();
86 AppCatalogController appCatalogController = new AppCatalogController();
88 PersUserAppService persUserAppService = Mockito.spy(new PersUserAppServiceImpl());
92 MockitoAnnotations.initMocks(this);
95 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
97 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
98 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
101 EPUserUtils ePUserUtils = new EPUserUtils();
106 NullPointerException nullPointerException = new NullPointerException();
108 MockEPUser mockUser = new MockEPUser();
110 public AppCatalogItem mockAppCatalogItem() {
111 AppCatalogItem appCatalogItem = new AppCatalogItem();
112 appCatalogItem.setId((long) 1);
113 appCatalogItem.setName("Ecomp Portal");
114 appCatalogItem.setImageUrl("Test_URL");
115 appCatalogItem.setDescription("Testing");
116 appCatalogItem.setNotes("Test");
117 appCatalogItem.setUrl("test");
118 appCatalogItem.setAlternateUrl("test");
119 appCatalogItem.setRestricted(false);
120 appCatalogItem.setOpen(false);
121 appCatalogItem.setAccess(true);
122 appCatalogItem.setSelect(true);
123 appCatalogItem.setPending(false);
125 return appCatalogItem;
129 public void getAppCatalogTestIfUserNotAdmin() throws IOException {
130 EPUser user = mockUser.mockEPUser();
131 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
132 List<AppCatalogItem> actualAppCatalogList = null;
134 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
136 AppCatalogItem appCatalogItem = mockAppCatalogItem();
137 expectedAppCatalog.add(appCatalogItem);
138 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
139 Mockito.when(appService.getUserAppCatalog(user)).thenReturn(expectedAppCatalog);
140 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
142 assertTrue(actualAppCatalogList.contains(appCatalogItem));
147 public void getAppCatalogTestIfUserIsAdmin() throws IOException {
148 EPUser user = mockUser.mockEPUser();
149 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
150 List<AppCatalogItem> actualAppCatalogList = null;
152 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
154 AppCatalogItem appCatalogItem = mockAppCatalogItem();
156 expectedAppCatalog.add(appCatalogItem);
157 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
158 Mockito.when(appService.getAdminAppCatalog(user)).thenReturn(expectedAppCatalog);
159 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
161 assertTrue(actualAppCatalogList.contains(appCatalogItem));
166 public void getAppCatalogTestIfUserisNull() throws IOException {
167 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null);
168 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
170 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
171 assertNull(actualAppCatalogList);
176 public void getAppCatalogTestIfUserThrowsExceptionTest() throws IOException {
177 EPUser user = new EPUser();
178 user.setFirstName("test");
179 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
180 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
183 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
185 Mockito.when(appCatalogController.getAppCatalog(mockedRequest, mockedResponse)).thenThrow(nullPointerException);
187 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
188 assertNull(actualAppCatalogList);
193 public void putAppCatalogSelectionTestWhenAppIsNull() throws IOException {
195 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
196 persRequest.setAppId((long) 1);
197 persRequest.setPending(false);
198 persRequest.setSelect(false);
200 EPUser user = mockUser.mockEPUser();
202 FieldsValidator expectedFieldValidator = new FieldsValidator();
204 FieldsValidator actualFieldValidator = new FieldsValidator();
205 List<FieldName> fields = new ArrayList<>();
208 expectedFieldValidator.setHttpStatusCode((long) 200);
209 expectedFieldValidator.setFields(fields);
210 expectedFieldValidator.setErrorCode(null);
214 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
216 HttpSession session = mockedRequest.getSession();
217 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
219 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
220 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
221 assertEquals(expectedFieldValidator, actualFieldValidator);
226 public void putAppCatalogSelectionTest() throws IOException {
228 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
229 persRequest.setAppId((long) 1);
230 persRequest.setPending(false);
231 persRequest.setSelect(false);
233 EPUser user = mockUser.mockEPUser();
235 FieldsValidator expectedFieldValidator = new FieldsValidator();
237 FieldsValidator actualFieldValidator = new FieldsValidator();
238 List<FieldName> fields = new ArrayList<>();
241 expectedFieldValidator.setHttpStatusCode((long) 200);
242 expectedFieldValidator.setFields(fields);
243 expectedFieldValidator.setErrorCode(null);
245 EPApp app = new EPApp();
248 app.setImageUrl("test");
249 app.setAppDescription("test");
250 app.setAppNotes("test");
251 app.setLandingPage("test");
253 app.setAppRestEndpoint("test");
254 app.setAlternateLandingPage("test");
256 app.setMlAppName("test");
257 app.setMlAppAdminId("test");
258 app.setAppBasicAuthUsername("test");
259 app.setAppBasicAuthPassword("test");
261 app.setEnabled(false);
262 app.setUebKey("test");
263 app.setUebSecret("test");
264 app.setUebTopicName("test");
265 app.setAppType(EpAppType.GUI);
267 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
269 HttpSession session = mockedRequest.getSession();
270 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
272 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
273 Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, app, persRequest.getSelect(),
274 persRequest.getPending());
276 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
278 assertEquals(expectedFieldValidator, actualFieldValidator);
283 public void putAppCatalogSelectionTestWithException() throws IOException {
285 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
286 persRequest.setAppId((long) 1);
287 persRequest.setPending(false);
288 persRequest.setSelect(false);
290 EPUser user = mockUser.mockEPUser();
292 FieldsValidator expectedFieldValidator = new FieldsValidator();
294 FieldsValidator actualFieldValidator = new FieldsValidator();
295 List<FieldName> fields = new ArrayList<>();
298 expectedFieldValidator.setHttpStatusCode((long) 200);
299 expectedFieldValidator.setFields(fields);
300 expectedFieldValidator.setErrorCode(null);
302 EPApp app = new EPApp();
305 app.setImageUrl("test");
306 app.setAppDescription("test");
307 app.setAppNotes("test");
308 app.setLandingPage("test");
310 app.setAppRestEndpoint("test");
311 app.setAlternateLandingPage("test");
313 app.setMlAppName("test");
314 app.setMlAppAdminId("test");
315 app.setAppBasicAuthUsername("test");
316 app.setAppBasicAuthPassword("test");
318 app.setEnabled(false);
319 app.setUebKey("test");
320 app.setUebSecret("test");
321 app.setUebTopicName("test");
322 app.setAppType(EpAppType.GUI);
324 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
326 HttpSession session = mockedRequest.getSession();
327 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
329 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
330 Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, null, persRequest.getSelect(),
331 persRequest.getPending());
333 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
335 assertEquals(expectedFieldValidator, actualFieldValidator);