2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright (C) 2017-2018 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;
42 import java.util.ArrayList;
43 import java.util.List;
45 import javax.servlet.http.HttpServletRequest;
46 import javax.servlet.http.HttpServletResponse;
47 import javax.servlet.http.HttpSession;
49 import org.junit.Before;
50 import org.junit.Test;
51 import org.junit.runner.RunWith;
52 import org.mockito.InjectMocks;
53 import org.mockito.Mock;
54 import org.mockito.Mockito;
55 import org.mockito.MockitoAnnotations;
56 import org.onap.portalapp.portal.controller.UserRolesController;
57 import org.onap.portalapp.portal.core.MockEPUser;
58 import org.onap.portalapp.portal.domain.EPUser;
59 import org.onap.portalapp.portal.domain.EcompAuditLog;
60 import org.onap.portalapp.portal.framework.MockitoTestSuite;
61 import org.onap.portalapp.portal.service.AdminRolesService;
62 import org.onap.portalapp.portal.service.SearchService;
63 import org.onap.portalapp.portal.service.UserRolesService;
64 import org.onap.portalapp.portal.transport.AppNameIdIsAdmin;
65 import org.onap.portalapp.portal.transport.AppWithRolesForUser;
66 import org.onap.portalapp.portal.transport.AppsListWithAdminRole;
67 import org.onap.portalapp.portal.transport.FieldsValidator;
68 import org.onap.portalapp.portal.transport.RoleInAppForUser;
69 import org.onap.portalapp.portal.transport.FieldsValidator.FieldName;
70 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
71 import org.onap.portalapp.portal.utils.EcompPortalUtils;
72 import org.onap.portalapp.util.EPUserUtils;
73 import org.onap.portalsdk.core.service.AuditService;
74 import org.onap.portalsdk.core.service.DataAccessService;
75 import org.onap.portalsdk.core.util.SystemProperties;
76 import org.powermock.core.classloader.annotations.PrepareForTest;
77 import org.powermock.modules.junit4.PowerMockRunner;
79 @RunWith(PowerMockRunner.class)
80 @PrepareForTest({EcompPortalUtils.class, EPCommonSystemProperties.class, EcompAuditLog.class, SystemProperties.class})
81 public class UserRolesControllerTest extends MockitoTestSuite {
83 String userid = "ab1234";
86 UserRolesService userRolesService;
89 SearchService searchService;
92 AuditService auditService;
95 AdminRolesService adminRolesService;
98 FieldsValidator fieldsValidator;
101 UserRolesController userRolesController = new UserRolesController();
104 private DataAccessService dataAccessService;
107 public void setup() {
108 MockitoAnnotations.initMocks(this);
111 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
113 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
114 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
117 EPUserUtils ePUserUtils = new EPUserUtils();
122 MockEPUser mockUser = new MockEPUser();
125 public void putAppWithUserRoleRequestTest() {
127 FieldsValidator actualFieldsValidator = null;
129 AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
130 List<RoleInAppForUser> listofRoles = new ArrayList<RoleInAppForUser>();
132 appWithRolesForUser.setOrgUserId("guest");
133 appWithRolesForUser.setAppId((long) 550);
134 appWithRolesForUser.setAppName("D2 Services Analytics Dashboard");
135 appWithRolesForUser.setAppRoles(listofRoles);
137 RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
138 roleInAppForUser.setIsApplied(false);
139 roleInAppForUser.setRoleId((long) 1);
140 roleInAppForUser.setRoleName("System Administrator");
142 RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser();
143 roleInAppForUser1.setIsApplied(true);
144 roleInAppForUser1.setRoleId((long) 16);
145 roleInAppForUser1.setRoleName("Standard User");
147 listofRoles.add(roleInAppForUser);
148 listofRoles.add(roleInAppForUser1);
149 EPUser user = mockUser.mockEPUser();
150 FieldsValidator expectedFieldValidator = new FieldsValidator();
151 List<FieldName> fields = new ArrayList<>();
153 expectedFieldValidator.setHttpStatusCode((long) 200);
154 expectedFieldValidator.setFields(fields);
155 expectedFieldValidator.setErrorCode(null);
156 HttpSession session = mockedRequest.getSession();
157 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
159 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
160 Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user))
161 .thenReturn(expectedFieldValidator);
163 actualFieldsValidator = userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser,
165 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
166 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
167 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
171 public void testPutAppWithUserRoleStateForUser() {
172 AppWithRolesForUser appWithRolesForUser =buildAppwithRoles();
173 EPUser user = mockUser.mockEPUser();
174 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
175 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
176 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true);
177 Mockito.when(userRolesService.setAppWithUserRoleStateForUser(user, appWithRolesForUser)).thenReturn(null);
178 userRolesController.putAppWithUserRoleStateForUser(mockedRequest, appWithRolesForUser, mockedResponse);
183 public void testPutAppWithUserRoleStateForSuperAdminUser() {
184 AppsListWithAdminRole adminRoleUser=buildAdminRoleUser();
186 EPUser user = mockUser.mockEPUser();
187 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
188 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
189 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true);
190 Mockito.when(adminRolesService.setAppsWithAdminRoleStateForUser( adminRoleUser)).thenReturn(true);
191 userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, adminRoleUser, mockedResponse);
198 public void testPutAppWithUserRoleStateForAdminUser() {
199 AppsListWithAdminRole adminRoleUser=buildAdminRoleUser();
201 EPUser user = mockUser.mockEPUser();
202 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
203 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
204 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(true);
205 Mockito.when(adminRolesService.setAppsWithAdminRoleStateForUser( adminRoleUser)).thenReturn(true);
206 userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, adminRoleUser, mockedResponse);
210 public void testPutAppWithUserRoleStateForStandardUser() {
211 AppWithRolesForUser appWithRolesForUser =buildAppwithRoles();
212 EPUser user = mockUser.mockEPUser();
213 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
214 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
215 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
216 userRolesController.putAppWithUserRoleStateForUser(mockedRequest, appWithRolesForUser, mockedResponse);
221 public void testPutAppWithUserRoleRequest() {
222 AppWithRolesForUser appWithRolesForUser =buildAppwithRoles();
223 EPUser user = mockUser.mockEPUser();
224 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
225 FieldsValidator fieldsValidator=new FieldsValidator();
226 fieldsValidator.setHttpStatusCode(200l);
227 Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user)).thenReturn(fieldsValidator);
228 userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser, mockedResponse);
233 public void testPutAppWithUserRoleBadRequest() {
234 AppWithRolesForUser appWithRolesForUser =buildAppwithRoles();
235 EPUser user = mockUser.mockEPUser();
236 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
237 userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser, mockedResponse);
241 private AppsListWithAdminRole buildAdminRoleUser() {
242 AppsListWithAdminRole adminRoleUser=new AppsListWithAdminRole();
243 ArrayList<AppNameIdIsAdmin> roles=new ArrayList<>();
245 AppNameIdIsAdmin adminAppRole=new AppNameIdIsAdmin();
246 adminAppRole.setAppName("test");
247 adminAppRole.setIsAdmin(true);
248 adminAppRole.setRestrictedApp(false);
251 AppNameIdIsAdmin adminAppRole1=new AppNameIdIsAdmin();
252 adminAppRole1.setAppName("Sample");
253 adminAppRole1.setIsAdmin(true);
254 adminAppRole1.setRestrictedApp(true);
257 AppNameIdIsAdmin adminAppRole2=new AppNameIdIsAdmin();
258 adminAppRole2.setAppName("testSample");
259 adminAppRole2.setIsAdmin(false);
260 adminAppRole2.setRestrictedApp(true);
261 roles.add(adminAppRole);
262 roles.add(adminAppRole1);
263 roles.add(adminAppRole2);
264 adminRoleUser.setAppsRoles(roles);
267 return adminRoleUser;
272 private AppWithRolesForUser buildAppwithRoles() {
273 AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
274 List<RoleInAppForUser> listofRoles = new ArrayList<RoleInAppForUser>();
276 appWithRolesForUser.setOrgUserId("guest");
277 appWithRolesForUser.setAppId((long) 550);
278 appWithRolesForUser.setAppName("D2 Services Analytics Dashboard");
279 appWithRolesForUser.setAppRoles(listofRoles);
281 RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
282 roleInAppForUser.setIsApplied(false);
283 roleInAppForUser.setRoleId((long) 1);
284 roleInAppForUser.setRoleName("System Administrator");
286 RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser();
287 roleInAppForUser1.setIsApplied(true);
288 roleInAppForUser1.setRoleId((long) 16);
289 roleInAppForUser1.setRoleName("Standard User");
291 listofRoles.add(roleInAppForUser);
292 listofRoles.add(roleInAppForUser1);
293 appWithRolesForUser.setAppRoles(listofRoles);
294 return appWithRolesForUser;
298 public void getPhoneBookSearchResultBadPermissionsTest() {
299 String searchString = "test";
300 String actualResult = null;
301 String expectedResult = null;
303 EPUser user = mockUser.mockEPUser();
304 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
305 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
306 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
307 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
309 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
310 assertEquals(expectedResult, actualResult);
315 public void getPhoneBookSearchResultValidationTest() {
316 String searchString = " t";
317 String actualResult = null;
318 String expectedResult = null;
320 EPUser user = mockUser.mockEPUser();
321 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
322 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
323 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
324 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
326 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
327 assertEquals(expectedResult, actualResult);
332 public void getPhoneBookSearchResultTest() {
333 String searchString = "test";
334 String actualResult = null;
335 String expectedResult = null;
337 EPUser user = mockUser.mockEPUser();
338 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
339 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
340 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
341 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
343 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
344 assertEquals(expectedResult, actualResult);
349 public void getAppsWithAdminRoleStateForUserTest(){
351 String orgUserId = "hb123f";
352 AppsListWithAdminRole actualResult = new AppsListWithAdminRole();
353 AppsListWithAdminRole expectedResult = new AppsListWithAdminRole();
354 EPUser user = mockUser.mockEPUser();
355 // PowerMockito.mockStatic(EcompPortalUtils.class);
356 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
357 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
358 Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult);
360 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
361 assertEquals(expectedResult, actualResult);
365 public void getAppsWithAdminRoleStateForUserBadRequestTest(){
367 String orgUserId = "hb123f";
368 AppsListWithAdminRole actualResult = null;
369 AppsListWithAdminRole expectedResult = null;
370 EPUser user = mockUser.mockEPUser();
371 PowerMockito.mockStatic(EcompPortalUtils.class);
372 PowerMockito.when(EcompPortalUtils.legitimateUserId(orgUserId)).thenReturn(false);
373 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
374 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
375 Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult);
377 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
378 assertEquals(expectedResult, actualResult);
382 public void putAppsWithAdminRoleStateForUserBadStatusCodeTest(){
383 FieldsValidator actualFieldsValidator = null;
384 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
385 FieldsValidator expectedFieldsValidator = new FieldsValidator();
386 List<FieldName> fieldNames = new ArrayList<FieldName>();
387 expectedFieldsValidator.setErrorCode(null);
388 expectedFieldsValidator.setFields(fieldNames);
389 expectedFieldsValidator.setHttpStatusCode((long)200);
391 EPUser user = mockUser.mockEPUser();
392 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
394 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
395 assertEquals(expectedFieldsValidator, actualFieldsValidator);
400 public void putAppsWithAdminRoleStateForUserTest() {
402 FieldsValidator actualFieldsValidator = null;
403 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
404 EPUser user = mockUser.mockEPUser();
405 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
406 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
407 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
408 PowerMockito.mockStatic(EPCommonSystemProperties.class);
409 PowerMockito.mockStatic(EcompAuditLog.class);
410 PowerMockito.mockStatic(SystemProperties.class);
411 Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400");
412 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400");
413 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400");
414 Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400");
416 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
418 System.out.println(actualFieldsValidator);
419 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
421 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
422 assertEquals(expectedResult, actualResult);
427 public void putAppsWithAdminRoleStateForUserTest(){
428 FieldsValidator actualFieldsValidator = null;
429 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
430 FieldsValidator expectedFieldsValidator = new FieldsValidator();
431 List<FieldName> fieldNames = new ArrayList<FieldName>();
432 expectedFieldsValidator.setErrorCode(null);
433 expectedFieldsValidator.setFields(fieldNames);
434 expectedFieldsValidator.setHttpStatusCode((long)200);
436 EPUser user = mockUser.mockEPUser();
437 PowerMockito.mockStatic(EPCommonSystemProperties.class);
438 PowerMockito.mockStatic(EcompAuditLog.class);
439 PowerMockito.mockStatic(SystemProperties.class);
440 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
441 Mockito.when(adminRolesService.setAppsWithAdminRoleStateForUser(newAppsListWithAdminRoles));
442 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
444 // Mockito.call(auditService.logActivity(auditLog, null));
445 // Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400");
446 // Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400");
447 // Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400");
448 // Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400");
450 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
451 assertEquals(expectedFieldsValidator, actualFieldsValidator);