Merge "Fix sql injection vulnerability"
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / service / UserRolesCommonServiceImplTest.java
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2019 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  * 
37  */
38 package org.onap.portalapp.portal.service;
39
40 import static org.junit.Assert.assertEquals;
41 import static org.junit.Assert.assertFalse;
42 import static org.junit.Assert.assertNotEquals;
43 import static org.junit.Assert.assertNull;
44 import static org.junit.Assert.assertTrue;
45
46 import java.util.ArrayList;
47 import java.util.Date;
48 import java.util.HashMap;
49 import java.util.List;
50 import java.util.Map;
51 import java.util.Set;
52 import java.util.SortedSet;
53 import java.util.TreeSet;
54
55 import javax.servlet.http.HttpServletResponse;
56
57 import org.apache.cxf.transport.http.HTTPException;
58 import org.drools.core.command.assertion.AssertEquals;
59 import org.hibernate.Query;
60 import org.hibernate.SQLQuery;
61 import org.hibernate.Session;
62 import org.hibernate.SessionFactory;
63 import org.hibernate.Transaction;
64 import org.json.JSONObject;
65 import org.junit.After;
66 import org.junit.Before;
67 import org.junit.Test;
68 import org.junit.runner.RunWith;
69 import org.mockito.InjectMocks;
70 import org.mockito.Matchers;
71 import org.mockito.Mock;
72 import org.mockito.Mockito;
73 import org.mockito.MockitoAnnotations;
74 import org.onap.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval;
75 import org.onap.portalapp.externalsystemapproval.model.ExternalSystemUser;
76 import org.onap.portalapp.portal.core.MockEPUser;
77 import org.onap.portalapp.portal.domain.EPApp;
78 import org.onap.portalapp.portal.domain.EPRole;
79 import org.onap.portalapp.portal.domain.EPUser;
80 import org.onap.portalapp.portal.domain.EPUserApp;
81 import org.onap.portalapp.portal.domain.EPUserAppCatalogRoles;
82 import org.onap.portalapp.portal.domain.EPUserAppRoles;
83 import org.onap.portalapp.portal.domain.EPUserAppRolesRequest;
84 import org.onap.portalapp.portal.domain.EPUserAppRolesRequestDetail;
85 import org.onap.portalapp.portal.domain.ExternalSystemAccess;
86 import org.onap.portalapp.portal.transport.AppWithRolesForUser;
87 import org.onap.portalapp.portal.transport.CentralV2Role;
88 import org.onap.portalapp.portal.transport.EPUserAppCurrentRoles;
89 import org.onap.portalapp.portal.transport.EcompUserAppRoles;
90 import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator;
91 import org.onap.portalapp.portal.transport.FieldsValidator;
92 import org.onap.portalapp.portal.transport.FunctionalMenuItem;
93 import org.onap.portalapp.portal.transport.FunctionalMenuRole;
94 import org.onap.portalapp.portal.transport.RemoteRole;
95 import org.onap.portalapp.portal.transport.RemoteUserWithRoles;
96 import org.onap.portalapp.portal.transport.RoleInAppForUser;
97 import org.onap.portalapp.portal.transport.UserApplicationRoles;
98 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
99 import org.onap.portalapp.portal.utils.EcompPortalUtils;
100 import org.onap.portalapp.portal.utils.PortalConstants;
101 import org.onap.portalsdk.core.domain.Role;
102 import org.onap.portalsdk.core.restful.domain.EcompRole;
103 import org.onap.portalsdk.core.service.DataAccessService;
104 import org.onap.portalsdk.core.service.DataAccessServiceImpl;
105 import org.onap.portalsdk.core.service.RoleServiceImpl;
106 import org.onap.portalsdk.core.util.SystemProperties;
107 import org.powermock.api.mockito.PowerMockito;
108 import org.powermock.core.classloader.annotations.PrepareForTest;
109 import org.powermock.modules.junit4.PowerMockRunner;
110 import org.springframework.http.HttpEntity;
111 import org.springframework.http.HttpHeaders;
112 import org.springframework.http.HttpMethod;
113 import org.springframework.http.HttpStatus;
114 import org.springframework.http.ResponseEntity;
115 import org.springframework.web.client.RestTemplate;
116
117 import com.fasterxml.jackson.core.JsonProcessingException;
118 import com.fasterxml.jackson.databind.ObjectMapper;
119
120 @RunWith(PowerMockRunner.class)
121 @PrepareForTest({ EcompPortalUtils.class, SystemProperties.class, PortalConstants.class,
122                 EPCommonSystemProperties.class })
123 public class UserRolesCommonServiceImplTest {
124
125         @Mock
126         DataAccessService dataAccessService = new DataAccessServiceImpl();
127
128         @Mock
129         EPAppCommonServiceImpl epAppCommonServiceImpl = new EPAppCommonServiceImpl();
130
131         @Mock
132         ExternalAccessRolesServiceImpl externalAccessRolesServiceImpl = new ExternalAccessRolesServiceImpl();
133
134         @Mock
135         ApplicationsRestClientService applicationsRestClientService;
136
137         @Mock
138         RoleServiceImpl roleServiceImpl = new RoleServiceImpl();
139
140         @Mock
141         SearchServiceImpl searchServiceImpl = new SearchServiceImpl();
142
143         @Mock
144         EPRoleServiceImpl epRoleServiceImpl = new EPRoleServiceImpl();
145
146         @Mock
147         RestTemplate template = new RestTemplate();
148
149         @Mock
150         SessionFactory sessionFactory;
151
152         @Mock
153         Session session;
154
155         @Mock
156         Transaction transaction;
157
158         @InjectMocks
159         UserRolesCommonServiceImpl userRolesCommonServiceImpl = new UserRolesCommonServiceImpl();
160
161         @Before
162         public void setup() {
163                 MockitoAnnotations.initMocks(this);
164                 Mockito.when(sessionFactory.openSession()).thenReturn(session);
165                 Mockito.when(session.beginTransaction()).thenReturn(transaction);
166         }
167
168         @After
169         public void after() {
170                 session.close();
171         }
172
173         MockEPUser mockUser = new MockEPUser();
174
175         public EPApp mockApp() {
176                 EPApp app = new EPApp();
177                 app.setName("Test");
178                 app.setImageUrl("test");
179                 app.setDescription("test");
180                 app.setNotes("test");
181                 app.setUrl("test");
182                 app.setId((long) 1);
183                 app.setAppRestEndpoint("test");
184                 app.setAlternateUrl("test");
185                 app.setName("test");
186                 app.setMlAppName("test");
187                 app.setMlAppAdminId("test");
188                 app.setUsername("test");
189                 app.setAppPassword("test");
190                 app.setOpen(false);
191                 app.setEnabled(false);
192                 app.setCentralAuth(true);
193                 app.setUebKey("test");
194                 app.setUebSecret("test");
195                 app.setUebTopicName("test");
196                 app.setAppType(1);
197                 return app;
198         }
199
200         @SuppressWarnings("unchecked")
201         @Test
202         public void getAppRolesForUserCentralizedForPortal() throws Exception {
203                 EPUser user = mockUser.mockEPUser();
204                 EPApp mockApp = mockApp();
205                 Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
206                 List<RoleInAppForUser> mockRoleInAppForUserList = getMockedRoleInAppUserList();
207                 List<CentralV2Role> mockCenV2Role = new ArrayList<>();
208                 CentralV2Role cenV2Role = new CentralV2Role(1l, null, null, null, null, null, "test1", true, null,
209                                 new TreeSet<>(), new TreeSet<>(), new TreeSet<>());
210                 CentralV2Role cenV2Role2 = new CentralV2Role(16l, null, null, null, null, null, "test2", true, null,
211                                 new TreeSet<>(), new TreeSet<>(), new TreeSet<>());
212                 mockCenV2Role.add(cenV2Role);
213                 mockCenV2Role.add(cenV2Role2);
214                 Mockito.when(externalAccessRolesServiceImpl.getRolesForApp(mockApp.getUebKey())).thenReturn(mockCenV2Role);
215                 List<EPUser> mockUserList = new ArrayList<>();
216                 mockUserList.add(user);
217                 Mockito.when((List<EPUser>) dataAccessService
218                                 .executeQuery("from EPUser where orgUserId='" + user.getOrgUserId() + "'", null))
219                                 .thenReturn(mockUserList);
220                 Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(1l, user.getOrgUserId(), true, user))
221                                 .thenReturn(mockRoleInAppForUserList);
222                 List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(1l, "test", true, user);
223                 assertEquals(roleInAppForUser, mockRoleInAppForUserList);
224         }
225
226         private List<RoleInAppForUser> getMockedRoleInAppUserList() {
227                 List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
228                 RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser();
229                 mockRoleInAppForUser.setIsApplied(false);
230                 mockRoleInAppForUser.setRoleId(1l);
231                 mockRoleInAppForUser.setRoleName("test1");
232                 RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
233                 mockRoleInAppForUser2.setIsApplied(false);
234                 mockRoleInAppForUser2.setRoleId(16l);
235                 mockRoleInAppForUser2.setRoleName("test2");
236                 mockRoleInAppForUserList.add(mockRoleInAppForUser);
237                 mockRoleInAppForUserList.add(mockRoleInAppForUser2);
238                 return mockRoleInAppForUserList;
239         }
240
241         @SuppressWarnings("unchecked")
242         @Test
243         public void checkTheProtectionAgainstSQLInjection() throws Exception {
244                 EPUser user = mockUser.mockEPUser();
245                 user.setId(1l);
246                 user.setOrgId(2l);
247                 Query epUserQuery = Mockito.mock(Query.class);
248                 List<EPUser> mockEPUserList = new ArrayList<>();
249                 mockEPUserList.add(user);
250
251                 Mockito.when(session.createQuery("from :name where orgUserId=:userId")).thenReturn(epUserQuery);
252                 Mockito.when(epUserQuery.setParameter("name",EPUser.class.getName())).thenReturn(epUserQuery);
253                 Mockito.when(epUserQuery.setParameter("userId",user.getOrgUserId() + "; select * from " + EPUser.class.getName() +";")).thenReturn(epUserQuery);
254                 userRolesCommonServiceImpl.createLocalUserIfNecessary(user.getOrgUserId(),true);
255
256                 Mockito.when(session.createQuery("from :name where orgUserId=:userId")).thenReturn(epUserQuery);
257                 Mockito.when(epUserQuery.setParameter("name",EPUser.class.getName())).thenReturn(epUserQuery);
258                 Mockito.when(epUserQuery.setParameter("userId",user.getOrgUserId())).thenReturn(epUserQuery);
259                 userRolesCommonServiceImpl.createLocalUserIfNecessary(user.getOrgUserId(),true);
260         }
261
262         @SuppressWarnings("unchecked")
263         @Test
264         public void getAppRolesForUserNonCentralizedForPortal() throws Exception {
265                 EPUser user = mockUser.mockEPUser();
266                 user.setId(1l);
267                 EPApp mockApp = mockApp();
268                 mockApp.setCentralAuth(false);
269                 EPRole mockEPRole = new EPRole();
270                 mockEPRole.setId(1l);
271                 mockEPRole.setName("test1");
272                 mockEPRole.setActive(true);
273                 SortedSet<EPUserApp> mockUserApps = new TreeSet<EPUserApp>();
274                 EPUserApp mockEPUserApp = new EPUserApp();
275                 mockEPUserApp.setApp(mockApp);
276                 mockEPUserApp.setRole(mockEPRole);
277                 mockEPUserApp.setUserId(1l);
278                 mockUserApps.add(mockEPUserApp);
279                 user.setEPUserApps(mockUserApps);
280                 Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
281                 List<RoleInAppForUser> mockRoleInAppForUserListNonCentralizedList = getMockedRoleInAppUserList();
282                 List<Role> mockRole = new ArrayList<>();
283                 Role role = new Role();
284                 role.setId(1l);
285                 role.setName("test1");
286                 role.setActive(true);
287                 Role role2 = new Role();
288                 role.setId(16l);
289                 role.setName("test2");
290                 role.setActive(true);
291                 mockRole.add(role);
292                 mockRole.add(role2);
293                 Mockito.when(roleServiceImpl.getAvailableRoles(user.getOrgUserId())).thenReturn(mockRole);
294                 List<EPUser> mockUserList = new ArrayList<>();
295                 mockUserList.add(user);
296                 Mockito.when((List<EPUser>) dataAccessService
297                                 .executeQuery("from EPUser where orgUserId='" + user.getOrgUserId() + "'", null))
298                                 .thenReturn(mockUserList);
299                 Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(1l, user.getOrgUserId(), true, user))
300                                 .thenReturn(mockRoleInAppForUserListNonCentralizedList);
301                 List<RoleInAppForUser> roleInAppForUserNonCentralized = userRolesCommonServiceImpl.getAppRolesForUser(1l,
302                                 user.getOrgUserId(), true, user);
303                 assertNull(roleInAppForUserNonCentralized);
304         }
305
306         @Test
307         public void getAppRolesForCentralizedPartnerAppTest() throws Exception {
308                 EPUser user = mockUser.mockEPUser();
309                 EPApp mockApp = mockApp();
310                 mockApp.setId(2l);
311                 Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
312                 List<RoleInAppForUser> mockRoleInAppForUserList = getMockedRoleInAppUserList();
313                 List<EPRole> mockEPRoleList = new ArrayList<>();
314                 EPRole mockEpRole = new EPRole();
315                 mockEpRole.setActive(true);
316                 mockEpRole.setAppId(2l);
317                 mockEpRole.setName("test1");
318                 mockEpRole.setAppRoleId(333l);
319                 mockEpRole.setId(1l);
320                 EPRole mockEpRole2 = new EPRole();
321                 mockEpRole2.setActive(true);
322                 mockEpRole2.setAppId(2l);
323                 mockEpRole2.setName("test2");
324                 mockEpRole2.setAppRoleId(444l);
325                 mockEpRole2.setId(16l);
326                 mockEPRoleList.add(mockEpRole);
327                 mockEPRoleList.add(mockEpRole2);
328                 final Map<String, Long> appParams = new HashMap<>();
329                 appParams.put("appId", 2l);
330                 Mockito.when(dataAccessService.executeNamedQuery("getActiveRolesOfApplication", appParams, null))
331                                 .thenReturn(mockEPRoleList);
332                 final Map<String, String> params = new HashMap<>();
333                 params.put("orgUserIdValue", "guestT");
334                 List<EPUser> mockEPUserList = new ArrayList<>();
335                 mockEPUserList.add(user);
336                 Mockito.when(dataAccessService.executeNamedQuery("epUserAppId", params, null)).thenReturn(mockEPUserList);
337                 final Map<String, Long> userParams = new HashMap<>();
338                 userParams.put("appId", mockApp.getId());
339                 userParams.put("userId", mockEPUserList.get(0).getId());
340                 List<EPUserAppCurrentRoles> epUserAppCurrentRolesList = new ArrayList<>();
341                 EPUserAppCurrentRoles epUserAppCurrentRoles = new EPUserAppCurrentRoles();
342                 epUserAppCurrentRoles.setRoleId(444l);
343                 epUserAppCurrentRoles.setRoleName("TestPartnerRole2");
344                 epUserAppCurrentRoles.setUserId(mockEPUserList.get(0).getId());
345                 epUserAppCurrentRolesList.add(epUserAppCurrentRoles);
346                 Mockito.when(dataAccessService.executeNamedQuery("getUserAppCurrentRoles", userParams, null))
347                                 .thenReturn(epUserAppCurrentRolesList);
348                 Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(), true, user))
349                                 .thenReturn(mockRoleInAppForUserList);
350                 List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(),
351                                 true, user);
352                 assertNotEquals(roleInAppForUser, mockRoleInAppForUserList);
353         }
354
355         @Test
356         public void getAppRolesForNonCentralizedPartnerAppTest() throws Exception {
357                 EPUser user = mockUser.mockEPUser();
358                 user.setId(2l);
359                 List<EPUser> mockEpUserList = new ArrayList<>();
360                 mockEpUserList.add(user);
361                 EPApp mockApp = mockApp();
362                 mockApp.setId(2l);
363                 mockApp.setCentralAuth(false);
364                 Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
365                 List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
366                 RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser();
367                 mockRoleInAppForUser.setIsApplied(true);
368                 mockRoleInAppForUser.setRoleId(333l);
369                 mockRoleInAppForUser.setRoleName("test1");
370                 RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
371                 mockRoleInAppForUser2.setIsApplied(true);
372                 mockRoleInAppForUser2.setRoleId(777l);
373                 mockRoleInAppForUser2.setRoleName("test2");
374                 RoleInAppForUser mockRoleInAppForUser3 = new RoleInAppForUser();
375                 mockRoleInAppForUser3.setIsApplied(false);
376                 mockRoleInAppForUser3.setRoleId(888l);
377                 mockRoleInAppForUser3.setRoleName("test5");
378                 mockRoleInAppForUserList.add(mockRoleInAppForUser);
379                 mockRoleInAppForUserList.add(mockRoleInAppForUser2);
380                 mockRoleInAppForUserList.add(mockRoleInAppForUser3);
381                 List<EcompRole> mockEcompRoleList = new ArrayList<>();
382                 EcompRole mockEcompRole = new EcompRole();
383                 mockEcompRole.setId(333l);
384                 mockEcompRole.setName("test1");
385                 EcompRole mockEcompRole2 = new EcompRole();
386                 mockEcompRole2.setId(777l);
387                 mockEcompRole2.setName("test2");
388                 EcompRole mockEcompRole3 = new EcompRole();
389                 mockEcompRole3.setId(888l);
390                 mockEcompRole3.setName("test5");
391                 mockEcompRoleList.add(mockEcompRole);
392                 mockEcompRoleList.add(mockEcompRole2);
393                 mockEcompRoleList.add(mockEcompRole3);
394                 EcompRole[] mockEcompRoleArray = mockEcompRoleList.toArray(new EcompRole[mockEcompRoleList.size()]);
395                 List<EPRole> mockEPRoleList = new ArrayList<>();
396                 EPRole mockEpRole = new EPRole();
397                 mockEpRole.setActive(true);
398                 mockEpRole.setAppId(2l);
399                 mockEpRole.setName("test1");
400                 mockEpRole.setAppRoleId(333l);
401                 mockEpRole.setId(16l);
402                 EPRole mockEpRole2 = new EPRole();
403                 mockEpRole2.setActive(true);
404                 mockEpRole2.setAppId(2l);
405                 mockEpRole2.setName("test3");
406                 mockEpRole2.setAppRoleId(555l);
407                 mockEpRole2.setId(15l);
408                 EPRole mockEpRole3 = new EPRole();
409                 mockEpRole3.setActive(true);
410                 mockEpRole3.setAppId(2l);
411                 mockEpRole3.setName("test4");
412                 mockEpRole3.setAppRoleId(888l);
413                 mockEpRole3.setId(17l);
414                 mockEPRoleList.add(mockEpRole);
415                 mockEPRoleList.add(mockEpRole2);
416                 mockEPRoleList.add(mockEpRole3);
417                 List<EPUserApp> mockUserRolesList = new ArrayList<>();
418                 EPUserApp mockEpUserApp = new EPUserApp();
419                 mockEpUserApp.setApp(mockApp);
420                 mockEpUserApp.setRole(mockEpRole2);
421                 mockEpUserApp.setUserId(user.getId());
422                 mockUserRolesList.add(mockEpUserApp);
423                 List<FunctionalMenuRole> mockFunctionalMenuRolesList = new ArrayList<>();
424                 FunctionalMenuRole mockFunctionalMenuRole = new FunctionalMenuRole();
425                 mockFunctionalMenuRole.setAppId((int) (long) mockApp.getId());
426                 mockFunctionalMenuRole.setRoleId((int) (long) 15l);
427                 mockFunctionalMenuRole.setMenuId(10l);
428                 mockFunctionalMenuRole.setId(10);
429                 mockFunctionalMenuRolesList.add(mockFunctionalMenuRole);
430                 List<FunctionalMenuItem> mockFunctionalMenuItemList = new ArrayList<>();
431                 FunctionalMenuItem mockFunctionalMenuItem = new FunctionalMenuItem();
432                 List<Integer> mockRolesList = new ArrayList<>();
433                 Integer role1 = 1;
434                 mockRolesList.add(role1);
435                 mockFunctionalMenuItem.setRestrictedApp(false);
436                 mockFunctionalMenuItem.setRoles(mockRolesList);
437                 mockFunctionalMenuItem.setUrl("http://test.com");
438                 mockFunctionalMenuItemList.add(mockFunctionalMenuItem);
439                 Query epRoleQuery = Mockito.mock(Query.class);
440                 Query epUserAppsQuery = Mockito.mock(Query.class);
441                 Query epFunctionalMenuQuery = Mockito.mock(Query.class);
442                 Query epFunctionalMenuQuery2 = Mockito.mock(Query.class);
443                 Query epFunctionalMenuItemQuery = Mockito.mock(Query.class);
444                 Query epUserListQuery = Mockito.mock(Query.class);
445                 Query epUserRolesListQuery = Mockito.mock(Query.class);
446                 Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles"))
447                                 .thenReturn(mockEcompRoleArray);
448                 // syncAppRolesTest
449
450                 Mockito.when(session.createQuery("from :name where appId = :appId"))
451                                 .thenReturn(epRoleQuery);
452
453                 Mockito.when(epRoleQuery.setParameter("name",EPRole.class.getName())).thenReturn(epRoleQuery);
454                 Mockito.when(epRoleQuery.setParameter("appId",mockApp.getId())).thenReturn(epRoleQuery);
455
456                 Mockito.doReturn(mockEPRoleList).when(epRoleQuery).list();
457                 Mockito.when(session.createQuery("from :name where app.id=:appId and role_id=:roleId"))
458                                 .thenReturn(epUserAppsQuery);
459                 Mockito.when(epUserAppsQuery.setParameter("name",EPUserApp.class.getName())).thenReturn(epUserAppsQuery);
460                 Mockito.when(epUserAppsQuery.setParameter("appId",mockApp.getId())).thenReturn(epUserAppsQuery);
461                 Mockito.when(epUserAppsQuery.setParameter("roleId",15l)).thenReturn(epUserAppsQuery);
462                 Mockito.doReturn(mockUserRolesList).when(epUserAppsQuery).list();
463
464                 Mockito.when(session.createQuery("from :name where roleId=:roleId"))
465                                 .thenReturn(epFunctionalMenuQuery);
466                 Mockito.when(epFunctionalMenuQuery.setParameter("name",FunctionalMenuRole.class.getName())).thenReturn(epFunctionalMenuQuery);
467                 Mockito.when(epFunctionalMenuQuery.setParameter("roleId",15l)).thenReturn(epFunctionalMenuQuery);
468                 Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery).list();
469
470                 Mockito.when(session.createQuery("from :name where menuId=:menuId"))
471                                 .thenReturn(epFunctionalMenuQuery2);
472                 Mockito.when(epFunctionalMenuQuery2.setParameter("name",FunctionalMenuRole.class.getName())).thenReturn(epFunctionalMenuQuery2);
473                 Mockito.when(epFunctionalMenuQuery2.setParameter("menuId",10l)).thenReturn(epFunctionalMenuQuery2);
474                 Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery2).list();
475
476                 Mockito.when(session.createQuery("from " + FunctionalMenuItem.class.getName() + " where menuId=" + 10l))
477                                 .thenReturn(epFunctionalMenuItemQuery);
478                 Mockito.doReturn(mockFunctionalMenuItemList).when(epFunctionalMenuItemQuery).list();
479                 List<EcompRole> mockEcompRoleList2 = new ArrayList<>();
480                 EcompRole mockUserAppRoles = new EcompRole();
481                 mockUserAppRoles.setId(333l);
482                 mockUserAppRoles.setName("test1");
483                 EcompRole mockUserAppRoles2 = new EcompRole();
484                 mockUserAppRoles2.setId(777l);
485                 mockUserAppRoles2.setName("test2");
486                 mockEcompRoleList2.add(mockUserAppRoles);
487                 mockEcompRoleList2.add(mockUserAppRoles2);
488                 EcompRole[] mockEcompRoleArray2 = mockEcompRoleList2.toArray(new EcompRole[mockEcompRoleList2.size()]);
489                 Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(),
490                                 String.format("/user/%s/roles", user.getOrgUserId()))).thenReturn(mockEcompRoleArray2);
491                 // SyncUserRoleTest
492                 Mockito.when(session
493                                 .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
494                                 .thenReturn(epUserListQuery);
495                 Mockito.doReturn(mockEpUserList).when(epUserListQuery).list();
496
497                 List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
498                 EPUserApp mockEpUserAppRoles = new EPUserApp();
499                 mockEpUserAppRoles.setApp(mockApp);
500                 mockEpUserAppRoles.setRole(mockEpRole3);
501                 mockEpUserAppRoles.setUserId(user.getId());
502                 mockUserRolesList2.add(mockEpUserAppRoles);
503                 Mockito.when(session.createQuery(
504                                 "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2"))
505                                 .thenReturn(epUserRolesListQuery);
506                 Mockito.doReturn(mockUserRolesList2).when(epUserRolesListQuery).list();
507                 List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(),
508                                 true, user);
509                 assertEquals(roleInAppForUser, mockRoleInAppForUserList);
510         }
511
512         @SuppressWarnings("unchecked")
513         @Test
514         public void setAppWithUserRoleStateForUserTestForCentralizedAppForPortal() throws Exception {
515                 PowerMockito.mockStatic(SystemProperties.class);
516                 PowerMockito.mockStatic(EcompPortalUtils.class);
517                 PowerMockito.mockStatic(EPCommonSystemProperties.class);
518                 PowerMockito.mockStatic(PortalConstants.class);
519                 EPUser user = mockUser.mockEPUser();
520                 user.setId(2l);
521                 List<EPUser> mockEpUserList = new ArrayList<>();
522                 mockEpUserList.add(user);
523                 EPApp mockApp = mockApp();
524                 mockApp.setNameSpace("com.test.com");
525                 mockApp.setId(1l);
526                 mockApp.setCentralAuth(true);
527                 Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
528                 Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true);
529                 AppWithRolesForUser mockWithRolesForUser = new AppWithRolesForUser();
530                 List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
531                 RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser();
532                 mockRoleInAppForUser.setIsApplied(true);
533                 mockRoleInAppForUser.setRoleId(1l);
534                 mockRoleInAppForUser.setRoleName("test1");
535                 RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
536                 mockRoleInAppForUser2.setIsApplied(true);
537                 mockRoleInAppForUser2.setRoleId(1000l);
538                 mockRoleInAppForUser2.setRoleName("test3");
539                 mockRoleInAppForUserList.add(mockRoleInAppForUser);
540                 mockRoleInAppForUserList.add(mockRoleInAppForUser2);
541                 mockWithRolesForUser.setAppId(mockApp.getId());
542                 mockWithRolesForUser.setAppName(mockApp.getName());
543                 mockWithRolesForUser.setOrgUserId(user.getOrgUserId());
544                 mockWithRolesForUser.setAppRoles(mockRoleInAppForUserList);
545                 List<EPUserAppRolesRequest> mockEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>();
546                 Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>();
547                 EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
548                 mockEpUserAppRolesRequestDetail.setId(2l);
549                 mockEpUserAppRolesRequestDetail.setReqType("P");
550                 mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
551                 EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest();
552                 mockEPUserAppRolesRequest.setAppId(mockApp.getId());
553                 mockEPUserAppRolesRequest.setId(1l);
554                 mockEPUserAppRolesRequest.setRequestStatus("P");
555                 mockEPUserAppRolesRequest.setUserId(user.getId());
556                 mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList);
557                 mockEpRequestIdValList.add(mockEPUserAppRolesRequest);
558                 mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest);
559                 mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail);
560
561                 // Update Requests if any requests are pending
562                 final Map<String, Long> params = new HashMap<>();
563                 params.put("appId", mockApp.getId());
564                 params.put("userId", user.getId());
565                 Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList",
566                                 params, null)).thenReturn(mockEpRequestIdValList);
567                 mockEPUserAppRolesRequest.setUpdatedDate(new Date());
568                 mockEPUserAppRolesRequest.setRequestStatus("O");
569                 HashMap<String, Long> additionalUpdateParam = new HashMap<String, Long>();
570                 Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPUserAppRolesRequest, additionalUpdateParam);
571                 List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>();
572                 EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
573                 mockEpUserAppRolesRequestDetail.setId(2l);
574                 mockEpUserAppRolesRequestDetail.setReqType("P");
575                 mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
576                 mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail);
577                 // Updates in External Auth System
578                 final Map<String, String> userParams = new HashMap<>();
579                 userParams.put("orgUserIdValue", user.getOrgUserId());
580                 Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null))
581                                 .thenReturn(mockEpUserList);
582                 PowerMockito
583                                 .when(EPCommonSystemProperties
584                                                 .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
585                                 .thenReturn(true);
586                 PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
587                                 .thenReturn("@test.com");
588                 HttpHeaders headers = new HttpHeaders();
589                 Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers);
590                 JSONObject mockJsonObject1 = new JSONObject();
591                 JSONObject mockJsonObject2 = new JSONObject();
592                 JSONObject mockJsonObject3 = new JSONObject();
593                 mockJsonObject1.put("name", "com.test.com.test1");
594                 mockJsonObject2.put("name", "com.test.com.test2");
595                 List<JSONObject> mockJson = new ArrayList<>();
596                 mockJson.add(mockJsonObject1);
597                 mockJson.add(mockJsonObject2);
598                 mockJsonObject3.put("role", mockJson);
599                 ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObject3.toString(), HttpStatus.OK);
600                 Mockito.when(externalAccessRolesServiceImpl.getUserRolesFromExtAuthSystem(Matchers.anyString(), Matchers.any(HttpEntity.class))).thenReturn(getResponse);
601                 EPRole mockEPRole = new EPRole();
602                 mockEPRole.setActive(true);
603                 mockEPRole.setAppId(null);
604                 mockEPRole.setAppRoleId(null);
605                 mockEPRole.setId(1l);
606                 mockEPRole.setName("test1");
607                 EPRole mockEPRole2 = new EPRole();
608                 mockEPRole2.setActive(true);
609                 mockEPRole2.setAppId(null);
610                 mockEPRole2.setAppRoleId(null);
611                 mockEPRole2.setId(16l);
612                 mockEPRole2.setName("test2");
613                 EPRole mockEPRole3 = new EPRole();
614                 mockEPRole3.setActive(true);
615                 mockEPRole3.setAppId(null);
616                 mockEPRole3.setAppRoleId(null);
617                 mockEPRole3.setId(1000l);
618                 mockEPRole3.setName("test3");
619                 Map<String, EPRole> mockEPRoleList = new HashMap<>();
620                 mockEPRoleList.put("test1", mockEPRole);
621                 mockEPRoleList.put("test2", mockEPRole2);
622                 mockEPRoleList.put("test3", mockEPRole3);
623                 Mockito.when(externalAccessRolesServiceImpl.getAppRoleNamesWithUnderscoreMap(mockApp)).thenReturn(mockEPRoleList);
624                 final Map<String, Long> params2 = new HashMap<>();
625                 params2.put("appId", mockApp.getId());
626                 params2.put("userId", user.getId());
627                 List<EcompUserAppRoles> mockEPuserAppList = getCurrentUserRoles(user, mockApp);
628                 Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null))
629                                 .thenReturn(mockEPuserAppList);
630                 final Map<String, Long> epDetailParams = new HashMap<>();
631                 epDetailParams.put("reqId", mockEPUserAppRolesRequest.getId());
632                 Mockito.when(dataAccessService.executeNamedQuery("userAppRolesRequestDetailList", epDetailParams, null))
633                                 .thenReturn(mockGetEpUserAppRolesRequestDetailList);
634
635                 ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.CREATED);
636                 Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
637                                 Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addResponse);
638
639                 ResponseEntity<String> deleteResponse = new ResponseEntity<>(HttpStatus.OK);
640                 Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE),
641                                 Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(deleteResponse);
642
643                 // Updates in EP DB
644                 Query epsetAppWithUserRoleGetUserQuery = Mockito.mock(Query.class);
645                 Query epsetAppWithUserRoleGetUserAppsQuery = Mockito.mock(Query.class);
646                 Query epsetAppWithUserRoleGetRolesQuery = Mockito.mock(Query.class);
647                 SQLQuery epsetAppWithUserRoleUpdateEPRoleQuery = Mockito.mock(SQLQuery.class);
648                 Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp);
649                 Mockito.when(session
650                                 .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
651                                 .thenReturn(epsetAppWithUserRoleGetUserQuery);
652                 Mockito.doReturn(mockEpUserList).when(epsetAppWithUserRoleGetUserQuery).list();
653                 List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
654                 EPUserApp mockEpUserAppRoles = new EPUserApp();
655                 mockEpUserAppRoles.setApp(mockApp);
656                 mockEpUserAppRoles.setRole(mockEPRole);
657                 mockEpUserAppRoles.setUserId(user.getId());
658                 mockUserRolesList2.add(mockEpUserAppRoles);
659                 Mockito.when(session.createQuery(
660                                 "from org.onap.portalapp.portal.domain.EPUserApp where app.id=1 and role.active = 'Y' and userId=2"))
661                                 .thenReturn(epsetAppWithUserRoleGetUserAppsQuery);
662                 Mockito.doReturn(mockUserRolesList2).when(epsetAppWithUserRoleGetUserAppsQuery).list();
663                 List<EPRole> mockEPRoles = new ArrayList<>();
664                 mockEPRoles.add(mockEPRole2);
665                 mockEPRoles.add(mockEPRole3);
666                 Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId is null and id != 1"))
667                                 .thenReturn(epsetAppWithUserRoleGetRolesQuery);
668                 Mockito.doReturn(mockEPRoles).when(epsetAppWithUserRoleGetRolesQuery).list();
669                 Mockito.when(session.createSQLQuery("update fn_role set app_id = null where app_id = 1 "))
670                                 .thenReturn(epsetAppWithUserRoleUpdateEPRoleQuery);
671                 ExternalRequestFieldsValidator actual = userRolesCommonServiceImpl.setAppWithUserRoleStateForUser(user, mockWithRolesForUser);
672                 assertTrue(actual.isResult());
673         }
674
675         private List<EcompUserAppRoles> getCurrentUserRoles(EPUser user, EPApp mockApp) {
676                 List<EcompUserAppRoles> mockEPuserAppList = new ArrayList<>();
677                 EcompUserAppRoles mockEcompUserAppRoles = new EcompUserAppRoles();
678                 mockEcompUserAppRoles.setAppId(String.valueOf(mockApp.getId()));
679                 mockEcompUserAppRoles.setRoleId(1l);
680                 mockEcompUserAppRoles.setRoleName("test1");
681                 mockEcompUserAppRoles.setUserId(user.getId());
682                 mockEPuserAppList.add(mockEcompUserAppRoles);
683                 return mockEPuserAppList;
684         }
685
686         @SuppressWarnings("unchecked")
687         @Test
688         public void setAppWithUserRoleStateForUserTestForNonCentralizedApp() throws Exception {
689                 PowerMockito.mockStatic(SystemProperties.class);
690                 PowerMockito.mockStatic(EcompPortalUtils.class);
691                 PowerMockito.mockStatic(EPCommonSystemProperties.class);
692                 PowerMockito.mockStatic(PortalConstants.class);
693                 EPUser user = mockUser.mockEPUser();
694                 user.setId(2l);
695                 List<EPUser> mockEpUserList = new ArrayList<>();
696                 mockEpUserList.add(user);
697                 EPApp mockApp = mockApp();
698                 mockApp.setNameSpace("com.test.com");
699                 mockApp.setId(2l);
700                 mockApp.setCentralAuth(false);
701                 Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
702                 Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true);
703                 AppWithRolesForUser mockWithRolesForUser = new AppWithRolesForUser();
704                 List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
705                 RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser();
706                 mockRoleInAppForUser.setIsApplied(true);
707                 mockRoleInAppForUser.setRoleId(1l);
708                 mockRoleInAppForUser.setRoleName("test1");
709                 RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
710                 mockRoleInAppForUser2.setIsApplied(true);
711                 mockRoleInAppForUser2.setRoleId(1000l);
712                 mockRoleInAppForUser2.setRoleName("test3");
713                 mockRoleInAppForUserList.add(mockRoleInAppForUser);
714                 mockRoleInAppForUserList.add(mockRoleInAppForUser2);
715                 mockWithRolesForUser.setAppId(mockApp.getId());
716                 mockWithRolesForUser.setAppName(mockApp.getName());
717                 mockWithRolesForUser.setOrgUserId(user.getOrgUserId());
718                 mockWithRolesForUser.setAppRoles(mockRoleInAppForUserList);
719                 List<EPUserAppRolesRequest> mockEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>();
720                 Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>();
721                 EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
722                 mockEpUserAppRolesRequestDetail.setId(2l);
723                 mockEpUserAppRolesRequestDetail.setReqType("P");
724                 mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
725                 EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest();
726                 mockEPUserAppRolesRequest.setAppId(mockApp.getId());
727                 mockEPUserAppRolesRequest.setId(1l);
728                 mockEPUserAppRolesRequest.setRequestStatus("P");
729                 mockEPUserAppRolesRequest.setUserId(user.getId());
730                 mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList);
731                 mockEpRequestIdValList.add(mockEPUserAppRolesRequest);
732                 mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest);
733                 mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail);
734
735                 // Update Requests if any requests are pending
736                 final Map<String, Long> params = new HashMap<>();
737                 params.put("appId", mockApp.getId());
738                 params.put("userId", user.getId());
739                 Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList",
740                                 params, null)).thenReturn(mockEpRequestIdValList);
741                 mockEPUserAppRolesRequest.setUpdatedDate(new Date());
742                 mockEPUserAppRolesRequest.setRequestStatus("O");
743                 HashMap<String, Long> additionalUpdateParam = new HashMap<String, Long>();
744                 Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPUserAppRolesRequest, additionalUpdateParam);
745                 List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>();
746                 EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
747                 mockEpUserAppRolesRequestDetail.setId(2l);
748                 mockEpUserAppRolesRequestDetail.setReqType("P");
749                 mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
750                 mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail);
751                 final Map<String, Long> epDetailParams = new HashMap<>();
752                 epDetailParams.put("reqId", mockEPUserAppRolesRequest.getId());
753
754                 final Map<String, String> userParams = new HashMap<>();
755                 userParams.put("orgUserIdValue", user.getOrgUserId());
756                 Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null))
757                                 .thenReturn(mockEpUserList);
758
759                 PowerMockito
760                                 .when(EPCommonSystemProperties
761                                                 .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
762                                 .thenReturn(true);
763                 PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
764                                 .thenReturn("@test.com");
765                 HttpHeaders headers = new HttpHeaders();
766                 Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers);
767                 EPRole mockEPRole = new EPRole();
768                 mockEPRole.setActive(true);
769                 mockEPRole.setAppId(2l);
770                 mockEPRole.setAppRoleId(null);
771                 mockEPRole.setId(10l);
772                 mockEPRole.setAppRoleId(1l);
773                 mockEPRole.setName("test1");
774                 EPRole mockEPRole2 = new EPRole();
775                 mockEPRole2.setActive(true);
776                 mockEPRole2.setAppId(2l);
777                 mockEPRole2.setAppRoleId(null);
778                 mockEPRole2.setId(160l);
779                 mockEPRole2.setName("test2");
780                 mockEPRole2.setAppRoleId(16l);
781                 EPRole mockEPRole3 = new EPRole();
782                 mockEPRole3.setActive(true);
783                 mockEPRole3.setAppId(2l);
784                 mockEPRole3.setAppRoleId(null);
785                 mockEPRole3.setId(1100l);
786                 mockEPRole3.setAppRoleId(100l);
787                 mockEPRole3.setName("test3");
788                 Mockito.when(applicationsRestClientService.get(EPUser.class, mockApp.getId(),
789                                 String.format("/user/%s", user.getOrgUserId()), true)).thenReturn(user);
790                 // Updates in EP DB
791                 Query epsetAppWithUserRoleNonCentralizedGetUserQuery = Mockito.mock(Query.class);
792                 Query epsetAppWithUserRoleNonCentralizedGetUserAppsQuery = Mockito.mock(Query.class);
793                 Query epsetAppWithUserRoleNonCentralizedGetRolesQuery = Mockito.mock(Query.class);
794                 Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp);
795                 Mockito.when(session
796                                 .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
797                                 .thenReturn(epsetAppWithUserRoleNonCentralizedGetUserQuery);
798                 Mockito.doReturn(mockEpUserList).when(epsetAppWithUserRoleNonCentralizedGetUserQuery).list();
799                 List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
800                 EPUserApp mockEpUserAppRoles = new EPUserApp();
801                 mockEpUserAppRoles.setApp(mockApp);
802                 mockEpUserAppRoles.setRole(mockEPRole);
803                 mockEpUserAppRoles.setUserId(user.getId());
804                 mockUserRolesList2.add(mockEpUserAppRoles);
805                 Mockito.when(session.createQuery(
806                                 "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2"))
807                                 .thenReturn(epsetAppWithUserRoleNonCentralizedGetUserAppsQuery);
808                 Mockito.doReturn(mockUserRolesList2).when(epsetAppWithUserRoleNonCentralizedGetUserAppsQuery).list();
809                 List<EPRole> mockEPRoles = new ArrayList<>();
810                 mockEPRoles.add(mockEPRole2);
811                 mockEPRoles.add(mockEPRole3);
812                 Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId=2"))
813                                 .thenReturn(epsetAppWithUserRoleNonCentralizedGetRolesQuery);
814                 Mockito.doReturn(mockEPRoles).when(epsetAppWithUserRoleNonCentralizedGetRolesQuery).list();
815                 ExternalRequestFieldsValidator expected = userRolesCommonServiceImpl.setAppWithUserRoleStateForUser(user, mockWithRolesForUser);
816                 assertEquals(expected.isResult(), false);
817         }
818
819         /*@SuppressWarnings("unchecked")
820         @Test
821         public void setExternalRequestUserAppRoleMerdianCentralizedAppTest() throws Exception {
822                 PowerMockito.mockStatic(SystemProperties.class);
823                 PowerMockito.mockStatic(EcompPortalUtils.class);
824                 PowerMockito.mockStatic(EPCommonSystemProperties.class);
825                 PowerMockito.mockStatic(PortalConstants.class);
826                 EPUser user = mockUser.mockEPUser();
827                 user.setId(2l);
828                 List<EPUser> mockEpUserList = new ArrayList<>();
829                 mockEpUserList.add(user);
830                 EPApp mockApp = mockApp();
831                 mockApp.setNameSpace("com.test.com");
832                 mockApp.setId(1l);
833                 mockApp.setCentralAuth(true);
834                 Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true);
835                 ExternalSystemUser externalSystemUser = new ExternalSystemUser();
836                 List<ExternalSystemRoleApproval> mockExternalSystemRoleApprovalList = new ArrayList<>();
837                 ExternalSystemRoleApproval mockExternalSystemRoleApproval = new ExternalSystemRoleApproval();
838                 mockExternalSystemRoleApproval.setRoleName("test1");
839                 ExternalSystemRoleApproval mockExternalSystemRoleApproval2 = new ExternalSystemRoleApproval();
840                 mockExternalSystemRoleApproval2.setRoleName("test2");
841                 mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval);
842                 mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval2);
843                 externalSystemUser.setApplicationName(mockApp.getMlAppName());
844                 externalSystemUser.setLoginId(user.getOrgUserId());
845                 externalSystemUser.setRoles(mockExternalSystemRoleApprovalList);
846                 EPRole mockEPRole = new EPRole();
847                 mockEPRole.setActive(true);
848                 mockEPRole.setAppId(null);
849                 mockEPRole.setAppRoleId(null);
850                 mockEPRole.setId(1l);
851                 mockEPRole.setName("test1");
852                 EPRole mockEPRole2 = new EPRole();
853                 mockEPRole2.setActive(true);
854                 mockEPRole2.setAppId(null);
855                 mockEPRole2.setAppRoleId(null);
856                 mockEPRole2.setId(16l);
857                 mockEPRole2.setName("test2");
858                 EPRole mockEPRole3 = new EPRole();
859                 mockEPRole3.setActive(true);
860                 mockEPRole3.setAppId(null);
861                 mockEPRole3.setAppRoleId(null);
862                 mockEPRole3.setId(1000l);
863                 mockEPRole3.setName("test3");
864
865                 Mockito.when(epAppCommonServiceImpl.getAppDetail(mockApp.getMlAppName())).thenReturn(mockApp);
866                 final Map<String, String> userParams = new HashMap<>();
867                 userParams.put("orgUserIdValue", user.getOrgUserId());
868                 Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null))
869                                 .thenReturn(mockEpUserList);
870
871                 List<EPUserAppRolesRequest> mockMerdianEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>();
872                 Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>();
873                 EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
874                 mockEpUserAppRolesRequestDetail.setId(2l);
875                 mockEpUserAppRolesRequestDetail.setReqType("P");
876                 mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
877                 EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest();
878                 mockEPUserAppRolesRequest.setAppId(mockApp.getId());
879                 mockEPUserAppRolesRequest.setId(1l);
880                 mockEPUserAppRolesRequest.setRequestStatus("P");
881                 mockEPUserAppRolesRequest.setUserId(user.getId());
882                 mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList);
883                 mockMerdianEpRequestIdValList.add(mockEPUserAppRolesRequest);
884                 mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest);
885                 mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail);
886
887                 final Map<String, Long> params = new HashMap<>();
888                 params.put("appId", mockApp.getId());
889                 params.put("userId", user.getId());
890                 Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList",
891                                 params, null)).thenReturn(mockMerdianEpRequestIdValList);
892                 RoleInAppForUser mockRoleInAppForUser1 = new RoleInAppForUser();
893                 mockRoleInAppForUser1.setIsApplied(true);
894                 mockRoleInAppForUser1.setRoleId(1l);
895                 mockRoleInAppForUser1.setRoleName("test1");
896                 RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
897                 mockRoleInAppForUser2.setIsApplied(true);
898                 mockRoleInAppForUser2.setRoleId(16l);
899                 mockRoleInAppForUser2.setRoleName("test2");
900                 Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval.getRoleName(), mockApp.getId()))
901                                 .thenReturn(mockEPRole);
902                 Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval2.getRoleName(), mockApp.getId()))
903                                 .thenReturn(mockEPRole2);
904                 List<EcompUserAppRoles> mockEPuserAppList = getCurrentUserRoles(user, mockApp);
905                 final Map<String, Long> params2 = new HashMap<>();
906                 params2.put("userId", user.getId());
907                 params2.put("appId", mockApp.getId());
908                 Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null))
909                                 .thenReturn(mockEPuserAppList);
910                 // Updates in External Auth System
911                 List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>();
912                 EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
913                 mockEpUserAppRolesRequestDetail.setId(2l);
914                 mockEpUserAppRolesRequestDetail.setReqType("P");
915                 mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
916                 mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail);
917                 final Map<String, String> userParams2 = new HashMap<>();
918                 userParams2.put("orgUserIdValue", user.getOrgUserId());
919                 Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams2, null))
920                                 .thenReturn(mockEpUserList);
921                 PowerMockito
922                                 .when(EPCommonSystemProperties
923                                                 .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
924                                 .thenReturn(true);
925                 PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN))
926                                 .thenReturn("@test.com");
927                 HttpHeaders headers = new HttpHeaders();
928                 Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers);
929                 JSONObject mockJsonObject1 = new JSONObject();
930                 JSONObject mockJsonObject2 = new JSONObject();
931                 JSONObject mockJsonObject3 = new JSONObject();
932                 mockJsonObject1.put("name", "com.test.com.test1");
933                 mockJsonObject2.put("name", "com.test.com.test2");
934                 List<JSONObject> mockJson = new ArrayList<>();
935                 mockJson.add(mockJsonObject1);
936                 mockJson.add(mockJsonObject2);
937                 mockJsonObject3.put("role", mockJson);
938                 ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObject3.toString(), HttpStatus.OK);
939                 Mockito.when(externalAccessRolesServiceImpl.getUserRolesFromExtAuthSystem(Matchers.anyString(), Matchers.any(HttpEntity.class))).thenReturn(getResponse);
940                 Map<String, EPRole> mockEPRoleList = new HashMap<>();
941                 mockEPRoleList.put("test1", mockEPRole);
942                 mockEPRoleList.put("test2", mockEPRole2);
943                 mockEPRoleList.put("test3", mockEPRole3);
944                 Mockito.when(externalAccessRolesServiceImpl.getAppRoleNamesWithUnderscoreMap(mockApp)).thenReturn(mockEPRoleList);
945                 ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.CREATED);
946                 Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST),
947                                 Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addResponse);
948
949                 ResponseEntity<String> deleteResponse = new ResponseEntity<>(HttpStatus.OK);
950                 Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE),
951                                 Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(deleteResponse);
952                 // Updated in EP DB
953                 Query epsetExternalRequestUserAppRoleGetUserQuery = Mockito.mock(Query.class);
954                 Query epsetExternalRequestUserAppRoleGetUserAppsQuery = Mockito.mock(Query.class);
955                 Query epsetExternalRequestUserAppRoleGetRolesQuery = Mockito.mock(Query.class);
956                 SQLQuery epsetAppWithUserRoleUpdateEPRoleQuery = Mockito.mock(SQLQuery.class);
957                 Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp);
958                 Mockito.when(session
959                                 .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
960                                 .thenReturn(epsetExternalRequestUserAppRoleGetUserQuery);
961                 Mockito.doReturn(mockEpUserList).when(epsetExternalRequestUserAppRoleGetUserQuery).list();
962                 List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
963                 EPUserApp mockEpUserAppRoles = new EPUserApp();
964                 mockEpUserAppRoles.setApp(mockApp);
965                 mockEpUserAppRoles.setRole(mockEPRole);
966                 mockEpUserAppRoles.setUserId(user.getId());
967                 mockUserRolesList2.add(mockEpUserAppRoles);
968                 Mockito.when(session.createQuery(
969                                 "from org.onap.portalapp.portal.domain.EPUserApp where app.id=1 and role.active = 'Y' and userId=2"))
970                                 .thenReturn(epsetExternalRequestUserAppRoleGetUserAppsQuery);
971                 Mockito.doReturn(mockUserRolesList2).when(epsetExternalRequestUserAppRoleGetUserAppsQuery).list();
972                 List<EPRole> mockEPRoles = new ArrayList<>();
973                 mockEPRoles.add(mockEPRole2);
974                 mockEPRoles.add(mockEPRole3);
975                 Mockito.when(session.createQuery("from org.onap.portalapp.portal.domain.EPRole where appId is null "))
976                                 .thenReturn(epsetExternalRequestUserAppRoleGetRolesQuery);
977                 Mockito.doReturn(mockEPRoles).when(epsetExternalRequestUserAppRoleGetRolesQuery).list();
978                 Mockito.when(session.createSQLQuery("update fn_role set app_id = null where app_id = 1 "))
979                                 .thenReturn(epsetAppWithUserRoleUpdateEPRoleQuery);
980
981                 ExternalRequestFieldsValidator mockExternalRequestFieldsValidator = new ExternalRequestFieldsValidator(true,
982                                 "Updated Successfully");
983                 ExternalRequestFieldsValidator externalRequestFieldsValidator = userRolesCommonServiceImpl
984                                 .setExternalRequestUserAppRole(externalSystemUser, "POST");
985                 assertTrue(mockExternalRequestFieldsValidator.equals(externalRequestFieldsValidator));
986         }
987 */
988         @SuppressWarnings("unchecked")
989         @Test
990         public void setExternalRequestUserAppRoleMerdianNonCentralizedAppTest() throws Exception {
991                 PowerMockito.mockStatic(SystemProperties.class);
992                 PowerMockito.mockStatic(EPCommonSystemProperties.class);
993                 PowerMockito.mockStatic(PortalConstants.class);
994                 EPUser user = mockUser.mockEPUser();
995                 user.setId(2l);
996                 List<EPUser> mockEpUserList = new ArrayList<>();
997                 mockEpUserList.add(user);
998                 EPApp mockApp = mockApp();
999                 mockApp.setId(2l);
1000                 mockApp.setEnabled(true);
1001                 mockApp.setCentralAuth(false);
1002                 ExternalSystemUser externalSystemUser = new ExternalSystemUser();
1003                 List<ExternalSystemRoleApproval> mockExternalSystemRoleApprovalList = new ArrayList<>();
1004                 ExternalSystemRoleApproval mockExternalSystemRoleApproval = new ExternalSystemRoleApproval();
1005                 mockExternalSystemRoleApproval.setRoleName("test1");
1006                 ExternalSystemRoleApproval mockExternalSystemRoleApproval2 = new ExternalSystemRoleApproval();
1007                 mockExternalSystemRoleApproval2.setRoleName("test2");
1008                 mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval);
1009                 mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval2);
1010                 externalSystemUser.setApplicationName(mockApp.getMlAppName());
1011                 externalSystemUser.setLoginId(user.getOrgUserId());
1012                 externalSystemUser.setRoles(mockExternalSystemRoleApprovalList);
1013
1014                 EPRole mockEPRole = new EPRole();
1015                 mockEPRole.setActive(true);
1016                 mockEPRole.setAppId(2l);
1017                 mockEPRole.setAppRoleId(1l);
1018                 mockEPRole.setId(1000l);
1019                 mockEPRole.setName("test1");
1020                 EPRole mockEPRole2 = new EPRole();
1021                 mockEPRole2.setActive(true);
1022                 mockEPRole2.setAppId(2l);
1023                 mockEPRole2.setAppRoleId(16l);
1024                 mockEPRole2.setId(160l);
1025                 mockEPRole2.setName("test2");
1026                 EPRole mockEPRole3 = new EPRole();
1027                 mockEPRole3.setActive(true);
1028                 mockEPRole3.setAppId(2l);
1029                 mockEPRole3.setAppRoleId(10l);
1030                 mockEPRole3.setId(100l);
1031                 mockEPRole3.setName("test3");
1032
1033                 Mockito.when(epAppCommonServiceImpl.getAppDetail(mockApp.getMlAppName())).thenReturn(mockApp);
1034                 final Map<String, String> userParams = new HashMap<>();
1035                 userParams.put("orgUserIdValue", user.getOrgUserId());
1036                 Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null))
1037                                 .thenReturn(mockEpUserList);
1038
1039                 List<EPUserAppRolesRequest> mockMerdianEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>();
1040                 Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>();
1041                 EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail();
1042                 mockEpUserAppRolesRequestDetail.setId(2l);
1043                 mockEpUserAppRolesRequestDetail.setReqType("P");
1044                 mockEpUserAppRolesRequestDetail.setReqRoleId(16l);
1045                 EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest();
1046                 mockEPUserAppRolesRequest.setAppId(mockApp.getId());
1047                 mockEPUserAppRolesRequest.setId(1l);
1048                 mockEPUserAppRolesRequest.setRequestStatus("P");
1049                 mockEPUserAppRolesRequest.setUserId(user.getId());
1050                 mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList);
1051                 mockMerdianEpRequestIdValList.add(mockEPUserAppRolesRequest);
1052                 mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest);
1053                 mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail);
1054
1055                 final Map<String, Long> params = new HashMap<>();
1056                 params.put("appId", mockApp.getId());
1057                 params.put("userId", user.getId());
1058                 Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList",
1059                                 params, null)).thenReturn(mockMerdianEpRequestIdValList);
1060                 RoleInAppForUser mockRoleInAppForUser1 = new RoleInAppForUser();
1061                 mockRoleInAppForUser1.setIsApplied(true);
1062                 mockRoleInAppForUser1.setRoleId(1l);
1063                 mockRoleInAppForUser1.setRoleName("test1");
1064                 RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser();
1065                 mockRoleInAppForUser2.setIsApplied(true);
1066                 mockRoleInAppForUser2.setRoleId(16l);
1067                 mockRoleInAppForUser2.setRoleName("test2");
1068                 Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval.getRoleName(), mockApp.getId()))
1069                                 .thenReturn(mockEPRole);
1070                 Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval2.getRoleName(), mockApp.getId()))
1071                                 .thenReturn(mockEPRole2);
1072                 List<EcompUserAppRoles> mockEPuserAppList = new ArrayList<>();
1073                 EcompUserAppRoles mockEcompUserAppRoles = new EcompUserAppRoles();
1074                 mockEcompUserAppRoles.setAppId(String.valueOf(mockApp.getId()));
1075                 mockEcompUserAppRoles.setRoleId(100l);
1076                 mockEcompUserAppRoles.setRoleName("test1");
1077                 mockEcompUserAppRoles.setUserId(user.getId());
1078                 mockEPuserAppList.add(mockEcompUserAppRoles);
1079                 final Map<String, Long> params2 = new HashMap<>();
1080                 params2.put("userId", user.getId());
1081                 params2.put("appId", mockApp.getId());
1082                 Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null))
1083                                 .thenReturn(mockEPuserAppList);
1084                 List<EcompRole> mockEcompRoleList = new ArrayList<>();
1085                 EcompRole mockEcompRole = new EcompRole();
1086                 mockEcompRole.setId(1l);
1087                 mockEcompRole.setName("test1");
1088                 EcompRole mockEcompRole2 = new EcompRole();
1089                 mockEcompRole2.setId(16l);
1090                 mockEcompRole2.setName("test2");
1091                 mockEcompRoleList.add(mockEcompRole);
1092                 mockEcompRoleList.add(mockEcompRole2);
1093                 EcompRole[] mockEcompRoleArray = mockEcompRoleList.toArray(new EcompRole[mockEcompRoleList.size()]);
1094                 Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles"))
1095                                 .thenReturn(mockEcompRoleArray);
1096
1097                 // SyncAppRoles
1098                 List<EPUserApp> mockUserRolesList = new ArrayList<>();
1099                 EPUserApp mockEpUserApp = new EPUserApp();
1100                 mockEpUserApp.setApp(mockApp);
1101                 mockEpUserApp.setRole(mockEPRole2);
1102                 mockEpUserApp.setUserId(user.getId());
1103                 mockUserRolesList.add(mockEpUserApp);
1104                 List<FunctionalMenuRole> mockFunctionalMenuRolesList = new ArrayList<>();
1105                 FunctionalMenuRole mockFunctionalMenuRole = new FunctionalMenuRole();
1106                 mockFunctionalMenuRole.setAppId((int) (long) mockApp.getId());
1107                 mockFunctionalMenuRole.setRoleId((int) (long) 15l);
1108                 mockFunctionalMenuRole.setMenuId(10l);
1109                 mockFunctionalMenuRole.setId(10);
1110                 mockFunctionalMenuRolesList.add(mockFunctionalMenuRole);
1111                 List<FunctionalMenuItem> mockFunctionalMenuItemList = new ArrayList<>();
1112                 FunctionalMenuItem mockFunctionalMenuItem = new FunctionalMenuItem();
1113                 List<Integer> mockRolesList = new ArrayList<>();
1114                 Integer role1 = 1;
1115                 mockRolesList.add(role1);
1116                 mockFunctionalMenuItem.setRestrictedApp(false);
1117                 mockFunctionalMenuItem.setRoles(mockRolesList);
1118                 mockFunctionalMenuItem.setUrl("http://test.com");
1119                 mockFunctionalMenuItemList.add(mockFunctionalMenuItem);
1120                 Query epRoleQuery = Mockito.mock(Query.class);
1121                 Query epUserAppsQuery = Mockito.mock(Query.class);
1122                 Query epFunctionalMenuQuery = Mockito.mock(Query.class);
1123                 Query epFunctionalMenuQuery2 = Mockito.mock(Query.class);
1124                 Query epFunctionalMenuItemQuery = Mockito.mock(Query.class);
1125                 Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles"))
1126                                 .thenReturn(mockEcompRoleArray);
1127                 // syncAppRolesTest
1128                 Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId=" + mockApp.getId()))
1129                                 .thenReturn(epRoleQuery);
1130                 Mockito.doReturn(mockEcompRoleList).when(epRoleQuery).list();
1131                 Mockito.when(session.createQuery(
1132                                 "from " + EPUserApp.class.getName() + " where app.id=" + mockApp.getId() + " and role_id=" + 100l))
1133                                 .thenReturn(epUserAppsQuery);
1134                 Mockito.doReturn(mockUserRolesList).when(epUserAppsQuery).list();
1135
1136                 Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where roleId=" + 100l))
1137                                 .thenReturn(epFunctionalMenuQuery);
1138                 Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery).list();
1139
1140                 Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where menuId=" + 10l))
1141                                 .thenReturn(epFunctionalMenuQuery2);
1142                 Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery2).list();
1143
1144                 Mockito.when(session.createQuery("from " + FunctionalMenuItem.class.getName() + " where menuId=" + 10l))
1145                                 .thenReturn(epFunctionalMenuItemQuery);
1146                 Mockito.doReturn(mockFunctionalMenuItemList).when(epFunctionalMenuItemQuery).list();
1147
1148                 Mockito.when(applicationsRestClientService.get(EPUser.class, mockApp.getId(),
1149                                 String.format("/user/%s", user.getOrgUserId()), true)).thenReturn(user);
1150                 // Updated in EP DB
1151                 Query epsetExternalRequestUserAppRoleGetUserQuery = Mockito.mock(Query.class);
1152                 Query epsetExternalRequestUserAppRoleGetUserAppsQuery = Mockito.mock(Query.class);
1153                 Query epsetExternalRequestUserAppRoleGetRolesQuery = Mockito.mock(Query.class);
1154                 Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp);
1155                 Mockito.when(session
1156                                 .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'"))
1157                                 .thenReturn(epsetExternalRequestUserAppRoleGetUserQuery);
1158                 Mockito.doReturn(mockEpUserList).when(epsetExternalRequestUserAppRoleGetUserQuery).list();
1159                 List<EPUserApp> mockUserRolesList2 = new ArrayList<>();
1160                 EPUserApp mockEpUserAppRoles = new EPUserApp();
1161                 mockEpUserAppRoles.setApp(mockApp);
1162                 mockEpUserAppRoles.setRole(mockEPRole);
1163                 mockEpUserAppRoles.setUserId(user.getId());
1164                 mockUserRolesList2.add(mockEpUserAppRoles);
1165                 Mockito.when(session.createQuery(
1166                                 "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2"))
1167                                 .thenReturn(epsetExternalRequestUserAppRoleGetUserAppsQuery);
1168                 Mockito.doReturn(mockUserRolesList2).when(epsetExternalRequestUserAppRoleGetUserAppsQuery).list();
1169                 List<EPRole> mockEPRoles = new ArrayList<>();
1170                 mockEPRoles.add(mockEPRole2);
1171                 mockEPRoles.add(mockEPRole3);
1172                 Mockito.when(session.createQuery("from org.onap.portalapp.portal.domain.EPRole where appId=2"))
1173                                 .thenReturn(epsetExternalRequestUserAppRoleGetRolesQuery);
1174                 Mockito.doReturn(mockEPRoles).when(epsetExternalRequestUserAppRoleGetRolesQuery).list();
1175
1176                 ExternalRequestFieldsValidator mockExternalRequestFieldsValidator = new ExternalRequestFieldsValidator(true,
1177                                 "Updated Successfully");
1178                 ExternalRequestFieldsValidator externalRequestFieldsValidator = userRolesCommonServiceImpl
1179                                 .setExternalRequestUserAppRole(externalSystemUser, "POST");
1180                 assertFalse(mockExternalRequestFieldsValidator.equals(externalRequestFieldsValidator));
1181         }
1182
1183         @SuppressWarnings("unchecked")
1184         @Test
1185         public void getUsersFromAppEndpointCentralizedAppTest() throws HTTPException {
1186                 EPApp mockApp = mockApp();
1187                 mockApp.setId(1l);
1188                 mockApp.setEnabled(true);
1189                 mockApp.setCentralAuth(true);
1190                 EPUser user = mockUser.mockEPUser();
1191                 EPUser user2 = mockUser.mockEPUser();
1192                 user2.setActive(true);
1193                 user2.setOrgUserId("guestT2");
1194                 user2.setId(2l);
1195                 user2.setFirstName("Guest2");
1196                 user2.setLastName("Test2");
1197                 user.setId(1l);
1198                 user.setFirstName("Guest");
1199                 user.setLastName("Test");
1200                 EPRole mockEPRole1 = new EPRole();
1201                 mockEPRole1.setId(1l);
1202                 mockEPRole1.setName("test1");
1203                 mockEPRole1.setActive(true);
1204                 EPRole mockEPRole2 = new EPRole();
1205                 mockEPRole2.setId(16l);
1206                 mockEPRole2.setName("test2");
1207                 mockEPRole2.setActive(true);
1208                 SortedSet<EPUserApp> mockUserApps1 = new TreeSet<EPUserApp>();
1209                 EPUserApp mockEPUserApp1 = new EPUserApp();
1210                 mockEPUserApp1.setApp(mockApp);
1211                 mockEPUserApp1.setRole(mockEPRole1);
1212                 mockEPUserApp1.setUserId(1l);
1213                 mockUserApps1.add(mockEPUserApp1);
1214                 user.setEPUserApps(mockUserApps1);
1215                 SortedSet<EPUserApp> mockUserApps2 = new TreeSet<EPUserApp>();
1216                 EPUserApp mockEPUserApp2 = new EPUserApp();
1217                 mockEPUserApp2.setApp(mockApp);
1218                 mockEPUserApp2.setRole(mockEPRole2);
1219                 mockEPUserApp2.setUserId(2l);
1220                 mockUserApps2.add(mockEPUserApp2);
1221                 user2.setEPUserApps(mockUserApps2);
1222                 List<EPUser> mockEpUserList = new ArrayList<>();
1223                 mockEpUserList.add(user);
1224                 mockEpUserList.add(user2);
1225                 Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
1226                 List<UserApplicationRoles> mockUserApplicationRolesList = new ArrayList<>();
1227                 UserApplicationRoles mockUserApplicationRoles = new UserApplicationRoles();
1228                 List<RemoteRole> mockRemoteRoleList = new ArrayList<>();
1229                 RemoteRole mockRemoteRole = new RemoteRole();
1230                 mockRemoteRole.setId(1l);
1231                 mockRemoteRole.setName("test1");
1232                 mockRemoteRoleList.add(mockRemoteRole);
1233                 mockUserApplicationRoles.setAppId(mockApp.getId());
1234                 mockUserApplicationRoles.setFirstName("Guest");
1235                 mockUserApplicationRoles.setLastName("Test");
1236                 mockUserApplicationRoles.setOrgUserId("guestT");
1237                 mockUserApplicationRoles.setRoles(mockRemoteRoleList);
1238                 UserApplicationRoles mockUserApplicationRoles2 = new UserApplicationRoles();
1239                 List<RemoteRole> mockRemoteRoleList2 = new ArrayList<>();
1240                 RemoteRole mockRemoteRole2 = new RemoteRole();
1241                 mockRemoteRole2.setId(16l);
1242                 mockRemoteRole2.setName("test2");
1243                 mockRemoteRoleList2.add(mockRemoteRole2);
1244                 mockUserApplicationRoles2.setAppId(mockApp.getId());
1245                 mockUserApplicationRoles2.setFirstName("Guest2");
1246                 mockUserApplicationRoles2.setLastName("Test2");
1247                 mockUserApplicationRoles2.setOrgUserId("guestT2");
1248                 mockUserApplicationRoles2.setRoles(mockRemoteRoleList2);
1249                 mockUserApplicationRolesList.add(mockUserApplicationRoles);
1250                 mockUserApplicationRolesList.add(mockUserApplicationRoles2);
1251                 Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("getActiveUsers", null, null))
1252                                 .thenReturn(mockEpUserList);
1253                 assertEquals(userRolesCommonServiceImpl.getUsersFromAppEndpoint(1l).size(),
1254                                 mockUserApplicationRolesList.size());
1255         }
1256
1257         @Test
1258         public void getUsersFromAppEndpointNonCentralizedAppTest() throws HTTPException, JsonProcessingException {
1259                 EPApp mockApp = mockApp();
1260                 mockApp.setId(2l);
1261                 mockApp.setEnabled(true);
1262                 mockApp.setCentralAuth(false);
1263                 Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp);
1264                 List<UserApplicationRoles> mockUserApplicationRolesNonCentralizedList = new ArrayList<>();
1265                 UserApplicationRoles mockUserApplicationRoles = new UserApplicationRoles();
1266                 List<RemoteRole> mockRemoteRoleList = new ArrayList<>();
1267                 RemoteRole mockRemoteRole = new RemoteRole();
1268                 mockRemoteRole.setId(1l);
1269                 mockRemoteRole.setName("test1");
1270                 mockRemoteRoleList.add(mockRemoteRole);
1271                 mockUserApplicationRoles.setAppId(mockApp.getId());
1272                 mockUserApplicationRoles.setFirstName("Guest");
1273                 mockUserApplicationRoles.setLastName("Test");
1274                 mockUserApplicationRoles.setOrgUserId("guestT");
1275                 mockUserApplicationRoles.setRoles(mockRemoteRoleList);
1276                 UserApplicationRoles mockUserApplicationRoles2 = new UserApplicationRoles();
1277                 List<RemoteRole> mockRemoteRoleList2 = new ArrayList<>();
1278                 RemoteRole mockRemoteRole2 = new RemoteRole();
1279                 mockRemoteRole2.setId(16l);
1280                 mockRemoteRole2.setName("test2");
1281                 mockRemoteRoleList2.add(mockRemoteRole2);
1282                 mockUserApplicationRoles2.setAppId(mockApp.getId());
1283                 mockUserApplicationRoles2.setFirstName("Guest2");
1284                 mockUserApplicationRoles2.setLastName("Test2");
1285                 mockUserApplicationRoles2.setOrgUserId("guestT2");
1286                 mockUserApplicationRoles2.setRoles(mockRemoteRoleList2);
1287                 mockUserApplicationRolesNonCentralizedList.add(mockUserApplicationRoles);
1288                 mockUserApplicationRolesNonCentralizedList.add(mockUserApplicationRoles2);
1289                 RemoteUserWithRoles mockRemoteUserWithRoles1 = new RemoteUserWithRoles();
1290                 mockRemoteUserWithRoles1.setFirstName("Guest1");
1291                 mockRemoteUserWithRoles1.setLastName("Test1");
1292                 mockRemoteUserWithRoles1.setOrgUserId("guestT");
1293                 mockRemoteUserWithRoles1.setRoles(mockRemoteRoleList);
1294                 RemoteUserWithRoles mockRemoteUserWithRoles2 = new RemoteUserWithRoles();
1295                 mockRemoteUserWithRoles2.setFirstName("Guest2");
1296                 mockRemoteUserWithRoles2.setLastName("Test2");
1297                 mockRemoteUserWithRoles2.setOrgUserId("guestT");
1298                 mockRemoteUserWithRoles2.setRoles(mockRemoteRoleList2);
1299                 List<RemoteUserWithRoles> mockRemoteUserWithRolesList = new ArrayList<>();
1300                 mockRemoteUserWithRolesList.add(mockRemoteUserWithRoles1);
1301                 mockRemoteUserWithRolesList.add(mockRemoteUserWithRoles2);
1302                 ObjectMapper mapper = new ObjectMapper();
1303                 String mockGetRemoteUsersWithRoles = mapper.writeValueAsString(mockRemoteUserWithRolesList);
1304                 Mockito.when(applicationsRestClientService.getIncomingJsonString(mockApp.getId(), "/users"))
1305                                 .thenReturn(mockGetRemoteUsersWithRoles);
1306                 List<UserApplicationRoles> userApplicationRolesNonCentralizedList = userRolesCommonServiceImpl
1307                                 .getUsersFromAppEndpoint(2l);
1308                 assertEquals(mockUserApplicationRolesNonCentralizedList.size(), userApplicationRolesNonCentralizedList.size());
1309         }
1310
1311         @SuppressWarnings("unchecked")
1312         @Test
1313         public void putUserAppRolesRequestTest() {
1314                 EPApp mockApp = mockApp();
1315                 mockApp.setId(2l);
1316                 mockApp.setEnabled(true);
1317                 mockApp.setCentralAuth(false);
1318                 EPUser user = mockUser.mockEPUser();
1319                 AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
1320                 List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>();
1321                 RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
1322                 roleInAppForUser.setIsApplied(true);
1323                 roleInAppForUser.setRoleId(1l);
1324                 roleInAppForUser.setRoleName("test1");
1325                 RoleInAppForUser roleInAppForUser2 = new RoleInAppForUser();
1326                 roleInAppForUser2.setIsApplied(true);
1327                 roleInAppForUser2.setRoleId(1000l);
1328                 roleInAppForUser2.setRoleName("test3");
1329                 mockRoleInAppForUserList.add(roleInAppForUser);
1330                 mockRoleInAppForUserList.add(roleInAppForUser2);
1331                 appWithRolesForUser.setAppId(mockApp.getId());
1332                 appWithRolesForUser.setAppName(mockApp.getName());
1333                 appWithRolesForUser.setOrgUserId(user.getOrgUserId());
1334                 appWithRolesForUser.setAppRoles(mockRoleInAppForUserList);
1335                 List<EPUserAppRoles> epUserAppRolesList = new ArrayList<>();
1336                 EPUserAppRoles appRole1 = new EPUserAppRoles();
1337                 appRole1.setAppId(mockApp.getId());
1338                 appRole1.setId(10l);
1339                 appRole1.setRoleId(roleInAppForUser.roleId);
1340                 epUserAppRolesList.add(appRole1);
1341                 List<EPUserAppRoles> epUserAppRolesList2 = new ArrayList<>();
1342                 EPUserAppRoles appRole2 = new EPUserAppRoles();
1343                 appRole2.setAppId(mockApp.getId());
1344                 appRole2.setId(11l);
1345                 appRole2.setRoleId(roleInAppForUser2.roleId);
1346                 epUserAppRolesList2.add(appRole2);
1347                 EPUserAppRolesRequest mockEpAppRolesRequestData = new EPUserAppRolesRequest();
1348                 Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEpAppRolesRequestData, null);
1349                 final Map<String, Long> params = new HashMap<>();
1350                 params.put("appId", appWithRolesForUser.getAppId());
1351                 params.put("appRoleId", roleInAppForUser.roleId);
1352                 Mockito.when((List<EPUserAppRoles>) dataAccessService.executeNamedQuery("appRoles", params, null))
1353                                 .thenReturn(epUserAppRolesList);
1354                 params.put("appRoleId", roleInAppForUser2.roleId);
1355                 Mockito.when((List<EPUserAppRoles>) dataAccessService.executeNamedQuery("appRoles", params, null))
1356                                 .thenReturn(epUserAppRolesList2);
1357                 EPUserAppRolesRequestDetail mockEPAppRoleDetail = new EPUserAppRolesRequestDetail();
1358                 Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPAppRoleDetail, null);
1359                 FieldsValidator expected = new FieldsValidator();
1360                 expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK));
1361                 FieldsValidator actual = userRolesCommonServiceImpl.putUserAppRolesRequest(appWithRolesForUser, user);
1362                 assertEquals(expected, actual);
1363         }
1364
1365         @Test
1366         public void importRolesFromRemoteApplicationTest() throws HTTPException {
1367                 EPApp mockApp = mockApp();
1368                 mockApp.setId(2l);
1369                 mockApp.setEnabled(true);
1370                 mockApp.setCentralAuth(false);
1371                 List<EPRole> expected = new ArrayList<>();
1372                 EPRole epRole = new EPRole();
1373                 epRole.setAppId(mockApp.getId());
1374                 epRole.setActive(true);
1375                 epRole.setId(10l);
1376                 epRole.setName("test1");
1377                 EPRole epRole2 = new EPRole();
1378                 epRole2.setAppId(mockApp.getId());
1379                 epRole2.setActive(true);
1380                 epRole2.setId(11l);
1381                 epRole2.setName("test2");
1382                 expected.add(epRole);
1383                 expected.add(epRole2);
1384                 EPRole[] epRoleArray = expected.toArray(new EPRole[expected.size()]);
1385                 Mockito.when(applicationsRestClientService.get(EPRole[].class, mockApp.getId(), "/rolesFull"))
1386                                 .thenReturn(epRoleArray);
1387                 Mockito.when(epRoleServiceImpl.getRole(mockApp.getId(), epRole.getId())).thenReturn(epRole);
1388                 Mockito.when(epRoleServiceImpl.getRole(mockApp.getId(), epRole2.getId())).thenReturn(epRole2);
1389                 List<EPRole> actual = userRolesCommonServiceImpl.importRolesFromRemoteApplication(mockApp.getId());
1390                 assertEquals(expected.size(), actual.size());
1391         }
1392
1393         @SuppressWarnings("deprecation")
1394         @Test
1395         public void getCachedAppRolesForUserTest() {
1396                 EPApp mockApp = mockApp();
1397                 mockApp.setId(2l);
1398                 mockApp.setEnabled(true);
1399                 mockApp.setCentralAuth(false);
1400                 EPUser user = mockUser.mockEPUser();
1401                 List<EPUserApp> expected = new ArrayList<>();
1402                 EPUserApp epUserApp = new EPUserApp();
1403                 EPRole epRole = new EPRole();
1404                 epRole.setAppId(mockApp.getId());
1405                 epRole.setActive(true);
1406                 epRole.setId(10l);
1407                 epRole.setName("test1");
1408                 epUserApp.setApp(mockApp);
1409                 epUserApp.setRole(epRole);
1410                 epUserApp.setUserId(user.getId());
1411                 expected.add(epUserApp);
1412                 String filter = " where user_id = " + Long.toString(user.getId()) + " and app_id = "
1413                                 + Long.toString(mockApp.getId());
1414                 Mockito.when(dataAccessService.getList(EPUserApp.class, filter, null, null)).thenReturn(expected);
1415                 List<EPUserApp> actual = userRolesCommonServiceImpl.getCachedAppRolesForUser(mockApp.getId(), user.getId());
1416                 assertEquals(expected.size(), actual.size());
1417         }
1418
1419         @SuppressWarnings("unchecked")
1420         @Test
1421         public void getUserAppCatalogRolesTest() {
1422                 EPApp mockApp = mockApp();
1423                 mockApp.setId(2l);
1424                 mockApp.setEnabled(true);
1425                 mockApp.setCentralAuth(false);
1426                 EPUser user = mockUser.mockEPUser();
1427                 List<EPUserAppCatalogRoles> expected = new ArrayList<>();
1428                 EPUserAppCatalogRoles epUserAppCatalogRoles = new EPUserAppCatalogRoles();
1429                 epUserAppCatalogRoles.setAppId(mockApp.getId());
1430                 epUserAppCatalogRoles.setId(2l);
1431                 epUserAppCatalogRoles.setRequestedRoleId(10l);
1432                 epUserAppCatalogRoles.setRequestStatus("S");
1433                 epUserAppCatalogRoles.setRolename("test1");
1434                 expected.add(epUserAppCatalogRoles);
1435                 Map<String, String> params = new HashMap<>();
1436                 params.put("userid", user.getId().toString());
1437                 params.put("appName", mockApp.getName());
1438                 Mockito.when(
1439                                 (List<EPUserAppCatalogRoles>) dataAccessService.executeNamedQuery("userAppCatalogRoles", params, null))
1440                                 .thenReturn(expected);
1441                 List<EPUserAppCatalogRoles> actual = userRolesCommonServiceImpl.getUserAppCatalogRoles(user, mockApp.getName());
1442                 assertEquals(expected.size(), actual.size());
1443         }
1444
1445         @Test
1446         public void getExternalRequestAccessTest() {
1447                 ExternalSystemAccess expected = new ExternalSystemAccess("external_access_enable", false);
1448                 ExternalSystemAccess actual = userRolesCommonServiceImpl.getExternalRequestAccess();
1449                 assertEquals(expected, actual);
1450         }
1451
1452         @Test
1453         public void getEPUserAppListTest() {
1454                 EPApp mockApp = mockApp();
1455                 mockApp.setId(2l);
1456                 mockApp.setEnabled(true);
1457                 mockApp.setCentralAuth(false);
1458                 EPUser user = mockUser.mockEPUser();
1459                 List<EPUserApp> expected = new ArrayList<>();
1460                 EPUserApp epUserApp = new EPUserApp();
1461                 EPRole epRole = new EPRole();
1462                 epRole.setAppId(mockApp.getId());
1463                 epRole.setActive(true);
1464                 epRole.setId(10l);
1465                 epRole.setName("test1");
1466                 epUserApp.setApp(mockApp);
1467                 epUserApp.setRole(epRole);
1468                 epUserApp.setUserId(user.getId());
1469                 expected.add(epUserApp);
1470                 final Map<String, Long> params = new HashMap<>();
1471                 params.put("appId", mockApp.getId());
1472                 params.put("userId", user.getId());
1473                 params.put("roleId", epRole.getId());
1474                 Mockito.when(dataAccessService.executeNamedQuery("getUserRoleOnUserIdAndRoleIdAndAppId", params, null))
1475                                 .thenReturn(expected);
1476                 List<EPUserApp> actual = userRolesCommonServiceImpl.getEPUserAppList(mockApp.getId(), user.getId(),
1477                                 epRole.getId());
1478                 assertEquals(expected.size(), actual.size());
1479         }
1480
1481         @Test
1482         public void updateRemoteUserProfileTest() {
1483                 EPApp mockApp = mockApp();
1484                 EPApp mockApp2 = mockApp();
1485                 mockApp.setId(2l);
1486                 mockApp.setEnabled(true);
1487                 mockApp.setCentralAuth(false);
1488                 EPUser user = mockUser.mockEPUser();
1489                 List<EPApp> mockEpAppList = new ArrayList<>();
1490                 mockEpAppList.add(mockApp);
1491                 mockEpAppList.add(mockApp2);
1492                 Mockito.when(searchServiceImpl.searchUserByUserId(user.getOrgUserId())).thenReturn(user);
1493                 Mockito.when(epAppCommonServiceImpl.getUserRemoteApps(user.getId().toString())).thenReturn(mockEpAppList);
1494                 String expected = "success";
1495                 String actual = userRolesCommonServiceImpl.updateRemoteUserProfile(user.getOrgUserId(), mockApp.getId());
1496                 assertEquals(expected, actual);
1497         }
1498 }