4014f4412842380b0ffc5fa895748d6d0fc95f01
[portal.git] / ecomp-portal-BE-common-test / src / main / java / org / openecomp / portalapp / portal / test / controller / UserRolesControllerTest.java
1 /*-
2  * ================================================================================
3  * ECOMP Portal
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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  * ================================================================================
19  */
20 package org.openecomp.portalapp.portal.test.controller;
21
22 import static org.junit.Assert.assertEquals;
23
24 import java.util.ArrayList;
25 import java.util.List;
26
27 import javax.servlet.http.HttpServletRequest;
28 import javax.servlet.http.HttpServletResponse;
29 import javax.servlet.http.HttpSession;
30
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;
59
60 @RunWith(PowerMockRunner.class)
61 @PrepareForTest({EcompPortalUtils.class, EPCommonSystemProperties.class, EcompAuditLog.class, SystemProperties.class})
62 public class UserRolesControllerTest extends MockitoTestSuite {
63
64         String userid = "ab1234";
65
66         @Mock
67         UserRolesService userRolesService;
68         
69         @Mock
70         SearchService searchService;
71         
72         @Mock
73         AuditService auditService;
74         
75         @Mock
76         AdminRolesService adminRolesService;
77
78         @Mock
79         FieldsValidator fieldsValidator;
80
81         @InjectMocks
82         UserRolesController userRolesController = new UserRolesController();
83
84         @Mock
85         private DataAccessService dataAccessService;
86
87         @Before
88         public void setup() {
89                 MockitoAnnotations.initMocks(this);
90         }
91
92         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
93
94         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
95         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
96
97         @Mock
98         EPUserUtils ePUserUtils = new EPUserUtils();
99
100         @Mock
101         EPUser epuser;
102
103         MockEPUser mockUser = new MockEPUser();
104
105         @Test
106         public void putAppWithUserRoleRequestTest() {
107
108                 FieldsValidator actualFieldsValidator = null;
109
110                 AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
111                 List<RoleInAppForUser> listofRoles = new ArrayList<RoleInAppForUser>();
112
113                 appWithRolesForUser.setOrgUserId("guest");
114                 appWithRolesForUser.setAppId((long) 550);
115                 appWithRolesForUser.setAppName("D2 Services Analytics Dashboard");
116                 appWithRolesForUser.setAppRoles(listofRoles);
117
118                 RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
119                 roleInAppForUser.setIsApplied(false);
120                 roleInAppForUser.setRoleId((long) 1);
121                 roleInAppForUser.setRoleName("System Administrator");
122
123                 RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser();
124                 roleInAppForUser1.setIsApplied(true);
125                 roleInAppForUser1.setRoleId((long) 16);
126                 roleInAppForUser1.setRoleName("Standard User");
127
128                 listofRoles.add(roleInAppForUser);
129                 listofRoles.add(roleInAppForUser1);
130                 EPUser user = mockUser.mockEPUser();
131                 FieldsValidator expectedFieldValidator = new FieldsValidator();
132                 List<FieldName> fields = new ArrayList<>();
133
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);
139
140                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
141                 Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user))
142                                 .thenReturn(expectedFieldValidator);
143
144                 actualFieldsValidator = userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser,
145                                 mockedResponse);
146                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
147                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
148                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
149
150         }
151         
152         @Test
153         public void getPhoneBookSearchResultBadPermissionsTest() {
154                 String searchString = "test";
155                 String actualResult = null;
156                 String expectedResult = null;
157                 
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);
163                 
164                 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
165                 assertEquals(expectedResult, actualResult);
166         
167         }
168         
169         @Test
170         public void getPhoneBookSearchResultValidationTest() {
171                 String searchString = " t";
172                 String actualResult = null;
173                 String expectedResult = null;
174                 
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);
180                 
181                 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
182                 assertEquals(expectedResult, actualResult);
183         
184         }
185         
186         @Test
187         public void getPhoneBookSearchResultTest() {
188                 String searchString = "test";
189                 String actualResult = null;
190                 String expectedResult = null;
191                 
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);
197                 
198                 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
199                 assertEquals(expectedResult, actualResult);
200         
201         }
202         
203         @Test
204         public void getAppsWithAdminRoleStateForUserTest(){
205                 
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);
214                 
215                 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
216                 assertEquals(expectedResult, actualResult);
217         }
218         
219         /*@Test
220         public void getAppsWithAdminRoleStateForUserBadRequestTest(){
221                 
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);
231                 
232                 actualResult = userRolesController.getAppsWithAdminRoleStateForUser(mockedRequest, orgUserId, mockedResponse);
233                 assertEquals(expectedResult, actualResult);
234         }*/
235         
236         @Test
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);
245                 
246                 EPUser user = mockUser.mockEPUser();
247                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
248                 
249                 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
250                 assertEquals(expectedFieldsValidator, actualFieldsValidator);
251         }
252         
253         
254         /*@Test
255         public void putAppsWithAdminRoleStateForUserTest() {
256                 
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");
270                 
271                 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
272
273                 System.out.println(actualFieldsValidator);
274                 Mockito.when(searchService.searchUsersInPhoneBook(searchString)).thenReturn(actualResult);
275                 
276                 actualResult = userRolesController.getPhoneBookSearchResult(mockedRequest, searchString, mockedResponse);
277                 assertEquals(expectedResult, actualResult);
278         
279         }*/
280         
281         /*@Test
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);
290                 
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);
298
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");
304                 
305                 actualFieldsValidator = userRolesController.putAppsWithAdminRoleStateForUser(mockedRequest, newAppsListWithAdminRoles, mockedResponse);
306                 assertEquals(expectedFieldsValidator, actualFieldsValidator);
307         }*/
308 }