2 * ================================================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ================================================================================
20 package org.openecomp.portalapp.portal.test.controller;
22 import static org.junit.Assert.assertEquals;
24 import java.util.ArrayList;
25 import java.util.List;
27 import javax.servlet.http.HttpServletRequest;
28 import javax.servlet.http.HttpServletResponse;
29 import javax.servlet.http.HttpSession;
31 import org.junit.Before;
32 import org.junit.Test;
33 import org.junit.runner.RunWith;
34 import org.mockito.InjectMocks;
35 import org.mockito.Mock;
36 import org.mockito.Mockito;
37 import org.mockito.MockitoAnnotations;
38 import org.openecomp.portalapp.portal.controller.UserRolesController;
39 import org.openecomp.portalapp.portal.domain.EPUser;
40 import org.openecomp.portalapp.portal.domain.EcompAuditLog;
41 import org.openecomp.portalapp.portal.service.AdminRolesService;
42 import org.openecomp.portalapp.portal.service.SearchService;
43 import org.openecomp.portalapp.portal.service.UserRolesService;
44 import org.openecomp.portalapp.portal.test.core.MockEPUser;
45 import org.openecomp.portalapp.portal.transport.AppWithRolesForUser;
46 import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole;
47 import org.openecomp.portalapp.portal.transport.FieldsValidator;
48 import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName;
49 import org.openecomp.portalapp.portal.transport.RoleInAppForUser;
50 import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties;
51 import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
52 import org.openecomp.portalapp.test.framework.MockitoTestSuite;
53 import org.openecomp.portalapp.util.EPUserUtils;
54 import org.openecomp.portalsdk.core.service.AuditService;
55 import org.openecomp.portalsdk.core.service.DataAccessService;
56 import org.openecomp.portalsdk.core.util.SystemProperties;
57 import org.powermock.core.classloader.annotations.PrepareForTest;
58 import org.powermock.modules.junit4.PowerMockRunner;
60 @RunWith(PowerMockRunner.class)
61 @PrepareForTest({EcompPortalUtils.class, EPCommonSystemProperties.class, EcompAuditLog.class, SystemProperties.class})
62 public class UserRolesControllerTest extends MockitoTestSuite {
64 String userid = "ab1234";
67 UserRolesService userRolesService;
70 SearchService searchService;
73 AuditService auditService;
76 AdminRolesService adminRolesService;
79 FieldsValidator fieldsValidator;
82 UserRolesController userRolesController = new UserRolesController();
85 private DataAccessService dataAccessService;
89 MockitoAnnotations.initMocks(this);
92 MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
94 HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
95 HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
98 EPUserUtils ePUserUtils = new EPUserUtils();
103 MockEPUser mockUser = new MockEPUser();
106 public void putAppWithUserRoleRequestTest() {
108 FieldsValidator actualFieldsValidator = null;
110 AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
111 List<RoleInAppForUser> listofRoles = new ArrayList<RoleInAppForUser>();
113 appWithRolesForUser.setOrgUserId("guest");
114 appWithRolesForUser.setAppId((long) 550);
115 appWithRolesForUser.setAppName("D2 Services Analytics Dashboard");
116 appWithRolesForUser.setAppRoles(listofRoles);
118 RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
119 roleInAppForUser.setIsApplied(false);
120 roleInAppForUser.setRoleId((long) 1);
121 roleInAppForUser.setRoleName("System Administrator");
123 RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser();
124 roleInAppForUser1.setIsApplied(true);
125 roleInAppForUser1.setRoleId((long) 16);
126 roleInAppForUser1.setRoleName("Standard User");
128 listofRoles.add(roleInAppForUser);
129 listofRoles.add(roleInAppForUser1);
130 EPUser user = mockUser.mockEPUser();
131 FieldsValidator expectedFieldValidator = new FieldsValidator();
132 List<FieldName> fields = new ArrayList<>();
134 expectedFieldValidator.setHttpStatusCode((long) 200);
135 expectedFieldValidator.setFields(fields);
136 expectedFieldValidator.setErrorCode(null);
137 HttpSession session = mockedRequest.getSession();
138 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
140 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
141 Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user))
142 .thenReturn(expectedFieldValidator);
144 actualFieldsValidator = userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser,
146 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
147 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
148 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
153 public void getPhoneBookSearchResultBadPermissionsTest() {
154 String searchString = "test";
155 String actualResult = null;
156 String expectedResult = null;
158 EPUser user = mockUser.mockEPUser();
159 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
160 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
161 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
162 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
164 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
165 assertEquals(expectedResult, actualResult);
170 public void getPhoneBookSearchResultValidationTest() {
171 String searchString = " t";
172 String actualResult = null;
173 String expectedResult = null;
175 EPUser user = mockUser.mockEPUser();
176 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
177 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
178 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
179 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
181 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
182 assertEquals(expectedResult, actualResult);
187 public void getPhoneBookSearchResultTest() {
188 String searchString = "test";
189 String actualResult = null;
190 String expectedResult = null;
192 EPUser user = mockUser.mockEPUser();
193 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
194 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
195 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
196 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
198 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
199 assertEquals(expectedResult, actualResult);
204 public void getAppsWithAdminRoleStateForUserTest(){
206 String orgUserId = "hb123f";
207 AppsListWithAdminRole actualResult = new AppsListWithAdminRole();
208 AppsListWithAdminRole expectedResult = new AppsListWithAdminRole();
209 EPUser user = mockUser.mockEPUser();
210 // PowerMockito.mockStatic(EcompPortalUtils.class);
211 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
212 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
213 Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult);
215 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
216 assertEquals(expectedResult, actualResult);
220 public void getAppsWithAdminRoleStateForUserBadRequestTest(){
222 String orgUserId = "hb123f";
223 AppsListWithAdminRole actualResult = null;
224 AppsListWithAdminRole expectedResult = null;
225 EPUser user = mockUser.mockEPUser();
226 PowerMockito.mockStatic(EcompPortalUtils.class);
227 PowerMockito.when(EcompPortalUtils.legitimateUserId(orgUserId)).thenReturn(false);
228 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
229 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
230 Mockito.when(adminRolesService.getAppsWithAdminRoleStateForUser(orgUserId)).thenReturn(actualResult);
232 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
233 assertEquals(expectedResult, actualResult);
237 public void putAppsWithAdminRoleStateForUserBadStatusCodeTest(){
238 FieldsValidator actualFieldsValidator = null;
239 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
240 FieldsValidator expectedFieldsValidator = new FieldsValidator();
241 List<FieldName> fieldNames = new ArrayList<FieldName>();
242 expectedFieldsValidator.setErrorCode(null);
243 expectedFieldsValidator.setFields(fieldNames);
244 expectedFieldsValidator.setHttpStatusCode((long)200);
246 EPUser user = mockUser.mockEPUser();
247 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
249 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
250 assertEquals(expectedFieldsValidator, actualFieldsValidator);
255 public void putAppsWithAdminRoleStateForUserTest() {
257 FieldsValidator actualFieldsValidator = null;
258 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
259 EPUser user = mockUser.mockEPUser();
260 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
261 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
262 Mockito.when(adminRolesService.isAccountAdmin(user)).thenReturn(false);
263 PowerMockito.mockStatic(EPCommonSystemProperties.class);
264 PowerMockito.mockStatic(EcompAuditLog.class);
265 PowerMockito.mockStatic(SystemProperties.class);
266 Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400");
267 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400");
268 Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400");
269 Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400");
271 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
273 System.out.println(actualFieldsValidator);
274 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
276 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
277 assertEquals(expectedResult, actualResult);
282 public void putAppsWithAdminRoleStateForUserTest(){
283 FieldsValidator actualFieldsValidator = null;
284 AppsListWithAdminRole newAppsListWithAdminRoles = new AppsListWithAdminRole();
285 FieldsValidator expectedFieldsValidator = new FieldsValidator();
286 List<FieldName> fieldNames = new ArrayList<FieldName>();
287 expectedFieldsValidator.setErrorCode(null);
288 expectedFieldsValidator.setFields(fieldNames);
289 expectedFieldsValidator.setHttpStatusCode((long)200);
291 EPUser user = mockUser.mockEPUser();
292 PowerMockito.mockStatic(EPCommonSystemProperties.class);
293 PowerMockito.mockStatic(EcompAuditLog.class);
294 PowerMockito.mockStatic(SystemProperties.class);
295 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
296 Mockito.when(adminRolesService.setAppsWithAdminRoleStateForUser(newAppsListWithAdminRoles));
297 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
299 // Mockito.call(auditService.logActivity(auditLog, null));
300 // Mockito.when(SystemProperties.getProperty(EcompAuditLog.CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN)).thenReturn("1400");
301 // Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP)).thenReturn("1400");
302 // Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP)).thenReturn("1400");
303 // Mockito.when(SystemProperties.getProperty(SystemProperties.MDC_TIMER)).thenReturn("1400");
305 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
306 assertEquals(expectedFieldsValidator, actualFieldsValidator);