2897413e76ec138dd5c18e59b7c6b87cf471931b
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / controller / UserRolesControllerTest.java
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 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  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
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 import javax.servlet.http.HttpSession;
48
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;
77
78 @RunWith(PowerMockRunner.class)
79 @PrepareForTest({EcompPortalUtils.class, EPCommonSystemProperties.class, EcompAuditLog.class, SystemProperties.class})
80 public class UserRolesControllerTest extends MockitoTestSuite {
81
82         String userid = "ab1234";
83
84         @Mock
85         UserRolesService userRolesService;
86         
87         @Mock
88         SearchService searchService;
89         
90         @Mock
91         AuditService auditService;
92         
93         @Mock
94         AdminRolesService adminRolesService;
95
96         @Mock
97         FieldsValidator fieldsValidator;
98
99         @InjectMocks
100         UserRolesController userRolesController = new UserRolesController();
101
102         @Mock
103         private DataAccessService dataAccessService;
104
105         @Before
106         public void setup() {
107                 MockitoAnnotations.initMocks(this);
108         }
109
110         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
111
112         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
113         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
114
115         @Mock
116         EPUserUtils ePUserUtils = new EPUserUtils();
117
118         @Mock
119         EPUser epuser;
120
121         MockEPUser mockUser = new MockEPUser();
122
123         @Test
124         public void putAppWithUserRoleRequestTest() {
125
126                 FieldsValidator actualFieldsValidator = null;
127
128                 AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
129                 List<RoleInAppForUser> listofRoles = new ArrayList<RoleInAppForUser>();
130
131                 appWithRolesForUser.setOrgUserId("guest");
132                 appWithRolesForUser.setAppId((long) 550);
133                 appWithRolesForUser.setAppName("D2 Services Analytics Dashboard");
134                 appWithRolesForUser.setAppRoles(listofRoles);
135
136                 RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
137                 roleInAppForUser.setIsApplied(false);
138                 roleInAppForUser.setRoleId((long) 1);
139                 roleInAppForUser.setRoleName("System Administrator");
140
141                 RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser();
142                 roleInAppForUser1.setIsApplied(true);
143                 roleInAppForUser1.setRoleId((long) 16);
144                 roleInAppForUser1.setRoleName("Standard User");
145
146                 listofRoles.add(roleInAppForUser);
147                 listofRoles.add(roleInAppForUser1);
148                 EPUser user = mockUser.mockEPUser();
149                 FieldsValidator expectedFieldValidator = new FieldsValidator();
150                 List<FieldName> fields = new ArrayList<>();
151
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);
157
158                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
159                 Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user))
160                                 .thenReturn(expectedFieldValidator);
161
162                 actualFieldsValidator = userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser,
163                                 mockedResponse);
164                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
165                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
166                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
167
168         }
169         
170         @Test
171         public void getPhoneBookSearchResultBadPermissionsTest() {
172                 String searchString = "test";
173                 String actualResult = null;
174                 String expectedResult = null;
175                 
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);
181                 
182                 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
183                 assertEquals(expectedResult, actualResult);
184         
185         }
186         
187         @Test
188         public void getPhoneBookSearchResultValidationTest() {
189                 String searchString = " t";
190                 String actualResult = null;
191                 String expectedResult = null;
192                 
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);
198                 
199                 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
200                 assertEquals(expectedResult, actualResult);
201         
202         }
203         
204         @Test
205         public void getPhoneBookSearchResultTest() {
206                 String searchString = "test";
207                 String actualResult = null;
208                 String expectedResult = null;
209                 
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);
215                 
216                 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
217                 assertEquals(expectedResult, actualResult);
218         
219         }
220         
221         @Test
222         public void getAppsWithAdminRoleStateForUserTest(){
223                 
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);
232                 
233                 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
234                 assertEquals(expectedResult, actualResult);
235         }
236         
237         /*@Test
238         public void getAppsWithAdminRoleStateForUserBadRequestTest(){
239                 
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);
249                 
250                 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
251                 assertEquals(expectedResult, actualResult);
252         }*/
253         
254         @Test
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);
263                 
264                 EPUser user = mockUser.mockEPUser();
265                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
266                 
267                 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
268                 assertEquals(expectedFieldsValidator, actualFieldsValidator);
269         }
270         
271         
272         /*@Test
273         public void putAppsWithAdminRoleStateForUserTest() {
274                 
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");
288                 
289                 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
290
291                 System.out.println(actualFieldsValidator);
292                 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
293                 
294                 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
295                 assertEquals(expectedResult, actualResult);
296         
297         }*/
298         
299         /*@Test
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);
308                 
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);
316
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");
322                 
323                 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
324                 assertEquals(expectedFieldsValidator, actualFieldsValidator);
325         }*/
326 }