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============================================
36 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
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.AppWithRolesForUser;
65 import org.onap.portalapp.portal.transport.AppsListWithAdminRole;
66 import org.onap.portalapp.portal.transport.FieldsValidator;
67 import org.onap.portalapp.portal.transport.RoleInAppForUser;
68 import org.onap.portalapp.portal.transport.FieldsValidator.FieldName;
69 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
70 import org.onap.portalapp.portal.utils.EcompPortalUtils;
71 import org.onap.portalapp.util.EPUserUtils;
72 import org.onap.portalsdk.core.service.AuditService;
73 import org.onap.portalsdk.core.service.DataAccessService;
74 import org.onap.portalsdk.core.util.SystemProperties;
75 import org.powermock.core.classloader.annotations.PrepareForTest;
76 import org.powermock.modules.junit4.PowerMockRunner;
78 @RunWith(PowerMockRunner.class)
79 @PrepareForTest({EcompPortalUtils.class, EPCommonSystemProperties.class, EcompAuditLog.class, SystemProperties.class})
80 public class UserRolesControllerTest extends MockitoTestSuite {
82 String userid = "ab1234";
85 UserRolesService userRolesService;
88 SearchService searchService;
91 AuditService auditService;
94 AdminRolesService adminRolesService;
97 FieldsValidator fieldsValidator;
100 UserRolesController userRolesController = new UserRolesController();
103 private DataAccessService dataAccessService;
106 public void setup() {
107 MockitoAnnotations.initMocks(this);
110 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
112 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
113 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
116 EPUserUtils ePUserUtils = new EPUserUtils();
121 MockEPUser mockUser = new MockEPUser();
124 public void putAppWithUserRoleRequestTest() {
126 FieldsValidator actualFieldsValidator = null;
128 AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
129 List<RoleInAppForUser> listofRoles = new ArrayList<RoleInAppForUser>();
131 appWithRolesForUser.setOrgUserId("guest");
132 appWithRolesForUser.setAppId((long) 550);
133 appWithRolesForUser.setAppName("D2 Services Analytics Dashboard");
134 appWithRolesForUser.setAppRoles(listofRoles);
136 RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
137 roleInAppForUser.setIsApplied(false);
138 roleInAppForUser.setRoleId((long) 1);
139 roleInAppForUser.setRoleName("System Administrator");
141 RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser();
142 roleInAppForUser1.setIsApplied(true);
143 roleInAppForUser1.setRoleId((long) 16);
144 roleInAppForUser1.setRoleName("Standard User");
146 listofRoles.add(roleInAppForUser);
147 listofRoles.add(roleInAppForUser1);
148 EPUser user = mockUser.mockEPUser();
149 FieldsValidator expectedFieldValidator = new FieldsValidator();
150 List<FieldName> fields = new ArrayList<>();
152 expectedFieldValidator.setHttpStatusCode((long) 200);
153 expectedFieldValidator.setFields(fields);
154 expectedFieldValidator.setErrorCode(null);
155 HttpSession session = mockedRequest.getSession();
156 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
158 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
159 Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user))
160 .thenReturn(expectedFieldValidator);
162 actualFieldsValidator = userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser,
164 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
165 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
166 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
171 public void getPhoneBookSearchResultBadPermissionsTest() {
172 String searchString = "test";
173 String actualResult = null;
174 String expectedResult = null;
176 EPUser user = mockUser.mockEPUser();
177 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
178 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
179 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
180 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
182 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
183 assertEquals(expectedResult, actualResult);
188 public void getPhoneBookSearchResultValidationTest() {
189 String searchString = " t";
190 String actualResult = null;
191 String expectedResult = null;
193 EPUser user = mockUser.mockEPUser();
194 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
195 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
196 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
197 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
199 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
200 assertEquals(expectedResult, actualResult);
205 public void getPhoneBookSearchResultTest() {
206 String searchString = "test";
207 String actualResult = null;
208 String expectedResult = null;
210 EPUser user = mockUser.mockEPUser();
211 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
212 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
213 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
214 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
216 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
217 assertEquals(expectedResult, actualResult);
222 public void getAppsWithAdminRoleStateForUserTest(){
224 String orgUserId = "hb123f";
225 AppsListWithAdminRole actualResult = new AppsListWithAdminRole();
226 AppsListWithAdminRole expectedResult = new AppsListWithAdminRole();
227 EPUser user = mockUser.mockEPUser();
228 // PowerMockito.mockStatic(EcompPortalUtils.class);
229 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
230 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
231 Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult);
233 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
234 assertEquals(expectedResult, actualResult);
238 public void getAppsWithAdminRoleStateForUserBadRequestTest(){
240 String orgUserId = "hb123f";
241 AppsListWithAdminRole actualResult = null;
242 AppsListWithAdminRole expectedResult = null;
243 EPUser user = mockUser.mockEPUser();
244 PowerMockito.mockStatic(EcompPortalUtils.class);
245 PowerMockito.when(EcompPortalUtils.legitimateUserId(orgUserId)).thenReturn(false);
246 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
247 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
248 Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult);
250 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
251 assertEquals(expectedResult, actualResult);
255 public void putAppsWithAdminRoleStateForUserBadStatusCodeTest(){
256 FieldsValidator actualFieldsValidator = null;
257 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
258 FieldsValidator expectedFieldsValidator = new FieldsValidator();
259 List<FieldName> fieldNames = new ArrayList<FieldName>();
260 expectedFieldsValidator.setErrorCode(null);
261 expectedFieldsValidator.setFields(fieldNames);
262 expectedFieldsValidator.setHttpStatusCode((long)200);
264 EPUser user = mockUser.mockEPUser();
265 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
267 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
268 assertEquals(expectedFieldsValidator, actualFieldsValidator);
273 public void putAppsWithAdminRoleStateForUserTest() {
275 FieldsValidator actualFieldsValidator = null;
276 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
277 EPUser user = mockUser.mockEPUser();
278 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
279 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
280 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
281 PowerMockito.mockStatic(EPCommonSystemProperties.class);
282 PowerMockito.mockStatic(EcompAuditLog.class);
283 PowerMockito.mockStatic(SystemProperties.class);
284 Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400");
285 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400");
286 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400");
287 Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400");
289 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
291 System.out.println(actualFieldsValidator);
292 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
294 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
295 assertEquals(expectedResult, actualResult);
300 public void putAppsWithAdminRoleStateForUserTest(){
301 FieldsValidator actualFieldsValidator = null;
302 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
303 FieldsValidator expectedFieldsValidator = new FieldsValidator();
304 List<FieldName> fieldNames = new ArrayList<FieldName>();
305 expectedFieldsValidator.setErrorCode(null);
306 expectedFieldsValidator.setFields(fieldNames);
307 expectedFieldsValidator.setHttpStatusCode((long)200);
309 EPUser user = mockUser.mockEPUser();
310 PowerMockito.mockStatic(EPCommonSystemProperties.class);
311 PowerMockito.mockStatic(EcompAuditLog.class);
312 PowerMockito.mockStatic(SystemProperties.class);
313 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
314 Mockito.when(adminRolesService.setAppsWithAdminRoleStateForUser(newAppsListWithAdminRoles));
315 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
317 // Mockito.call(auditService.logActivity(auditLog, null));
318 // Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400");
319 // Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400");
320 // Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400");
321 // Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400");
323 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
324 assertEquals(expectedFieldsValidator, actualFieldsValidator);