diff options
Diffstat (limited to 'ecomp-portal-BE-common/src/test/java')
15 files changed, 3634 insertions, 209 deletions
diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppContactUsControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppContactUsControllerTest.java index 522ef7ca..e35d3266 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppContactUsControllerTest.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/AppContactUsControllerTest.java @@ -306,13 +306,13 @@ public class AppContactUsControllerTest extends MockitoTestSuite{ PortalRestResponse<String> expectedResponse = new PortalRestResponse<String>(); expectedResponse.setStatus(PortalRestStatusEnum.OK); expectedResponse.setMessage("success"); - expectedResponse.setResponse("\"ush_ticket_url\":\"http://todo_enter_ush_ticket_url\",\"portal_info_url\":\"https://todo_enter_portal_info_url\",\"feedback_email_address\":\"portal@lists.openecomp.org\""); + expectedResponse.setResponse("\"ush_ticket_url\":\"http://todo_enter_ush_ticket_url\",\"portal_info_url\":\"https://todo_enter_portal_info_url\",\"feedback_email_address\":\"portal@lists.onap.org\""); PowerMockito.mockStatic(SystemProperties.class); PowerMockito.mockStatic(EPCommonSystemProperties.class); Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USH_TICKET_URL)).thenReturn("http://todo_enter_ush_ticket_url"); Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.PORTAL_INFO_URL)).thenReturn("https://todo_enter_portal_info_url"); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS)).thenReturn("portal@lists.openecomp.org"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS)).thenReturn("portal@lists.onap.org"); actualResponse = appContactUsController.getPortalDetails(mockedRequest); assertTrue(actualResponse.getStatus().compareTo(PortalRestStatusEnum.OK) == 0); @@ -330,7 +330,7 @@ public class AppContactUsControllerTest extends MockitoTestSuite{ Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.USH_TICKET_URL)).thenThrow(nullPointerException); Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.PORTAL_INFO_URL)).thenReturn("https://todo_enter_portal_info_url"); - Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS)).thenReturn("portal@lists.openecomp.org"); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.FEEDBACK_EMAIL_ADDRESS)).thenReturn("portal@lists.onap.org"); actualResponse = appContactUsController.getPortalDetails(mockedRequest); assertEquals(actualResponse, expectedResponse); diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardControllerTest.java index 37f7f687..54671ad3 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardControllerTest.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/DashboardControllerTest.java @@ -242,7 +242,7 @@ public class DashboardControllerTest { expectedData.setStatus(PortalRestStatusEnum.ERROR); expectedData.setMessage("ERROR"); expectedData.setResponse("Category cannot be null or empty"); - + Mockito.when(adminRolesService.isSuperAdmin(Matchers.anyObject())).thenReturn(true); PortalRestResponse<String> actualResponse = dashboardController.saveWidgetData(commonWidget, mockedRequest, mockedResponse); assertEquals(expectedData,actualResponse); @@ -258,7 +258,7 @@ public class DashboardControllerTest { expectedData.setMessage("Invalid category: test"); expectedData.setResponse(null); Mockito.when(adminRolesService.isSuperAdmin(Matchers.anyObject())).thenReturn(true); - PortalRestResponse<String> actualResponse = dashboardController.saveWidgetData(commonWidget, mockedRequest, mockedResponse); + PortalRestResponse<String> actualResponse = dashboardController.saveWidgetData(commonWidget,mockedRequest, mockedResponse); assertEquals(expectedData,actualResponse); } diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserControllerTest.java index 205b2355..84db1496 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserControllerTest.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/UserControllerTest.java @@ -135,7 +135,7 @@ public class UserControllerTest extends MockitoTestSuite { @Test public void modifyLoggedinUserExceptionTest() { - EPUser epUser = null; + EPUser epUser =null; PortalRestResponse<String> expectedResponse = new PortalRestResponse<String>(); expectedResponse.setMessage("java.lang.NullPointerException"); expectedResponse.setResponse(null); diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/PopulateSampleTestData.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/PopulateSampleTestData.java index e3eeaa54..3a7d4f39 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/PopulateSampleTestData.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/PopulateSampleTestData.java @@ -36,7 +36,7 @@ package org.onap.portalapp.portal.core; * * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ -//package org.openecomp.portalapp.portal.core; +//package org.onap.portalapp.portal.core; // //import java.sql.Connection; //import java.sql.SQLException; @@ -45,7 +45,7 @@ package org.onap.portalapp.portal.core; // //import org.junit.Before; //import org.junit.Test; -//import org.openecomp.portalapp.framework.ApplicationCommonContextTestSuite; +//import org.onap.portalapp.framework.ApplicationCommonContextTestSuite; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.core.io.ClassPathResource; //import org.springframework.jdbc.datasource.DataSourceUtils; diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RemoveSampleTestData.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RemoveSampleTestData.java index 1fa6c7d1..2aedae69 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RemoveSampleTestData.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RemoveSampleTestData.java @@ -36,7 +36,7 @@ package org.onap.portalapp.portal.core; * * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ -//package org.openecomp.portalapp.portal.core; +//package org.onap.portalapp.portal.core; // //import java.sql.Connection; //import java.sql.SQLException; @@ -45,7 +45,7 @@ package org.onap.portalapp.portal.core; // //import org.junit.After; //import org.junit.Test; -//import org.openecomp.portalapp.framework.ApplicationCommonContextTestSuite; +//import org.onap.portalapp.framework.ApplicationCommonContextTestSuite; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.core.io.ClassPathResource; //import org.springframework.jdbc.datasource.DataSourceUtils; diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RestURLsTestSuite.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RestURLsTestSuite.java index 8bb21812..9c93790a 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RestURLsTestSuite.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/core/RestURLsTestSuite.java @@ -36,7 +36,7 @@ package org.onap.portalapp.portal.core; * * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ -//package org.openecomp.portalapp.portal.core; +//package org.onap.portalapp.portal.core; // //import static org.junit.Assert.assertEquals; //import static org.junit.Assert.assertTrue; @@ -47,12 +47,12 @@ package org.onap.portalapp.portal.core; // //import org.junit.Assert; //import org.junit.Test; -//import org.openecomp.portalapp.framework.ApplicationCommonContextTestSuite; -//import org.openecomp.portalapp.portal.domain.EPUser; -//import org.openecomp.portalapp.portal.test.core.MockEPUser; -//import org.openecomp.portalapp.portal.transport.AppNameIdIsAdmin; -//import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole; -//import org.openecomp.portalsdk.core.util.SystemProperties; +//import org.onap.portalapp.framework.ApplicationCommonContextTestSuite; +//import org.onap.portalapp.portal.domain.EPUser; +//import org.onap.portalapp.portal.test.core.MockEPUser; +//import org.onap.portalapp.portal.transport.AppNameIdIsAdmin; +//import org.onap.portalapp.portal.transport.AppsListWithAdminRole; +//import org.onap.portalsdk.core.util.SystemProperties; //import org.springframework.http.MediaType; //import org.springframework.test.web.servlet.ResultActions; //import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java index 2923eb2b..0b6a7e13 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPUserAppsManualSortPreferenceTest.java @@ -46,7 +46,7 @@ public class EPUserAppsManualSortPreferenceTest { public EPUserAppsManualSortPreference mockEPUserAppsManualSortPreference(){ EPUserAppsManualSortPreference epUserAppsManualSortPreference = new EPUserAppsManualSortPreference(); - epUserAppsManualSortPreference.setUserId(1); + epUserAppsManualSortPreference.setUserId(1l); epUserAppsManualSortPreference.setAppId((long)1); epUserAppsManualSortPreference.setAppManualSortOrder(1); @@ -58,7 +58,7 @@ public class EPUserAppsManualSortPreferenceTest { EPUserAppsManualSortPreference epUserAppsManualSortPreference = mockEPUserAppsManualSortPreference(); - assertEquals(epUserAppsManualSortPreference.getUserId(), 1); + assertEquals(epUserAppsManualSortPreference.getUserId(), new Long(1)); assertEquals(epUserAppsManualSortPreference.getAppId(), new Long(1)); assertEquals(epUserAppsManualSortPreference.getAppManualSortOrder(), 1); diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java index b4b4780d..5dbca6eb 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/domain/EPWidgetsManualSortPreferenceTest.java @@ -47,7 +47,7 @@ public class EPWidgetsManualSortPreferenceTest { public EPWidgetsManualSortPreference mockEPWidgetsManualSortPreference(){ EPWidgetsManualSortPreference epWidgetsManualSortPreference = new EPWidgetsManualSortPreference(); - epWidgetsManualSortPreference.setUserId(1); + epWidgetsManualSortPreference.setUserId(1l); epWidgetsManualSortPreference.setWidgetId((long)1); epWidgetsManualSortPreference.setWidgetRow(1); epWidgetsManualSortPreference.setWidgetCol(1); @@ -62,7 +62,7 @@ public class EPWidgetsManualSortPreferenceTest { EPWidgetsManualSortPreference epWidgetsManualSortPreference = mockEPWidgetsManualSortPreference(); assertEquals(epWidgetsManualSortPreference.getWidgetId(), new Long(1)); - assertEquals(epWidgetsManualSortPreference.getUserId(), 1); + assertEquals(epWidgetsManualSortPreference.getUserId(), new Long(1)); assertEquals(epWidgetsManualSortPreference.getWidgetRow(), 1); assertEquals(epWidgetsManualSortPreference.getWidgetCol(), 1); assertEquals(epWidgetsManualSortPreference.getWidgetHeight(), 1); diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/ApplicationCommonContextTestSuite.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/ApplicationCommonContextTestSuite.java index 764cebab..96c41729 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/ApplicationCommonContextTestSuite.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/framework/ApplicationCommonContextTestSuite.java @@ -36,20 +36,20 @@ package org.onap.portalapp.portal.framework; * * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ -//package org.openecomp.portalapp.portal.framework; +//package org.onap.portalapp.portal.framework; // //import java.io.IOException; // //import org.junit.Before; //import org.junit.runner.RunWith; -//import org.openecomp.portalsdk.core.conf.AppConfig; -////import org.openecomp.portalapp.conf.ExternalAppConfig; -////import org.openecomp.portalapp.conf.HibernateMappingLocations; -//import org.openecomp.portalsdk.core.conf.HibernateConfiguration; -//import org.openecomp.portalsdk.core.conf.HibernateMappingLocatable; -//import org.openecomp.portalsdk.core.objectcache.AbstractCacheManager; -//import org.openecomp.portalsdk.core.util.CacheManager; -//import org.openecomp.portalsdk.core.util.SystemProperties; +//import org.onap.portalsdk.core.conf.AppConfig; +////import org.onap.portalapp.conf.ExternalAppConfig; +////import org.onap.portalapp.conf.HibernateMappingLocations; +//import org.onap.portalsdk.core.conf.HibernateConfiguration; +//import org.onap.portalsdk.core.conf.HibernateMappingLocatable; +//import org.onap.portalsdk.core.objectcache.AbstractCacheManager; +//import org.onap.portalsdk.core.util.CacheManager; +//import org.onap.portalsdk.core.util.SystemProperties; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.ComponentScan; @@ -118,14 +118,14 @@ package org.onap.portalapp.portal.framework; //} // //@Configuration -//@ComponentScan(basePackages = "org.openecomp", excludeFilters = { +//@ComponentScan(basePackages = "org.onap", excludeFilters = { // // the following source configurations should not be scanned; instead of // // using Exclusion filter, we can use the @Profile annotation to exclude // // them -// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.openecomp.portalsdk.core.controller.LogoutController*"), -// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.openecomp.portalsdk.core.controller.SDKLoginController*"), -// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.openecomp.portalapp.conf.ExternalAppConfig*"), -// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.openecomp.*.*InitUebHandler*") }) +// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.onap.portalsdk.core.controller.LogoutController*"), +// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.onap.portalsdk.core.controller.SDKLoginController*"), +// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.onap.portalapp.conf.ExternalAppConfig*"), +// @ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.onap.*.*InitUebHandler*") }) //@Profile("test") //class MockAppConfig extends AppConfig { // @@ -185,7 +185,7 @@ package org.onap.portalapp.portal.framework; // } // // public String[] getPackagesToScan() { -// return new String[] { "org.openecomp", "src" }; +// return new String[] { "org.onap", "src" }; // } // //} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPAppCommonServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPAppCommonServiceImplTest.java new file mode 100644 index 00000000..3bfd7ec4 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPAppCommonServiceImplTest.java @@ -0,0 +1,815 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletResponse; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.AppIdAndNameTransportModel; +import org.onap.portalapp.portal.domain.AppsResponse; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserAppsManualSortPreference; +import org.onap.portalapp.portal.domain.EPUserAppsSortPreference; +import org.onap.portalapp.portal.domain.EPWidgetsManualSortPreference; +import org.onap.portalapp.portal.domain.EcompApp; +import org.onap.portalapp.portal.domain.UserRole; +import org.onap.portalapp.portal.domain.UserRoles; +import org.onap.portalapp.portal.transport.EPAppsSortPreference; +import org.onap.portalapp.portal.transport.EPDeleteAppsManualSortPref; +import org.onap.portalapp.portal.transport.EPWidgetsSortPreference; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.LocalRole; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.onap.portalapp.portal.ueb.EPUebHelper; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.onboarding.util.PortalApiConstants; +import org.onap.portalsdk.core.onboarding.util.PortalApiProperties; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import com.att.nsa.apiClient.credentials.ApiCredential; +import com.att.nsa.cambria.client.CambriaClientBuilders; +import com.att.nsa.cambria.client.CambriaIdentityManager; + +@RunWith(PowerMockRunner.class) +@PowerMockIgnore({ "org.apache.http.conn.ssl.*", "javax.net.ssl.*", "javax.crypto.*" }) +@PrepareForTest({ EcompPortalUtils.class, PortalApiProperties.class, PortalApiConstants.class, SystemProperties.class, + PortalConstants.class, EPCommonSystemProperties.class }) +public class EPAppCommonServiceImplTest { + + @Mock + DataAccessService dataAccessService = new DataAccessServiceImpl(); + + @Mock + AdminRolesServiceImpl adminRolesServiceImpl = new AdminRolesServiceImpl(); + + @Mock + EPUebHelper epUebHelper; + + @Mock + SessionFactory sessionFactory; + + @Mock + Session session; + + @Mock + Transaction transaction; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + Mockito.when(sessionFactory.openSession()).thenReturn(session); + Mockito.when(session.beginTransaction()).thenReturn(transaction); + } + + MockEPUser mockUser = new MockEPUser(); + + String ECOMP_APP_ID = "1"; + String SUPER_ADMIN_ROLE_ID = "1"; + String ACCOUNT_ADMIN_ROLE_ID = "999"; + String RESTRICTED_APP_ROLE_ID = "900"; + + @InjectMocks + EPAppCommonServiceImpl epAppCommonServiceImpl = new EPAppCommonServiceImpl(); + + public EPApp mockApp() { + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(false); + app.setEnabled(false); + app.setCentralAuth(true); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + return app; + } + + @Test + public void getUserAsAdminAppsTest() { + EPApp mockApp = mockApp(); + EPApp mockApp2 = mockApp(); + mockApp2.setId(2l); + EPUser user = mockUser.mockEPUser(); + List<EPApp> expected = new ArrayList<>(); + expected.add(mockApp); + expected.add(mockApp2); + String sql = "SELECT * FROM FN_APP join FN_USER_ROLE ON FN_USER_ROLE.APP_ID=FN_APP.APP_ID where " + + "FN_USER_ROLE.USER_ID=" + user.getId() + " AND FN_USER_ROLE.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND FN_APP.ENABLED = 'Y'"; + Mockito.when(dataAccessService.executeSQLQuery(sql, EPApp.class, null)).thenReturn(expected); + Mockito.when(adminRolesServiceImpl.isAccountAdmin(user)).thenReturn(true); + List<EPApp> actual = epAppCommonServiceImpl.getUserAsAdminApps(user); + assertEquals(expected, actual); + } + + @Test + public void getUserAsAdminAppsTestException() { + EPUser user = mockUser.mockEPUser(); + String sql = "SELECT * FROM FN_APP join FN_USER_ROLE ON FN_USER_ROLE.APP_ID=FN_APP.APP_ID where " + + "FN_USER_ROLE.USER_ID=" + user.getId() + " AND FN_USER_ROLE.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND FN_APP.ENABLED = 'Y'"; + Mockito.doThrow(new NullPointerException()).when(dataAccessService).executeSQLQuery(sql, EPApp.class, null); + Mockito.when(adminRolesServiceImpl.isAccountAdmin(user)).thenReturn(true); + List<EPApp> actual = epAppCommonServiceImpl.getUserAsAdminApps(user); + assertNull(actual); + } + + @Test + public void getUserByOrgUserIdAsAdminAppsTest() { + EPApp mockApp = mockApp(); + EPApp mockApp2 = mockApp(); + mockApp2.setId(2l); + EPUser user = mockUser.mockEPUser(); + List<EPApp> expected = new ArrayList<>(); + expected.add(mockApp); + expected.add(mockApp2); + String format = "SELECT * FROM FN_APP app INNER JOIN FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " + + "INNER JOIN FN_USER user on user.USER_ID = userrole.USER_ID " + + "WHERE user.org_user_id = '%s' AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND FN_APP.ENABLED = 'Y'"; + String sql = String.format(format, user.getOrgUserId()); + Mockito.when(dataAccessService.executeSQLQuery(sql, EPApp.class, null)).thenReturn(expected); + List<EPApp> actual = epAppCommonServiceImpl.getUserByOrgUserIdAsAdminApps(user.getOrgUserId()); + assertEquals(expected, actual); + } + + @Test + public void getUserByOrgUserIdAsAdminAppsTestException() { + EPUser user = mockUser.mockEPUser(); + String format = "SELECT * FROM FN_APP app INNER JOIN FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " + + "INNER JOIN FN_USER user on user.USER_ID = userrole.USER_ID " + + "WHERE user.org_user_id = '%s' AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND FN_APP.ENABLED = 'Y'"; + String sql = String.format(format, user.getOrgUserId()); + Mockito.doThrow(new NullPointerException()).when(dataAccessService).executeSQLQuery(sql, EPApp.class, null); + List<EPApp> actual = epAppCommonServiceImpl.getUserByOrgUserIdAsAdminApps(user.getOrgUserId()); + assertNull(actual); + } + + @SuppressWarnings("deprecation") + @Test + public void getAppsFullListTest() { + EPApp mockApp = mockApp(); + EPApp mockApp2 = mockApp(); + mockApp2.setId(2l); + List<EPApp> expected = new ArrayList<>(); + expected.add(mockApp); + expected.add(mockApp2); + Mockito.when(dataAccessService.getList(EPApp.class, null)).thenReturn(expected); + List<EPApp> actual = epAppCommonServiceImpl.getAppsFullList(); + assertEquals(expected, actual); + + } + + @Test + public void getEcompAppAppsFullListTest() { + List<EcompApp> expected = new ArrayList<>(); + List<EcompApp> actual = epAppCommonServiceImpl.getEcompAppAppsFullList(); + assertEquals(expected, actual); + } + + @Test + public void transformAppsToEcompAppsTest() { + EPApp mockApp = mockApp(); + EPApp mockApp2 = mockApp(); + mockApp2.setId(2l); + List<EPApp> epAppsList = new ArrayList<>(); + epAppsList.add(mockApp); + epAppsList.add(mockApp2); + List<EcompApp> expected = new ArrayList<>(); + EcompApp ecompApp = new EcompApp(); + ecompApp.setName("test1"); + EcompApp ecompApp2 = new EcompApp(); + ecompApp2.setName("test2"); + expected.add(ecompApp); + expected.add(ecompApp2); + List<EcompApp> actual = epAppCommonServiceImpl.transformAppsToEcompApps(epAppsList); + assertEquals(expected.size(), actual.size()); + } + + @SuppressWarnings({ "unchecked", "deprecation" }) + @Test + public void getAllAppsForAllTest() { + EPApp mockApp = mockApp(); + EPApp mockApp2 = mockApp(); + mockApp2.setId(2l); + List<EPApp> appsList = new ArrayList<>(); + appsList.add(mockApp); + appsList.add(mockApp2); + List<AppsResponse> expected = new ArrayList<>(); + AppsResponse appResponse1 = new AppsResponse(mockApp.getId(), mockApp.getName(), mockApp.isRestrictedApp(), + mockApp.getEnabled()); + AppsResponse appResponse2 = new AppsResponse(mockApp2.getId(), mockApp2.getName(), mockApp2.isRestrictedApp(), + mockApp2.getEnabled()); + expected.add(appResponse1); + expected.add(appResponse2); + Mockito.when((List<EPApp>) dataAccessService.getList(EPApp.class, " where id != " + ECOMP_APP_ID, "name", null)) + .thenReturn(appsList); + List<AppsResponse> actual = epAppCommonServiceImpl.getAllApps(true); + assertEquals(expected.size(), actual.size()); + } + + @SuppressWarnings({ "unchecked", "deprecation" }) + @Test + public void getAllAppsIsNotAllTest() { + EPApp mockApp = mockApp(); + EPApp mockApp2 = mockApp(); + mockApp2.setId(2l); + List<EPApp> appsList = new ArrayList<>(); + appsList.add(mockApp); + appsList.add(mockApp2); + List<AppsResponse> expected = new ArrayList<>(); + AppsResponse appResponse1 = new AppsResponse(mockApp.getId(), mockApp.getName(), mockApp.isRestrictedApp(), + mockApp.getEnabled()); + AppsResponse appResponse2 = new AppsResponse(mockApp2.getId(), mockApp2.getName(), mockApp2.isRestrictedApp(), + mockApp2.getEnabled()); + expected.add(appResponse1); + expected.add(appResponse2); + Mockito.when((List<EPApp>) dataAccessService.getList(EPApp.class, + " where ( enabled = 'Y' or id = " + ECOMP_APP_ID + ")", "name", null)).thenReturn(appsList); + List<AppsResponse> actual = epAppCommonServiceImpl.getAllApps(false); + assertEquals(expected.size(), actual.size()); + } + + @Test + public void getAppTest() { + EPApp expected = mockApp(); + Mockito.when((EPApp) dataAccessService.getDomainObject(EPApp.class, expected.getId(), null)) + .thenReturn(expected); + EPApp actual = epAppCommonServiceImpl.getApp(expected.getId()); + assertEquals(expected, actual); + } + + @Test + public void getAppExceptionTest() { + EPApp expected = mockApp(); + Mockito.doThrow(new NullPointerException()).when(dataAccessService).getDomainObject(EPApp.class, + expected.getId(), null); + EPApp actual = epAppCommonServiceImpl.getApp(expected.getId()); + assertNull(actual); + } + + @SuppressWarnings("unchecked") + @Test + public void getAppDetailTest() { + EPApp expected = mockApp(); + List<EPApp> appList = new ArrayList<>(); + appList.add(expected); + final Map<String, String> params = new HashMap<String, String>(); + params.put("appName", expected.getName()); + Mockito.when((List<EPApp>) dataAccessService.executeNamedQuery("getMyloginAppDetails", params, null)) + .thenReturn(appList); + EPApp actual = epAppCommonServiceImpl.getAppDetail(expected.getName()); + assertEquals(expected, actual); + } + + @Test + public void getAppDetailExceptionTest() { + EPApp expected = mockApp(); + List<EPApp> appList = new ArrayList<>(); + appList.add(expected); + final Map<String, String> params = new HashMap<String, String>(); + params.put("appName", expected.getName()); + Mockito.doThrow(new NullPointerException()).when(dataAccessService).executeNamedQuery("getMyloginAppDetails", + params, null); + EPApp actual = epAppCommonServiceImpl.getAppDetail(expected.getName()); + assertNull(actual); + } + + @Test + public void getUserProfile() { + EPUser user = mockUser.mockEPUser(); + final Map<String, String> params = new HashMap<>(); + params.put("org_user_id", user.getOrgUserId()); + List<UserRole> userRoleList = new ArrayList<>(); + UserRole userRole = new UserRole(); + userRole.setFirstName("GuestT"); + userRole.setLastName("GuestT"); + userRole.setOrgUserId("guestT"); + userRole.setRoleId(1l); + userRole.setRoleName("Test"); + userRole.setUser_Id(-1l); + userRoleList.add(userRole); + UserRoles expected = new UserRoles(userRole); + Mockito.when(dataAccessService.executeNamedQuery("getUserRoles", params, null)).thenReturn(userRoleList); + UserRoles actual = epAppCommonServiceImpl.getUserProfile(user.getOrgUserId()); + assertEquals(expected.getOrgUserId(), actual.getOrgUserId()); + } + + @Test + public void getUserProfileNullTest() { + EPUser user = mockUser.mockEPUser(); + final Map<String, String> params = new HashMap<>(); + params.put("org_user_id", user.getOrgUserId()); + List<UserRole> userRoleList = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getUserRoles", params, null)).thenReturn(userRoleList); + UserRoles actual = epAppCommonServiceImpl.getUserProfile(user.getOrgUserId()); + assertNull(actual); + } + + @Test + public void getUserProfileNormalizedTest() { + EPUser user = mockUser.mockEPUser(); + user.setGuest(true); + user.setLoginId("guestT"); + final Map<String, String> params = new HashMap<>(); + params.put("org_user_id", user.getOrgUserId()); + List<UserRole> userRoleList = new ArrayList<>(); + UserRole userRole = new UserRole(); + userRole.setFirstName("GuestT"); + userRole.setLastName("GuestT"); + userRole.setOrgUserId("guestT"); + userRole.setRoleId(1l); + userRole.setRoleName("Test"); + userRole.setUser_Id(-1l); + userRoleList.add(userRole); + UserRoles expected = new UserRoles(userRole); + Mockito.when(dataAccessService.executeNamedQuery("getUserRoles", params, null)).thenReturn(userRoleList); + UserRoles actual = epAppCommonServiceImpl.getUserProfileNormalized(user); + assertEquals(expected.getOrgUserId(), actual.getOrgUserId()); + } + + @Test + public void getRestrictedAppRolesTest() { + EPUser user = mockUser.mockEPUser(); + EPApp mockApp = mockApp(); + mockApp.setRestrictedApp(true); + user.setLoginId("guestT"); + List<LocalRole> expected = new ArrayList<>(); + LocalRole localRole = new LocalRole(); + localRole.setRoleId(1); + localRole.setRolename("test1"); + expected.add(localRole); + String sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND ROLE_ID = '" + + RESTRICTED_APP_ROLE_ID + "'"; + Mockito.when(dataAccessService.executeSQLQuery(sql, LocalRole.class, null)).thenReturn(expected); + Mockito.when((EPApp) dataAccessService.getDomainObject(EPApp.class, mockApp.getId(), null)).thenReturn(mockApp); + List<LocalRole> actual = epAppCommonServiceImpl.getAppRoles(mockApp.getId()); + assertEquals(expected, actual); + } + + @Test + public void getPoralAppRolesTest() { + EPUser user = mockUser.mockEPUser(); + EPApp mockApp = mockApp(); + mockApp.setRestrictedApp(false); + mockApp.setId(1l); + user.setLoginId("guestT"); + List<LocalRole> expected = new ArrayList<>(); + LocalRole localRole = new LocalRole(); + localRole.setRoleId(1); + localRole.setRolename("test1"); + expected.add(localRole); + String sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND APP_ID IS NULL"; + Mockito.when(dataAccessService.executeSQLQuery(sql, LocalRole.class, null)).thenReturn(expected); + Mockito.when((EPApp) dataAccessService.getDomainObject(EPApp.class, mockApp.getId(), null)).thenReturn(mockApp); + List<LocalRole> actual = epAppCommonServiceImpl.getAppRoles(mockApp.getId()); + assertEquals(expected, actual); + } + + @Test + public void getNonPortalAndNonRestrictedAppRolesTest() { + EPUser user = mockUser.mockEPUser(); + EPApp mockApp = mockApp(); + mockApp.setRestrictedApp(false); + mockApp.setId(2l); + user.setLoginId("guestT"); + List<LocalRole> expected = new ArrayList<>(); + LocalRole localRole = new LocalRole(); + localRole.setRoleId(1); + localRole.setRolename("test1"); + expected.add(localRole); + String sql = "SELECT ROLE_ID, ROLE_NAME from FN_ROLE where UPPER(ACTIVE_YN) = 'Y' AND APP_ID = '" + + mockApp.getId() + "'"; + Mockito.when(dataAccessService.executeSQLQuery(sql, LocalRole.class, null)).thenReturn(expected); + Mockito.when((EPApp) dataAccessService.getDomainObject(EPApp.class, mockApp.getId(), null)).thenReturn(mockApp); + List<LocalRole> actual = epAppCommonServiceImpl.getAppRoles(mockApp.getId()); + assertEquals(expected, actual); + } + + @Test + public void getAdminAppsTest() { + EPUser user = mockUser.mockEPUser(); + user.setId(1l); + List<AppIdAndNameTransportModel> expected = new ArrayList<>(); + AppIdAndNameTransportModel appIdAndNameTransportModel = new AppIdAndNameTransportModel(); + appIdAndNameTransportModel.setId(1l); + appIdAndNameTransportModel.setName("test1"); + expected.add(appIdAndNameTransportModel); + Mockito.when(adminRolesServiceImpl.isAccountAdmin(user)).thenReturn(true); + String format = "SELECT app.APP_ID, app.APP_NAME, app.APP_TYPE FROM FN_APP app inner join FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " + + "where userrole.USER_ID = %d AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND (app.ENABLED = 'Y' OR app.APP_ID=1)"; + String sql = String.format(format, user.getId()); + Mockito.when(dataAccessService.executeSQLQuery(sql, AppIdAndNameTransportModel.class, null)) + .thenReturn(expected); + List<AppIdAndNameTransportModel> actual = epAppCommonServiceImpl.getAdminApps(user); + assertEquals(expected, actual); + } + + @Test + public void getAdminAppsExceptionTest() { + EPUser user = mockUser.mockEPUser(); + user.setId(1l); + List<AppIdAndNameTransportModel> expected = new ArrayList<>(); + Mockito.when(adminRolesServiceImpl.isAccountAdmin(user)).thenReturn(true); + String format = "SELECT app.APP_ID, app.APP_NAME, app.APP_TYPE FROM FN_APP app inner join FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID " + + "where userrole.USER_ID = %d AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID + + " AND (app.ENABLED = 'Y' OR app.APP_ID=1)"; + String sql = String.format(format, user.getId()); + Mockito.doThrow(new NullPointerException()).when(dataAccessService).executeSQLQuery(sql, + AppIdAndNameTransportModel.class, null); + List<AppIdAndNameTransportModel> actual = epAppCommonServiceImpl.getAdminApps(user); + assertEquals(expected, actual); + } + + @SuppressWarnings("unchecked") + @Test + public void addOnboardingAppUnKnownHostExceptionTest() throws Exception { + PowerMockito.mockStatic(PortalApiConstants.class); + PowerMockito.mockStatic(PortalApiProperties.class); + EPUser user = mockUser.mockEPUser(); + List<EPApp> mockAppList = new ArrayList<>(); + OnboardingApp onboardApp = new OnboardingApp(); + onboardApp.setRestrictedApp(false); + onboardApp.name = "test1"; + onboardApp.url = "http://test.com"; + onboardApp.isOpen = false; + onboardApp.isEnabled = true; + onboardApp.username = "test123"; + onboardApp.appPassword = "test123"; + List<Criterion> restrictionsList = new ArrayList<Criterion>(); + Criterion urlCrit = Restrictions.eq("url", onboardApp.url); + Criterion nameCrit = Restrictions.eq("name", onboardApp.name); + Criterion orCrit = Restrictions.or(urlCrit, nameCrit); + restrictionsList.add(orCrit); + List<String> uebList = new ArrayList<>(); + uebList.add("localhost"); + com.att.nsa.apiClient.credentials.ApiCredential apiCredential = new ApiCredential(user.getEmail(), + "ECOMP Portal Owner"); + CambriaIdentityManager mockIm = Mockito + .spy(new CambriaClientBuilders.IdentityManagerBuilder().usingHosts(uebList).build()); + Mockito.doReturn(apiCredential).when(mockIm).createApiKey(user.getEmail(), "ECOMP Portal Owner"); + Mockito.when(PortalApiProperties.getProperty(PortalApiConstants.UEB_URL_LIST)).thenReturn("localhost"); + Mockito.when((List<EPApp>) dataAccessService.getList(EPApp.class, null, restrictionsList, null)) + .thenReturn(mockAppList); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)); + FieldsValidator actual = epAppCommonServiceImpl.addOnboardingApp(onboardApp, user); + assertEquals(expected, actual); + } + + @SuppressWarnings("unchecked") + @Test + public void modifyOnboardingAppTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + EPApp mockApp = mockApp(); + mockApp.setName("test1"); + mockApp.setId(2l); + mockApp.setUrl("http://test.com"); + mockApp.setUsername("test123"); + mockApp.setAppPassword("test123"); + mockApp.setRestrictedApp(false); + mockApp.setEnabled(true); + mockApp.setOpen(false); + List<EPApp> mockAppList = new ArrayList<>(); + mockAppList.add(mockApp); + OnboardingApp onboardApp = new OnboardingApp(); + onboardApp.setRestrictedApp(false); + onboardApp.name = "test1"; + onboardApp.id = 2l; + onboardApp.url = "http://test.com"; + onboardApp.isOpen = false; + onboardApp.isEnabled = true; + onboardApp.thumbnail = "test123imgthumbnail"; + onboardApp.username = "test123"; + onboardApp.appPassword = "test123"; + List<Criterion> restrictionsList1 = new ArrayList<Criterion>(); + Criterion idCrit = Restrictions.eq("id", onboardApp.id); + Criterion urlCrit = Restrictions.eq("url", onboardApp.url); + Criterion nameCrit = Restrictions.eq("name", onboardApp.name); + Criterion orCrit = Restrictions.or(idCrit, urlCrit, nameCrit); + restrictionsList1.add(orCrit); + Mockito.when((List<EPApp>) dataAccessService.getList(EPApp.class, null, restrictionsList1, null)) + .thenReturn(mockAppList); + Mockito.when((EPApp) session.get(EPApp.class, onboardApp.id)).thenReturn(mockApp); + String sql = "SELECT m.menu_id, m.column_num, m.text, m.parent_menu_id, m.url, m.active_yn " + + "FROM fn_menu_functional m, fn_menu_functional_roles r " + "WHERE m.menu_id = r.menu_id " + + " AND r.app_id = '" + onboardApp.id + "' "; + List<Integer> roles = new ArrayList<>(); + roles.add(1); + roles.add(2); + List<FunctionalMenuItem> menuItems = new ArrayList<>(); + FunctionalMenuItem functionalMenuItem = new FunctionalMenuItem(); + functionalMenuItem.setRestrictedApp(false); + functionalMenuItem.setUrl("http://test1.com"); + functionalMenuItem.setRoles(roles); + menuItems.add(functionalMenuItem); + Mockito.when(dataAccessService.executeSQLQuery(sql, FunctionalMenuItem.class, null)).thenReturn(menuItems); + Mockito.when((FunctionalMenuItem) session.get(FunctionalMenuItem.class, functionalMenuItem.menuId)) + .thenReturn(functionalMenuItem); + Mockito.doNothing().when(epUebHelper).addPublisher(mockApp); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK)); + FieldsValidator actual = epAppCommonServiceImpl.modifyOnboardingApp(onboardApp, user); + assertEquals(expected, actual); + } + + @Test + public void saveWidgetsSortManualTest() { + EPUser user = mockUser.mockEPUser(); + List<EPWidgetsManualSortPreference> mockEPManualWidgets = new ArrayList<>(); + EPWidgetsManualSortPreference epWidgetsManualSortPreference = new EPWidgetsManualSortPreference(); + epWidgetsManualSortPreference.setUserId(user.getId()); + epWidgetsManualSortPreference.setWidgetCol(1); + epWidgetsManualSortPreference.setWidgetHeight(1); + epWidgetsManualSortPreference.setWidgetId(1l); + epWidgetsManualSortPreference.setWidgetRow(1); + epWidgetsManualSortPreference.setWidgetWidth(1); + mockEPManualWidgets.add(epWidgetsManualSortPreference); + final Map<String, Long> params = new HashMap<>(); + params.put("userId", user.getId()); + Mockito.when(dataAccessService.executeNamedQuery("userWidgetManualSortPrfQuery", params, null)) + .thenReturn(mockEPManualWidgets); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK)); + List<EPWidgetsSortPreference> epWidgetsSortPreferenceList = new ArrayList<>(); + EPWidgetsSortPreference mockEPWidgetsSortPreference = new EPWidgetsSortPreference(); + mockEPWidgetsSortPreference.setRow(2); + mockEPWidgetsSortPreference.setHeaderText("test"); + mockEPWidgetsSortPreference.setSizeX(2); + mockEPWidgetsSortPreference.setSizeY(2); + mockEPWidgetsSortPreference.setWidgetid(2l); + mockEPWidgetsSortPreference.setWidgetIdentifier("test"); + mockEPWidgetsSortPreference.setCol(2); + epWidgetsSortPreferenceList.add(mockEPWidgetsSortPreference); + FieldsValidator actual = epAppCommonServiceImpl.saveWidgetsSortManual(epWidgetsSortPreferenceList, user); + assertEquals(expected, actual); + } + + @Test + public void saveWidgetsSortManualExistingRecordTest() { + EPUser user = mockUser.mockEPUser(); + List<EPWidgetsManualSortPreference> mockEPManualWidgets = new ArrayList<>(); + EPWidgetsManualSortPreference epWidgetsManualSortPreference = new EPWidgetsManualSortPreference(); + epWidgetsManualSortPreference.setUserId(user.getId()); + epWidgetsManualSortPreference.setWidgetCol(1); + epWidgetsManualSortPreference.setWidgetHeight(1); + epWidgetsManualSortPreference.setWidgetId(2l); + epWidgetsManualSortPreference.setWidgetRow(1); + epWidgetsManualSortPreference.setWidgetWidth(1); + mockEPManualWidgets.add(epWidgetsManualSortPreference); + final Map<String, Long> params = new HashMap<>(); + params.put("userId", user.getId()); + Mockito.when(dataAccessService.executeNamedQuery("userWidgetManualSortPrfQuery", params, null)) + .thenReturn(mockEPManualWidgets); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK)); + List<EPWidgetsSortPreference> epWidgetsSortPreferenceList = new ArrayList<>(); + EPWidgetsSortPreference mockEPWidgetsSortPreference = new EPWidgetsSortPreference(); + mockEPWidgetsSortPreference.setRow(2); + mockEPWidgetsSortPreference.setHeaderText("test"); + mockEPWidgetsSortPreference.setSizeX(2); + mockEPWidgetsSortPreference.setSizeY(2); + mockEPWidgetsSortPreference.setWidgetid(2l); + mockEPWidgetsSortPreference.setWidgetIdentifier("test"); + mockEPWidgetsSortPreference.setCol(2); + epWidgetsSortPreferenceList.add(mockEPWidgetsSortPreference); + FieldsValidator actual = epAppCommonServiceImpl.saveWidgetsSortManual(epWidgetsSortPreferenceList, user); + assertEquals(expected, actual); + } + + @Test + public void deleteUserWidgetSortPrefTest() { + EPUser user = mockUser.mockEPUser(); + List<EPWidgetsManualSortPreference> mockEPManualWidgets = new ArrayList<>(); + EPWidgetsManualSortPreference epWidgetsManualSortPreference = new EPWidgetsManualSortPreference(); + epWidgetsManualSortPreference.setUserId(user.getId()); + epWidgetsManualSortPreference.setWidgetCol(1); + epWidgetsManualSortPreference.setWidgetHeight(1); + epWidgetsManualSortPreference.setWidgetId(2l); + epWidgetsManualSortPreference.setWidgetRow(1); + epWidgetsManualSortPreference.setWidgetWidth(1); + mockEPManualWidgets.add(epWidgetsManualSortPreference); + final Map<String, Long> params = new HashMap<>(); + params.put("userId", user.getId()); + Mockito.when(dataAccessService.executeNamedQuery("userWidgetManualSortPrfQuery", params, null)) + .thenReturn(mockEPManualWidgets); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK)); + List<EPWidgetsSortPreference> epWidgetsSortPreferenceList = new ArrayList<>(); + EPWidgetsSortPreference mockEPWidgetsSortPreference = new EPWidgetsSortPreference(); + mockEPWidgetsSortPreference.setRow(2); + mockEPWidgetsSortPreference.setHeaderText("test"); + mockEPWidgetsSortPreference.setSizeX(2); + mockEPWidgetsSortPreference.setSizeY(2); + mockEPWidgetsSortPreference.setWidgetid(2l); + mockEPWidgetsSortPreference.setWidgetIdentifier("test"); + mockEPWidgetsSortPreference.setCol(2); + epWidgetsSortPreferenceList.add(mockEPWidgetsSortPreference); + FieldsValidator actual = epAppCommonServiceImpl.deleteUserWidgetSortPref(epWidgetsSortPreferenceList, user); + assertEquals(expected, actual); + } + + @Test + public void saveAppsSortPreferenceForNewUserTest() { + EPUser user = mockUser.mockEPUser(); + List<EPUserAppsSortPreference> mockEPAppSortPrefList = new ArrayList<>(); + final Map<String, Long> params = new HashMap<>(); + params.put("userId", user.getId()); + Mockito.when(dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null)) + .thenReturn(mockEPAppSortPrefList); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK)); + EPAppsSortPreference mockEPAppsSortPreference = new EPAppsSortPreference(); + mockEPAppsSortPreference.setIndex(1); + mockEPAppsSortPreference.setTitle("Last Used"); + mockEPAppsSortPreference.setValue("L"); + FieldsValidator actual = epAppCommonServiceImpl.saveAppsSortPreference(mockEPAppsSortPreference, user); + assertEquals(expected, actual); + } + + @Test + public void saveAppsSortPreferenceUpdateTest() { + EPUser user = mockUser.mockEPUser(); + List<EPUserAppsSortPreference> mockEPAppSortPrefList = new ArrayList<>(); + EPUserAppsSortPreference mockEPAppSortPref = new EPUserAppsSortPreference(); + mockEPAppSortPref.setSortPref("L"); + mockEPAppSortPref.setId(2l); + mockEPAppSortPref.setUserId((int) (long) user.getId()); + mockEPAppSortPrefList.add(mockEPAppSortPref); + final Map<String, Long> params = new HashMap<>(); + params.put("userId", user.getId()); + Mockito.when(dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null)) + .thenReturn(mockEPAppSortPrefList); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK)); + EPAppsSortPreference mockEPAppsSortPreference = new EPAppsSortPreference(); + mockEPAppsSortPreference.setIndex(1); + mockEPAppsSortPreference.setTitle("Last Used"); + mockEPAppsSortPreference.setValue("L"); + FieldsValidator actual = epAppCommonServiceImpl.saveAppsSortPreference(mockEPAppsSortPreference, user); + assertEquals(expected, actual); + } + + @Test + public void getUserAppsSortTypePreferenceTest() { + EPUser user = mockUser.mockEPUser(); + final Map<String, Long> params = new HashMap<>(); + List<EPUserAppsSortPreference> mockEPAppSortPrefList = new ArrayList<>(); + EPUserAppsSortPreference mockEPAppSortPref = new EPUserAppsSortPreference(); + mockEPAppSortPref.setSortPref("L"); + mockEPAppSortPref.setId(2l); + mockEPAppSortPref.setUserId((int) (long) user.getId()); + mockEPAppSortPrefList.add(mockEPAppSortPref); + params.put("userId", user.getId()); + Mockito.when(dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null)) + .thenReturn(mockEPAppSortPrefList); + String actual = epAppCommonServiceImpl.getUserAppsSortTypePreference(user); + assertEquals(mockEPAppSortPref.getSortPref(), actual); + } + + @Test + public void getUserAppsSortTypePreferenceExceptionTest() { + EPUser user = mockUser.mockEPUser(); + final Map<String, Long> params = new HashMap<>(); + List<EPUserAppsSortPreference> mockEPAppSortPrefList = new ArrayList<>(); + EPUserAppsSortPreference mockEPAppSortPref = new EPUserAppsSortPreference(); + mockEPAppSortPref.setSortPref("L"); + mockEPAppSortPref.setId(2l); + mockEPAppSortPref.setUserId((int) (long) user.getId()); + mockEPAppSortPrefList.add(mockEPAppSortPref); + params.put("userId", user.getId()); + Mockito.doThrow(new NullPointerException()).when(dataAccessService) + .executeNamedQuery("userAppsSortPreferenceQuery", params, null); + String actual = epAppCommonServiceImpl.getUserAppsSortTypePreference(user); + assertNull(actual); + } + + @Test + public void deleteUserAppSortManualTest() { + EPUser user = mockUser.mockEPUser(); + EPApp mockApp = mockApp(); + mockApp.setId(1l); + final Map<String, Long> params = new HashMap<>(); + List<EPUserAppsManualSortPreference> epManualApps = new ArrayList<EPUserAppsManualSortPreference>(); + EPUserAppsManualSortPreference epManualApp = new EPUserAppsManualSortPreference(); + epManualApp.setAppId(mockApp.getId()); + epManualApp.setAppManualSortOrder(1); + epManualApp.setId(1l); + epManualApp.setUserId(user.getId()); + epManualApps.add(epManualApp); + params.put("userId", user.getId()); + Mockito.when(dataAccessService.executeNamedQuery("userAppsManualSortPrfQuery", params, null)).thenReturn(epManualApps); + EPDeleteAppsManualSortPref delAppSortManual = new EPDeleteAppsManualSortPref(); + delAppSortManual.setAppId(mockApp.getId()); + delAppSortManual.setPending(false); + delAppSortManual.setSelect(false); + FieldsValidator actual = epAppCommonServiceImpl.deleteUserAppSortManual(delAppSortManual, user); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(200l); + assertEquals(expected, actual); + } + + @Test + public void deleteUserAppSortManualExceptionTest() { + EPUser user = mockUser.mockEPUser(); + EPApp mockApp = mockApp(); + mockApp.setId(1l); + final Map<String, Long> params = new HashMap<>(); + List<EPUserAppsManualSortPreference> epManualApps = new ArrayList<EPUserAppsManualSortPreference>(); + EPUserAppsManualSortPreference epManualApp = new EPUserAppsManualSortPreference(); + epManualApp.setAppId(mockApp.getId()); + epManualApp.setAppManualSortOrder(1); + epManualApp.setId(1l); + epManualApp.setUserId(user.getId()); + epManualApps.add(epManualApp); + params.put("userId", user.getId()); + Mockito.doThrow(new NullPointerException()).when(dataAccessService).executeNamedQuery("userAppsManualSortPrfQuery", params, null); + EPDeleteAppsManualSortPref delAppSortManual = new EPDeleteAppsManualSortPref(); + delAppSortManual.setAppId(mockApp.getId()); + delAppSortManual.setPending(false); + delAppSortManual.setSelect(false); + FieldsValidator actual = epAppCommonServiceImpl.deleteUserAppSortManual(delAppSortManual, user); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(500l); + assertEquals(expected, actual); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java index 66cfdd31..0fe5a2c6 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java @@ -45,10 +45,18 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.SortedSet; +import java.util.TreeSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.hibernate.SQLQuery; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.json.JSONObject; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -64,11 +72,19 @@ import org.onap.portalapp.portal.domain.EPAppRoleFunction; import org.onap.portalapp.portal.domain.EPRole; import org.onap.portalapp.portal.domain.EPUser; import org.onap.portalapp.portal.exceptions.InactiveApplicationException; +import org.onap.portalapp.portal.exceptions.InvalidUserException; import org.onap.portalapp.portal.framework.MockitoTestSuite; +import org.onap.portalapp.portal.transport.BulkUploadUserRoles; +import org.onap.portalapp.portal.transport.CentralV2Role; import org.onap.portalapp.portal.transport.EcompUserRoles; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalapp.portal.transport.GlobalRoleWithApplicationRoleFunction; +import org.onap.portalapp.portal.transport.LocalRole; import org.onap.portalapp.portal.utils.EPCommonSystemProperties; import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.domain.RoleFunction; import org.onap.portalsdk.core.restful.domain.EcompUser; import org.onap.portalsdk.core.service.DataAccessService; import org.onap.portalsdk.core.service.DataAccessServiceImpl; @@ -88,7 +104,7 @@ import org.springframework.web.client.RestTemplate; @PrepareForTest({ EcompPortalUtils.class, SystemProperties.class, EPCommonSystemProperties.class }) public class ExternalAccessRolesServiceImplTest { @Mock - DataAccessService dataAccessService1 = new DataAccessServiceImpl(); + DataAccessService dataAccessService = new DataAccessServiceImpl(); @Mock RestTemplate template = new RestTemplate(); @@ -96,10 +112,73 @@ public class ExternalAccessRolesServiceImplTest { @InjectMocks ExternalAccessRolesServiceImpl externalAccessRolesServiceImpl = new ExternalAccessRolesServiceImpl(); + @Mock + EPAppCommonServiceImpl epAppCommonServiceImpl = new EPAppCommonServiceImpl(); + + @Mock + SessionFactory sessionFactory; + + @Mock + Session session; + + @Mock + Transaction transaction; + @Before public void setup() { MockitoAnnotations.initMocks(this); + Mockito.when(sessionFactory.openSession()).thenReturn(session); + Mockito.when(session.beginTransaction()).thenReturn(transaction); } + + @After + public void after() { + session.close(); + } + + private static final String APP_ROLE_NAME_PARAM = "appRoleName"; + + private static final String GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM = "getRoletoUpdateInExternalAuthSystem"; + + private static final String GET_PORTAL_APP_ROLES_QUERY = "getPortalAppRoles"; + + private static final String GET_ROLE_FUNCTION_QUERY = "getRoleFunction"; + + private static final String FUNCTION_CODE_PARAMS = "functionCode"; + + private static final String AND_FUNCTION_CD_EQUALS = " and function_cd = '"; + + private static final String OWNER = ".owner"; + + private static final String ADMIN = ".admin"; + + private static final String ACCOUNT_ADMINISTRATOR = ".Account_Administrator"; + + private static final String FUNCTION_PIPE = "|"; + + private static final String IS_NULL_STRING = "null"; + + private static final String EXTERNAL_AUTH_PERMS = "perms"; + + private static final String EXTERNAL_AUTH_ROLE_DESCRIPTION = "description"; + + private static final String IS_EMPTY_JSON_STRING = "{}"; + + private static final String CONNECTING_TO_EXTERNAL_AUTH_SYSTEM_LOG_MESSAGE = "Connecting to External Auth system"; + + private static final String APP_ROLE_ID = "appRoleId"; + + private static final String APP_ID = "appId"; + + private static final String PRIORITY = "priority"; + + private static final String ACTIVE = "active"; + + private static final String ROLE_NAME = "name"; + + private static final String ID = "id"; + + private static final String APP_ID_EQUALS = " app_id = "; MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); @@ -113,6 +192,8 @@ public class ExternalAccessRolesServiceImplTest { EPApp app = new EPApp(); app.setName("Test"); app.setImageUrl("test"); + app.setNameSpace("com.test.app"); + app.setCentralAuth(true); app.setDescription("test"); app.setNotes("test"); app.setUrl("test"); @@ -125,7 +206,7 @@ public class ExternalAccessRolesServiceImplTest { app.setUsername("test"); app.setAppPassword("test"); app.setOpen(false); - app.setEnabled(false); + app.setEnabled(true); app.setUebKey("test"); app.setUebSecret("test"); app.setUebTopicName("test"); @@ -133,38 +214,29 @@ public class ExternalAccessRolesServiceImplTest { return app; } + @SuppressWarnings("deprecation") @Test public void getAppRolesIfAppIsPortalTest() throws Exception { List<EPRole> applicationRoles = new ArrayList<>(); - Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); + Mockito.when(dataAccessService.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); List<EPRole> expectedApplicationRoles = externalAccessRolesServiceImpl.getAppRoles((long) 1); assertEquals(expectedApplicationRoles, applicationRoles); } + @SuppressWarnings("deprecation") @Test public void getAppRolesTest() throws Exception { List<EPRole> applicationRoles = new ArrayList<>(); - Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); + Mockito.when(dataAccessService.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); List<EPRole> expectedApplicationRoles = externalAccessRolesServiceImpl.getAppRoles((long) 10); assertEquals(expectedApplicationRoles, applicationRoles); } - // @SuppressWarnings("null") - // @Test(expected = java.lang.Exception.class) - // public void getAppRolesExceptionTest() throws Exception{ - // List<EPRole> applicationRoles = new ArrayList<>(); - // DataAccessService dataAccessService = null ; - // Mockito.when(dataAccessService.getList(EPRole.class, "where app_id = 10", - // null, null)).thenThrow(nullPointerException); - // List<EPRole> expectedApplicationRoles = - // externalAccessRolesServiceImpl.getAppRoles((long) 10); - // assertEquals(expectedApplicationRoles,applicationRoles); - // } - + @SuppressWarnings("deprecation") @Test public void getAppExceptionTest() throws Exception { List<EPApp> app = new ArrayList<>(); - Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) + Mockito.when(dataAccessService.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) .thenReturn(app); List<EPApp> expectedapp = externalAccessRolesServiceImpl.getApp(uebKey); assertEquals(app, expectedapp); @@ -174,11 +246,12 @@ public class ExternalAccessRolesServiceImplTest { public void getAppErrorTest() throws Exception { List<EPApp> appList = new ArrayList<>(); EPApp app = mockApp(); + app.setEnabled(false); appList.add(app); final Map<String, String> appUebkeyParams = new HashMap<>(); appUebkeyParams.put("appKey", "test-ueb-key"); - Mockito.when(dataAccessService1.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) - .thenReturn(appList); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); externalAccessRolesServiceImpl.getApp(uebKey); } @@ -190,7 +263,7 @@ public class ExternalAccessRolesServiceImplTest { appList.add(app); final Map<String, String> appUebkeyParams = new HashMap<>(); appUebkeyParams.put("appKey", "test-ueb-key"); - Mockito.when(dataAccessService1.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) .thenReturn(appList); List<EPApp> expectedapp = externalAccessRolesServiceImpl.getApp(uebKey); assertEquals(appList, expectedapp); @@ -218,12 +291,13 @@ public class ExternalAccessRolesServiceImplTest { roleList.add(ePRole); final Map<String, String> appUebkeyParams = new HashMap<>(); appUebkeyParams.put("appKey", "test-ueb-key"); - Mockito.when(dataAccessService1.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) .thenReturn(appList); final Map<String, Long> getPartnerAppRoleParams = new HashMap<>(); getPartnerAppRoleParams.put("appRoleId", role.getId()); - getPartnerAppRoleParams.put("appId", app.getId()); - Mockito.when(dataAccessService1.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null)).thenReturn(roleList); + getPartnerAppRoleParams.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null)) + .thenReturn(roleList); Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL)) .thenReturn("Testurl"); ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.CREATED); @@ -233,7 +307,6 @@ public class ExternalAccessRolesServiceImplTest { assertTrue(externalAccessRolesServiceImpl.addRole(role, uebKey)); } - @Test public void addRoleMethodNotAllowedTest() throws Exception { HttpHeaders headers = new HttpHeaders(); @@ -255,12 +328,13 @@ public class ExternalAccessRolesServiceImplTest { roleList.add(ePRole); final Map<String, String> appUebkeyParams = new HashMap<>(); appUebkeyParams.put("appKey", "test-ueb-key"); - Mockito.when(dataAccessService1.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) .thenReturn(appList); final Map<String, Long> getPartnerAppRoleParams = new HashMap<>(); getPartnerAppRoleParams.put("appRoleId", role.getId()); - getPartnerAppRoleParams.put("appId", app.getId()); - Mockito.when(dataAccessService1.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null)).thenReturn(roleList); + getPartnerAppRoleParams.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null)) + .thenReturn(roleList); Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL)) .thenReturn("Testurl"); ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.METHOD_NOT_ALLOWED); @@ -303,7 +377,7 @@ public class ExternalAccessRolesServiceImplTest { CentralV2RoleFunction domainCentralRoleFunction = new CentralV2RoleFunction(); domainCentralRoleFunction.setCode("menu_fun_code"); centralRoleFunctionList.add(domainCentralRoleFunction); - Mockito.when(dataAccessService1.executeNamedQuery("getRoleFunction", params, null)) + Mockito.when(dataAccessService.executeNamedQuery("getRoleFunction", params, null)) .thenReturn(centralRoleFunctionList); ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.OK); Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), @@ -312,11 +386,12 @@ public class ExternalAccessRolesServiceImplTest { PowerMockito.mockStatic(EcompPortalUtils.class); Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); - Mockito.doNothing().when(dataAccessService1).deleteDomainObjects(EPAppRoleFunction.class, + Mockito.doNothing().when(dataAccessService).deleteDomainObjects(EPAppRoleFunction.class, "app_id = " + app.getId() + " and function_cd = '" + "menu_fun_code" + "'", null); - + assertTrue(externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app)); } + @Test public void deleteCentralRoleFunctionFailTest() throws Exception { final Map<String, String> params = new HashMap<>(); @@ -328,16 +403,14 @@ public class ExternalAccessRolesServiceImplTest { domainCentralRoleFunction.setCode("menu_fun_code"); centralRoleFunctionList.add(domainCentralRoleFunction); HttpClientErrorException httpClientErrorException = new HttpClientErrorException(HttpStatus.NOT_FOUND); - Mockito.when(dataAccessService1.executeNamedQuery("getRoleFunction", params, null)) + Mockito.when(dataAccessService.executeNamedQuery("getRoleFunction", params, null)) .thenReturn(centralRoleFunctionList); - ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.NOT_FOUND); Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenThrow(httpClientErrorException); HttpHeaders headers = new HttpHeaders(); PowerMockito.mockStatic(EcompPortalUtils.class); Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); - - Mockito.doNothing().when(dataAccessService1).deleteDomainObjects(EPAppRoleFunction.class, + Mockito.doNothing().when(dataAccessService).deleteDomainObjects(EPAppRoleFunction.class, "app_id = " + app.getId() + " and function_cd = '" + "menu_fun_code" + "'", null); boolean returnedValue = externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app); @@ -354,71 +427,123 @@ public class ExternalAccessRolesServiceImplTest { CentralV2RoleFunction domainCentralRoleFunction = new CentralV2RoleFunction(); domainCentralRoleFunction.setCode("menu_fun_code"); centralRoleFunctionList.add(domainCentralRoleFunction); - Mockito.when(dataAccessService1.executeNamedQuery("getAppFunctionDetails", params, null)) + Mockito.when(dataAccessService.executeNamedQuery("getAppFunctionDetails", params, null)) .thenThrow(nullPointerException); assertTrue(externalAccessRolesServiceImpl.deleteCentralRoleFunction("menu_fun_code", app)); } @Test - public void getUserTest() { + public void getUserTest() throws InvalidUserException { List<EPUser> userList = new ArrayList<>(); EPUser user = mockUser.mockEPUser(); userList.add(user); final Map<String, String> userParams = new HashMap<>(); userParams.put("org_user_id", "guestT"); - Mockito.when(dataAccessService1.executeNamedQuery("getEPUserByOrgUserId", userParams, null)) + Mockito.when(dataAccessService.executeNamedQuery("getEPUserByOrgUserId", userParams, null)) .thenReturn(userList); List<EPUser> expectedUserList = externalAccessRolesServiceImpl.getUser("guestT"); assertEquals(expectedUserList, userList); } - - - public void saveCentralRoleFunctionTest() throws Exception { - CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); - centralV2RoleFunction.setCode("menu_test"); + + @Test + public void saveCentralRoleFunctionNewTestForV2() throws Exception { + PowerMockito.mockStatic(EcompPortalUtils.class); EPApp app = mockApp(); app.setId((long) 1); + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + centralV2RoleFunction.setCode("test_code"); + centralV2RoleFunction.setName("test name"); + centralV2RoleFunction.setAppId(app.getId()); + centralV2RoleFunction.setAction("*"); + centralV2RoleFunction.setType("test_type"); final Map<String, String> params = new HashMap<>(); - params.put("functionCd", "menu_test"); params.put("appId", String.valueOf(1)); + + List<CentralV2RoleFunction> appRoleFunc = new ArrayList<>(); + appRoleFunc.add(centralV2RoleFunction); + params.put(FUNCTION_CODE_PARAMS, centralV2RoleFunction.getType() + FUNCTION_PIPE + + centralV2RoleFunction.getCode() + FUNCTION_PIPE + centralV2RoleFunction.getAction()); + Mockito.when(dataAccessService.executeNamedQuery("getRoleFunction", params, null)).thenReturn(appRoleFunc); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + HttpHeaders headers = new HttpHeaders(); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + JSONObject mockJsonObjectPerm = new JSONObject(); + JSONObject mockJsonObjectFinalPerm = new JSONObject(); + mockJsonObjectPerm.put("type", "com.test.app.test_type"); + mockJsonObjectPerm.put("instance", "com.test.app.test_code"); + mockJsonObjectPerm.put("action", "*"); + mockJsonObjectPerm.put("description", "test name"); + List<JSONObject> mockJson = new ArrayList<>(); + mockJson.add(mockJsonObjectPerm); + mockJsonObjectFinalPerm.put("perm", mockJson); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObjectFinalPerm.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + ResponseEntity<String> updateResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(updateResponse); + Boolean actual = externalAccessRolesServiceImpl.saveCentralRoleFunction(centralV2RoleFunction, app); + assertEquals(true, actual); + } + + @Test + public void saveCentralRoleFunctionUpdateForV2Test() throws Exception { PowerMockito.mockStatic(EcompPortalUtils.class); + EPApp app = mockApp(); + app.setId((long) 1); + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + centralV2RoleFunction.setCode("test_code"); + centralV2RoleFunction.setName("test name2"); + centralV2RoleFunction.setAppId(app.getId()); + centralV2RoleFunction.setAction("*"); + centralV2RoleFunction.setType("test_type"); + CentralV2RoleFunction centralV2RoleFunctionExisting = new CentralV2RoleFunction(); + centralV2RoleFunctionExisting.setCode("test_code"); + centralV2RoleFunctionExisting.setName("test name"); + centralV2RoleFunctionExisting.setAppId(app.getId()); + centralV2RoleFunctionExisting.setAction("*"); + centralV2RoleFunctionExisting.setType("test_type"); + final Map<String, String> params = new HashMap<>(); + params.put("appId", String.valueOf(1)); + List<CentralV2RoleFunction> appRoleFunc = new ArrayList<>(); + appRoleFunc.add(centralV2RoleFunctionExisting); + params.put(FUNCTION_CODE_PARAMS, centralV2RoleFunction.getType() + FUNCTION_PIPE + + centralV2RoleFunction.getCode() + FUNCTION_PIPE + centralV2RoleFunction.getAction()); + Mockito.when(dataAccessService.executeNamedQuery("getRoleFunction", params, null)).thenReturn(appRoleFunc); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); HttpHeaders headers = new HttpHeaders(); Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); - List<CentralV2RoleFunction> appRoleFunc = new ArrayList<>(); - appRoleFunc.add(centralV2RoleFunction); - Mockito.when(dataAccessService1.executeNamedQuery("getAppFunctionDetails", params, - null)).thenReturn(appRoleFunc); - ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.OK); + JSONObject mockJsonObjectPerm = new JSONObject(); + JSONObject mockJsonObjectFinalPerm = new JSONObject(); + mockJsonObjectPerm.put("type", "com.test.app.test_type"); + mockJsonObjectPerm.put("instance", "test_code"); + mockJsonObjectPerm.put("action", "*"); + mockJsonObjectPerm.put("description", "test name"); + List<JSONObject> mockJson = new ArrayList<>(); + mockJson.add(mockJsonObjectPerm); + mockJsonObjectFinalPerm.put("perm", mockJson); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObjectFinalPerm.toString(), HttpStatus.OK); Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), - Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addResponse); + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + ResponseEntity<String> updateResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.PUT), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(updateResponse); + Boolean actual = externalAccessRolesServiceImpl.saveCentralRoleFunction(centralV2RoleFunction, app); + assertEquals(true, actual); } - -// @Test -// public void getAllAppUsersIfAppIsPortalTest() throws Exception -// { -// List<EPApp> expectedapps = new ArrayList<>(); -// EPApp app = new EPApp(); -// app.setEnabled(true); -// app.setId((long) 1); -// expectedapps.add(app); -// List<EPRole> applicationRoles = new ArrayList<>(); -// Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); -// Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)).thenReturn(expectedapps); -// externalAccessRolesServiceImpl.getAllAppUsers(uebKey); -// } - - + + @SuppressWarnings("deprecation") @Test(expected = IndexOutOfBoundsException.class) - public void getAllAppUsersTest() throws Exception - { - List<EPApp> expectedapps = new ArrayList<>(); + public void getAllAppUsersTest() throws Exception { + List<EPApp> expectedapps = new ArrayList<>(); EPApp app = new EPApp(); app.setEnabled(true); app.setId((long) 10); expectedapps.add(app); List<EPRole> applicationRoles = new ArrayList<>(); - Mockito.when(dataAccessService1.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); - Mockito.when(dataAccessService1.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)).thenReturn(expectedapps); + Mockito.when(dataAccessService.getList(EPRole.class, "test", null, null)).thenReturn(applicationRoles); + Mockito.when(dataAccessService.getList(EPApp.class, " where ueb_key = '" + uebKey + "'", null, null)) + .thenReturn(expectedapps); final Map<String, Long> appParams = new HashMap<>(); appParams.put("appId", app.getId()); List<EcompUserRoles> userList = new ArrayList<>(); @@ -426,31 +551,804 @@ public class ExternalAccessRolesServiceImplTest { ecompUserRoles.setOrgUserId("guestT"); ecompUserRoles.setRoleId((long) 1); ecompUserRoles.setRoleName("test"); - + EcompUserRoles ecompUserRoles2 = new EcompUserRoles(); ecompUserRoles2.setOrgUserId("guestT"); ecompUserRoles2.setRoleId((long) 2); ecompUserRoles2.setRoleName("test new"); userList.add(ecompUserRoles); userList.add(ecompUserRoles2); - - Mockito.when(dataAccessService1.executeNamedQuery("ApplicationUserRoles", appParams, null)).thenReturn(userList); + + Mockito.when(dataAccessService.executeNamedQuery("ApplicationUserRoles", appParams, null)).thenReturn(userList); List<EcompUser> usersfinalList = externalAccessRolesServiceImpl.getAllAppUsers(uebKey); assertEquals(usersfinalList.get(0).getRoles().size(), 2); } - + @Test - public void getGlobalRolesOfPortalTest() - { - Mockito.when(dataAccessService1.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenReturn(null); + public void getGlobalRolesOfPortalTest() { + Mockito.when(dataAccessService.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenReturn(null); assertEquals(externalAccessRolesServiceImpl.getGlobalRolesOfPortal(), null); } - + @Test - public void getGlobalRolesOfPortalExceptionTest() - { + public void getGlobalRolesOfPortalExceptionTest() { List<EPRole> globalRoles = new ArrayList<>(); - Mockito.when(dataAccessService1.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenThrow(nullPointerException); + Mockito.when(dataAccessService.executeNamedQuery("getGlobalRolesOfPortal", null, null)) + .thenThrow(nullPointerException); assertEquals(externalAccessRolesServiceImpl.getGlobalRolesOfPortal(), globalRoles); } + + @Test + public void getRolesForAppTest() throws Exception { + EPApp app = mockApp(); + app.setId(2l); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List<EPRole> applicationRoles = new ArrayList<>(); + EPRole appRole = new EPRole(); + appRole.setActive(true); + appRole.setAppId(app.getId()); + appRole.setAppRoleId(100l); + appRole.setId(10l); + appRole.setName("test"); + applicationRoles.add(appRole); + final Map<String, Long> appParams = new HashMap<>(); + appParams.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRolesList", appParams, null)) + .thenReturn(applicationRoles); + List<CentralV2RoleFunction> cenRoleFuncList = new ArrayList<>(); + CentralV2RoleFunction v2RoleFunction = new CentralV2RoleFunction(); + v2RoleFunction.setAppId(app.getId()); + v2RoleFunction.setCode("test_type|test_code|*"); + v2RoleFunction.setName("test name"); + cenRoleFuncList.add(v2RoleFunction); + final Map<String, Long> params = new HashMap<>(); + params.put("roleId", appRole.getId()); + params.put(APP_ID, appList.get(0).getId()); + Mockito.when(dataAccessService.executeNamedQuery("getAppRoleFunctionList", params, null)) + .thenReturn(cenRoleFuncList); + List<GlobalRoleWithApplicationRoleFunction> mockGlobalRoles = new ArrayList<>(); + GlobalRoleWithApplicationRoleFunction mockGlobalRole = new GlobalRoleWithApplicationRoleFunction(); + mockGlobalRole.setActive(true); + mockGlobalRole.setAppId(app.getId()); + mockGlobalRole.setRoleId(1111l); + mockGlobalRole.setRoleName("global_test"); + mockGlobalRole.setFunctionCd("test_type|test_code|*"); + mockGlobalRole.setFunctionName("test name"); + mockGlobalRoles.add(mockGlobalRole); + Map<String, Long> params2 = new HashMap<>(); + params2.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getGlobalRoleWithApplicationRoleFunctions", params2, null)) + .thenReturn(mockGlobalRoles); + List<EPRole> globalRoles = new ArrayList<>(); + EPRole globalRole = new EPRole(); + globalRole.setName("global_test"); + globalRole.setId(1111l); + globalRole.setActive(true); + globalRoles.add(globalRole); + Mockito.when(dataAccessService.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenReturn(globalRoles); + List<CentralV2Role> expected = new ArrayList<>(); + CentralV2Role cenV2Role = new CentralV2Role(); + CentralV2Role cenV2Role2 = new CentralV2Role(); + expected.add(cenV2Role); + expected.add(cenV2Role2); + List<CentralV2Role> actual = externalAccessRolesServiceImpl.getRolesForApp(app.getUebKey()); + assertEquals(expected.size(), actual.size()); + } + + @Test + public void saveRoleForPortalApplicationNewTest() throws Exception { + PowerMockito.mockStatic(EcompPortalUtils.class); + EPApp app = mockApp(); + app.setId(1l); + Role addRoleTest = new Role(); + addRoleTest.setActive(true); + addRoleTest.setName("Test"); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + HttpHeaders headers = new HttpHeaders(); + JSONObject mockJsonObjectRole = new JSONObject(); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObjectRole.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + final Map<String, String> epAppPortalRoleParams = new HashMap<>(); + epAppPortalRoleParams.put(APP_ROLE_NAME_PARAM, addRoleTest.getName()); + List<EPRole> getRoleCreated = new ArrayList<>(); + EPRole roleCreate = new EPRole(); + roleCreate.setActive(true); + roleCreate.setId(10l); + roleCreate.setName("test"); + getRoleCreated.add(roleCreate); + Mockito.when(dataAccessService.executeNamedQuery(GET_PORTAL_APP_ROLES_QUERY, epAppPortalRoleParams, null)) + .thenReturn(getRoleCreated); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.CREATED); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addResponse); + ExternalRequestFieldsValidator actual = externalAccessRolesServiceImpl.saveRoleForApplication(addRoleTest, + app.getUebKey()); + ExternalRequestFieldsValidator expected = new ExternalRequestFieldsValidator(true, ""); + assertEquals(expected, actual); + } + + @Test + public void saveRoleForPortalApplicationUpdateTest() throws Exception { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + EPApp app = mockApp(); + app.setId(1l); + Role addRoleTest = new Role(); + SortedSet<RoleFunction> roleFuncSet = new TreeSet<>(); + RoleFunction roleFunc= new RoleFunction(); + roleFunc.setName("Test Name"); + roleFunc.setCode("test_type|test_instance|*"); + RoleFunction roleFunc2 = new RoleFunction(); + roleFunc2.setName("Test Name3"); + roleFunc2.setCode("test_type3|test_instance3|*"); + roleFuncSet.add(roleFunc); + roleFuncSet.add(roleFunc2); + addRoleTest.setActive(true); + addRoleTest.setName("Test2"); + addRoleTest.setId(2l); + addRoleTest.setRoleFunctions(roleFuncSet); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List<EPRole> globalRoles = new ArrayList<>(); + EPRole globalRole = new EPRole(); + globalRole.setName("global_test"); + globalRole.setId(1111l); + globalRole.setActive(true); + globalRoles.add(globalRole); + Mockito.when(dataAccessService.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenReturn(globalRoles); + List<EPRole> epRoleList = new ArrayList<>(); + EPRole getEPRole = new EPRole(); + getEPRole.setName("Test"); + getEPRole.setId(2l); + getEPRole.setActive(true); + epRoleList.add(getEPRole); + final Map<String, Long> getPortalAppRoleParams = new HashMap<>(); + getPortalAppRoleParams.put("roleId", addRoleTest.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPortalAppRoleByRoleId", getPortalAppRoleParams, null)) + .thenReturn(epRoleList); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + HttpHeaders headers = new HttpHeaders(); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + JSONObject mockJsonObjectRole = new JSONObject(); + JSONObject mockJsonObjectFinalRole = new JSONObject(); + JSONObject mockJsonObjectPerm1 = new JSONObject(); + JSONObject mockJsonObjectPerm2 = new JSONObject(); + mockJsonObjectPerm1.put("type", "com.test.app.test_type"); + mockJsonObjectPerm1.put("instance", "test_instance"); + mockJsonObjectPerm1.put("action", "*"); + mockJsonObjectPerm2.put("type", "com.test.app.test_type2"); + mockJsonObjectPerm2.put("instance", "test_instance2"); + mockJsonObjectPerm2.put("action", "*"); + List<JSONObject> permsList = new ArrayList<>(); + permsList.add(mockJsonObjectPerm1); + permsList.add(mockJsonObjectPerm2); + mockJsonObjectRole.put("name", "com.test.app.Test"); + mockJsonObjectRole.put("perms", permsList); + mockJsonObjectRole.put("description", + "{\"id\":\"2\",\"name\":\"Test\",\"active\":\"true\",\"priority\":\"null\",\"appId\":\"null\",\"appRoleId\":\"null\"}"); + List<JSONObject> roleList = new ArrayList<>(); + roleList.add(mockJsonObjectRole); + mockJsonObjectFinalRole.put("role", roleList); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObjectFinalRole.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + ResponseEntity<String> delResponse = new ResponseEntity<>(roleList.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(delResponse); + ResponseEntity<String> addRoleResponse = new ResponseEntity<>(HttpStatus.CREATED); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addRoleResponse); + final Map<String, String> params = new HashMap<>(); + params.put("uebKey", app.getUebKey()); + params.put("roleId", String.valueOf(getEPRole.getId())); + List<BulkUploadUserRoles> userRolesList = new ArrayList<>(); + BulkUploadUserRoles bulkUploadUserRoles = new BulkUploadUserRoles(); + bulkUploadUserRoles.setAppNameSpace("com.test.app"); + bulkUploadUserRoles.setOrgUserId("guestT"); + bulkUploadUserRoles.setRoleName("Test2"); + userRolesList.add(bulkUploadUserRoles); + Mockito.when(dataAccessService.executeNamedQuery("getBulkUsersForSingleRole", params, null)) + .thenReturn(userRolesList); + Mockito.when( + EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) + .thenReturn(true); + Mockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)).thenReturn("@test.com"); + ResponseEntity<String> mockBulkUsersUpload = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(mockBulkUsersUpload); + List<EPAppRoleFunction> appRoleFunctionList = new ArrayList<>(); + final Map<String, Long> appRoleFuncsParams = new HashMap<>(); + appRoleFuncsParams.put("appId", app.getId()); + appRoleFuncsParams.put("roleId", getEPRole.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getAppRoleFunctionOnRoleIdandAppId", appRoleFuncsParams, null)).thenReturn(appRoleFunctionList); + Mockito.when(EcompPortalUtils.getFunctionCode(roleFunc.getCode())).thenReturn("test_instance"); + Mockito.when(EcompPortalUtils.getFunctionCode(roleFunc2.getCode())).thenReturn("test_instance3"); + final Map<String, String> getAppFunctionParams = new HashMap<>(); + getAppFunctionParams.put("appId", String.valueOf(app.getId())); + getAppFunctionParams.put(FUNCTION_CODE_PARAMS, roleFunc.getCode()); + List<CentralV2RoleFunction> v2RoleFunction = new ArrayList<>(); + CentralV2RoleFunction v2RoleFunction1 = new CentralV2RoleFunction("test_type|test_instance|*", "Test Name"); + v2RoleFunction.add(v2RoleFunction1); + Mockito.when(dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, getAppFunctionParams, null)).thenReturn(v2RoleFunction); + final Map<String, String> getAppFunctionParams2 = new HashMap<>(); + getAppFunctionParams2.put("appId", String.valueOf(app.getId())); + getAppFunctionParams2.put(FUNCTION_CODE_PARAMS, roleFunc2.getCode()); + List<CentralV2RoleFunction> v2RoleFunction2 = new ArrayList<>(); + CentralV2RoleFunction v2RoleFunction3 = new CentralV2RoleFunction("test_type3|test_instance3|*", "Test Name3"); + v2RoleFunction2.add(v2RoleFunction3); + Mockito.when(dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, getAppFunctionParams2, null)).thenReturn(v2RoleFunction2); + ExternalRequestFieldsValidator actual = externalAccessRolesServiceImpl.saveRoleForApplication(addRoleTest, + app.getUebKey()); + ExternalRequestFieldsValidator expected = new ExternalRequestFieldsValidator(true, ""); + assertEquals(expected, actual); + } + + @Test + public void saveGlobalRoleFunctionsForPartnerApplicationUpdateTest() throws Exception { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + EPApp app = mockApp(); + app.setId(2l); + Role addRoleTest = new Role(); + SortedSet<RoleFunction> roleFuncSet = new TreeSet<>(); + RoleFunction roleFunc= new RoleFunction(); + roleFunc.setName("Test Name"); + roleFunc.setCode("test_type|test_instance|*"); + RoleFunction roleFunc2 = new RoleFunction(); + roleFunc2.setName("Test Name3"); + roleFunc2.setCode("test_type3|test_instance3|*"); + roleFuncSet.add(roleFunc); + roleFuncSet.add(roleFunc2); + addRoleTest.setActive(true); + addRoleTest.setName("global_test"); + addRoleTest.setId(1111l); + addRoleTest.setRoleFunctions(roleFuncSet); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List<EPRole> globalRoles = new ArrayList<>(); + EPRole globalRole = new EPRole(); + globalRole.setName("global_test"); + globalRole.setId(1111l); + globalRole.setActive(true); + EPRole globalRole2 = new EPRole(); + globalRole2.setName("global_test2"); + globalRole2.setId(2222l); + globalRole2.setActive(true); + globalRoles.add(globalRole); + globalRoles.add(globalRole2); + Mockito.when(dataAccessService.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenReturn(globalRoles); + List<EPRole> getGlobalRoles = new ArrayList<>(); + EPRole getEPGlobalRole = new EPRole(); + getEPGlobalRole.setName("global_test"); + getEPGlobalRole.setId(1111l); + getEPGlobalRole.setActive(true); + getGlobalRoles.add(getEPGlobalRole); + final Map<String, Long> getPortalAppRoleParams = new HashMap<>(); + getPortalAppRoleParams.put("roleId", globalRole.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPortalAppRoleByRoleId", getPortalAppRoleParams, null)) + .thenReturn(getGlobalRoles); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + Mockito.when(epAppCommonServiceImpl.getApp(PortalConstants.PORTAL_APP_ID)).thenReturn(app); + JSONObject mockJsonObjectPerm = new JSONObject(); + JSONObject mockJsonObjectPerm2 = new JSONObject(); + JSONObject mockJsonObjectPerm3 = new JSONObject(); + JSONObject mockJsonObjectFinalPerm = new JSONObject(); + mockJsonObjectPerm.put("type", "com.test.app.test_type"); + mockJsonObjectPerm.put("instance", "test_instance"); + mockJsonObjectPerm.put("action", "*"); + mockJsonObjectPerm.put("description", "Test Name"); + mockJsonObjectPerm2.put("type", "com.test.app.access"); + mockJsonObjectPerm2.put("instance", "test_instance2"); + mockJsonObjectPerm2.put("action", "*"); + mockJsonObjectPerm2.put("description", "Test Name2"); + mockJsonObjectPerm3.put("type", "com.test.app.test_type3"); + mockJsonObjectPerm3.put("instance", "test_instance3"); + mockJsonObjectPerm3.put("action", "*"); + mockJsonObjectPerm3.put("description", "Test Name3"); + List<JSONObject> mockJson = new ArrayList<>(); + mockJson.add(mockJsonObjectPerm); + mockJson.add(mockJsonObjectPerm2); + mockJson.add(mockJsonObjectPerm3); + mockJsonObjectFinalPerm.put("perm", mockJson); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObjectFinalPerm.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + Mockito.when(EcompPortalUtils.getFunctionCode(roleFunc.getCode())).thenReturn("test_instance"); + ResponseEntity<String> postResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(postResponse); + Mockito.when(EcompPortalUtils.getFunctionCode(roleFunc.getCode())).thenReturn("test_instance"); + final Map<String, Long> epAppRoleFuncParams = new HashMap<>(); + epAppRoleFuncParams.put("requestedAppId", app.getId()); + epAppRoleFuncParams.put("roleId",globalRole.getId()); + List<GlobalRoleWithApplicationRoleFunction> globalRoleFunctionList = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getGlobalRoleForRequestedApp", epAppRoleFuncParams, null)).thenReturn(globalRoleFunctionList); + final Map<String, Long> appRoleFuncsParams = new HashMap<>(); + appRoleFuncsParams.put("appId", app.getId()); + appRoleFuncsParams.put("roleId", globalRole.getId()); + List<EPAppRoleFunction> appRoleFunctionList = new ArrayList<>(); + EPAppRoleFunction epAppRoleFunction = new EPAppRoleFunction(); + epAppRoleFunction.setAppId(app.getId()); + epAppRoleFunction.setRoleAppId("1"); + epAppRoleFunction.setCode("test"); + epAppRoleFunction.setRoleId(1111l); + appRoleFunctionList.add(epAppRoleFunction); + Mockito.when(dataAccessService.executeNamedQuery("getAppRoleFunctionOnRoleIdandAppId", appRoleFuncsParams, null)).thenReturn(appRoleFunctionList); + final Map<String, String> getAppFunctionParams = new HashMap<>(); + Mockito.when(EcompPortalUtils.getFunctionCode(roleFunc.getCode())).thenReturn("test_instance"); + Mockito.when(EcompPortalUtils.getFunctionCode(roleFunc2.getCode())).thenReturn("test_instance3"); + getAppFunctionParams.put("appId", String.valueOf(app.getId())); + getAppFunctionParams.put(FUNCTION_CODE_PARAMS, roleFunc.getCode()); + List<CentralV2RoleFunction> roleFunction = new ArrayList<>(); + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(null, roleFunc.getCode(), roleFunc.getName(), app.getId(), null); + roleFunction.add(centralV2RoleFunction); + Mockito.when(dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, getAppFunctionParams, null)).thenReturn(roleFunction); + final Map<String, String> getAppFunctionParams2 = new HashMap<>(); + getAppFunctionParams2.put("appId", String.valueOf(app.getId())); + getAppFunctionParams2.put(FUNCTION_CODE_PARAMS, roleFunc2.getCode()); + List<CentralV2RoleFunction> roleFunction2 = new ArrayList<>(); + CentralV2RoleFunction centralV2RoleFunction2 = new CentralV2RoleFunction(null, roleFunc2.getCode(), roleFunc2.getName(), app.getId(), null); + roleFunction2.add(centralV2RoleFunction2); + Mockito.when(dataAccessService.executeNamedQuery(GET_ROLE_FUNCTION_QUERY, getAppFunctionParams2, null)).thenReturn(roleFunction2); + ExternalRequestFieldsValidator actual = externalAccessRolesServiceImpl.saveRoleForApplication(addRoleTest, + app.getUebKey()); + ExternalRequestFieldsValidator expected = new ExternalRequestFieldsValidator(true, ""); + assertEquals(expected, actual); + } + + @Test + public void syncRoleFunctionFromExternalAccessSystemTest() { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + EPApp app = mockApp(); + app.setId(2l); + JSONObject mockJsonObjectFinalPerm = new JSONObject(); + JSONObject mockJsonObjectPerm = new JSONObject(); + JSONObject mockJsonObjectPerm2 = new JSONObject(); + JSONObject mockJsonObjectPerm3 = new JSONObject(); + mockJsonObjectPerm.put("type", "com.test.app.test_type"); + mockJsonObjectPerm.put("instance", "test_instance"); + mockJsonObjectPerm.put("action", "*"); + mockJsonObjectPerm.put("description", "test_name"); + List<String> rolePermList = new ArrayList<>(); + rolePermList.add("com.test.app|test1"); + mockJsonObjectPerm.put("roles", rolePermList); + mockJsonObjectPerm2.put("type", "com.test.app.test_type2"); + mockJsonObjectPerm2.put("instance", "test_instance2"); + mockJsonObjectPerm2.put("action", "*"); + mockJsonObjectPerm2.put("description", "test_name2"); + mockJsonObjectPerm3.put("type", "com.test.app.access"); + mockJsonObjectPerm3.put("instance", "test_instance3"); + mockJsonObjectPerm3.put("action", "*"); + mockJsonObjectPerm3.put("description", "test_name3"); + List<JSONObject> permsList = new ArrayList<>(); + permsList.add(mockJsonObjectPerm); + permsList.add(mockJsonObjectPerm2); + permsList.add(mockJsonObjectPerm3); + mockJsonObjectFinalPerm.put("perm", permsList); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObjectFinalPerm.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + final Map<String, Long> params = new HashMap<>(); + params.put(APP_ID, app.getId()); + List<CentralV2RoleFunction> appFunctions = new ArrayList<>(); + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(null, "test_type|test_instance|*", "test_name", app.getId(), null); + appFunctions.add(centralV2RoleFunction); + Mockito.when(dataAccessService.executeNamedQuery("getAllRoleFunctions", params,null)).thenReturn(appFunctions); + List<EPRole> globalRoles = new ArrayList<>(); + EPRole globalRole = new EPRole(); + globalRole.setName("global_test"); + globalRole.setId(1111l); + globalRole.setActive(true); + globalRoles.add(globalRole); + Mockito.when(dataAccessService.executeNamedQuery("getGlobalRolesOfPortal", null, null)).thenReturn(globalRoles); + List<EPRole> getCurrentRoleList = new ArrayList<>(); + EPRole getEPRole = new EPRole(); + getEPRole.setName("test1"); + getEPRole.setId(2l); + getEPRole.setActive(true); + EPRole getEPRole2 = new EPRole(); + getEPRole2.setName("global_test"); + getEPRole2.setId(1111l); + getEPRole2.setActive(true); + getCurrentRoleList.add(getEPRole); + getCurrentRoleList.add(getEPRole2); + Mockito.when(dataAccessService.executeNamedQuery("getPortalAppRolesList", null, null)).thenReturn(getCurrentRoleList); + final Map<String, String> appSyncFuncsParams = new HashMap<>(); + appSyncFuncsParams.put("appId", String.valueOf(app.getId())); + appSyncFuncsParams.put("functionCd", ""); + List<CentralV2RoleFunction> roleFunctionList = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appSyncFuncsParams, + null)).thenReturn(roleFunctionList); + String code = centralV2RoleFunction.getCode(); + appSyncFuncsParams.put("functionCd", code); + CentralV2RoleFunction getCentralV2RoleFunction = new CentralV2RoleFunction(null, "test_type|test_instance|*", "test_name", app.getId(), null); + roleFunctionList.add(getCentralV2RoleFunction); + Mockito.when(dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appSyncFuncsParams, + null)).thenReturn(roleFunctionList); + final Map<String, String> appRoleFuncParams = new HashMap<>(); + appRoleFuncParams.put("functionCd", roleFunctionList.get(0).getCode()); + appRoleFuncParams.put("appId", String.valueOf(app.getId())); + Mockito.when(dataAccessService.executeNamedQuery("getCurrentAppRoleFunctions", + appRoleFuncParams, null)).thenReturn(new ArrayList<LocalRole>()); + Mockito.when(EcompPortalUtils.checkNameSpaceMatching("com.test.app", app.getNameSpace())).thenReturn(true); + Mockito.when(EcompPortalUtils.getFunctionCode("test_type2|test_instance2|*")).thenReturn("test_instance2"); + appSyncFuncsParams.put("functionCd", "test_instance2"); + List<CentralV2RoleFunction> roleFunctionList2 = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appSyncFuncsParams, + null)).thenReturn(roleFunctionList2); + String code2 = "test_type2|test_instance2|*"; + appSyncFuncsParams.put("functionCd", code2); + CentralV2RoleFunction getCentralV2RoleFunction2 = new CentralV2RoleFunction(null, "test_type2|test_instance2|*", "test_name2", app.getId(), null); + roleFunctionList2.add(getCentralV2RoleFunction2); + Mockito.when(dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appSyncFuncsParams, + null)).thenReturn(roleFunctionList2); + externalAccessRolesServiceImpl.syncRoleFunctionFromExternalAccessSystem(app); + } + + @Test + public void syncApplicationRolesWithEcompDBTest(){ + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + EPApp app = mockApp(); + app.setId(2l); + JSONObject mockJsonObjectRole = new JSONObject(); + JSONObject mockJsonObjectRole2 = new JSONObject(); + JSONObject mockJsonObjectFinalRole = new JSONObject(); + JSONObject mockJsonObjectPerm1 = new JSONObject(); + JSONObject mockJsonObjectPerm2 = new JSONObject(); + mockJsonObjectPerm1.put("type", "com.test.app.test_type"); + mockJsonObjectPerm1.put("instance", "test_instance"); + mockJsonObjectPerm1.put("action", "*"); + mockJsonObjectPerm2.put("type", "com.test.app.test_type2"); + mockJsonObjectPerm2.put("instance", "test_instance2"); + mockJsonObjectPerm2.put("action", "*"); + List<JSONObject> permsList = new ArrayList<>(); + permsList.add(mockJsonObjectPerm1); + permsList.add(mockJsonObjectPerm2); + mockJsonObjectRole.put("name", "com.test.app.Test"); + mockJsonObjectRole.put("perms", permsList); + mockJsonObjectRole.put("description", + "{\"id\":\"2\",\"name\":\"test1\",\"active\":\"true\",\"priority\":\"null\",\"appId\":\"2\",\"appRoleId\":\"2\"}"); + mockJsonObjectRole2.put("name", "com.test.app.Test2"); + List<JSONObject> permsList2 = new ArrayList<>(); + permsList2.add(mockJsonObjectPerm1); + mockJsonObjectRole2.put("perms", permsList2); + List<JSONObject> roleList = new ArrayList<>(); + roleList.add(mockJsonObjectRole); + roleList.add(mockJsonObjectRole2); + mockJsonObjectFinalRole.put("role", roleList); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObjectFinalRole.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + List<EPRole> getCurrentRoleList = new ArrayList<>(); + EPRole getEPRole = new EPRole(); + getEPRole.setName("Test"); + getEPRole.setId(2l); + getEPRole.setAppId(app.getId()); + getEPRole.setAppRoleId(2l); + getEPRole.setActive(true); + EPRole getEPRole2 = new EPRole(); + getEPRole2.setName("Test3"); + getEPRole2.setId(3l); + getEPRole.setAppId(app.getId()); + getEPRole.setAppRoleId(3l); + getEPRole2.setActive(true); + getCurrentRoleList.add(getEPRole); + getCurrentRoleList.add(getEPRole2); + final Map<String, Long> appParams = new HashMap<>(); + appParams.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRolesList", appParams, null)).thenReturn(getCurrentRoleList); + Mockito.when(EcompPortalUtils.checkNameSpaceMatching("com.test.app.test_type", app.getNameSpace())).thenReturn(true); + Mockito.when(EcompPortalUtils.checkNameSpaceMatching("com.test.app.test_type2", app.getNameSpace())).thenReturn(true); + List<EPAppRoleFunction> appRoleFunctions = new ArrayList<>(); + EPAppRoleFunction epAppRoleFunction = new EPAppRoleFunction(); + epAppRoleFunction.setAppId(app.getId()); + epAppRoleFunction.setCode("test_type|test_instance|*"); + epAppRoleFunction.setRoleId(getEPRole.getId()); + appRoleFunctions.add(epAppRoleFunction); + final Map<String, Long> appRoleFuncsParams = new HashMap<>(); + appRoleFuncsParams.put("appId", app.getId()); + appRoleFuncsParams.put("roleId", Long.valueOf(getEPRole.getId())); + Mockito.when(dataAccessService.executeNamedQuery("getAppRoleFunctionOnRoleIdandAppId", appRoleFuncsParams, null)).thenReturn(appRoleFunctions); + List<CentralV2RoleFunction> getV2RoleFunction = new ArrayList<>(); + final Map<String, String> appFuncsParams = new HashMap<>(); + appFuncsParams.put("appId", String.valueOf(app.getId())); + appFuncsParams.put("functionCd", "test_instance2"); + Mockito.when(dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appFuncsParams, null)).thenReturn(getV2RoleFunction); + appFuncsParams.put("functionCd", "test_type2|test_instance2|*"); + CentralV2RoleFunction centralV2RoleFunction = new CentralV2RoleFunction(); + centralV2RoleFunction.setAppId(app.getId()); + centralV2RoleFunction.setCode("test_type2|test_instance2|*"); + centralV2RoleFunction.setName("test_name2"); + getV2RoleFunction.add(centralV2RoleFunction); + final Map<String, String> extRoleParams = new HashMap<>(); + List<EPRole> roleListDeactivate = new ArrayList<>(); + extRoleParams.put(APP_ROLE_NAME_PARAM, "Test3"); + extRoleParams.put(APP_ID, app.getId().toString()); + EPRole getEPRoleDeactivate = new EPRole(); + getEPRoleDeactivate.setName("Test3"); + getEPRoleDeactivate.setId(3l); + getEPRoleDeactivate.setAppId(app.getId()); + getEPRoleDeactivate.setAppRoleId(3l); + roleListDeactivate.add(getEPRoleDeactivate); + Mockito.when(dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, extRoleParams, null)).thenReturn(roleListDeactivate); + Mockito.when(dataAccessService.executeNamedQuery("getAppFunctionOnCodeAndAppId", appFuncsParams, null)).thenReturn(getV2RoleFunction); + List<EPRole> updateLocalFromExtAuth = new ArrayList<>(); + updateLocalFromExtAuth.add(getEPRole); + final Map<String, String> roleParams = new HashMap<>(); + roleParams.put(APP_ROLE_NAME_PARAM, getEPRole.getName()); + roleParams.put(APP_ID, app.getId().toString()); + Mockito.when(dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, roleParams, null)).thenReturn(updateLocalFromExtAuth); + roleParams.put(APP_ROLE_NAME_PARAM, getEPRole2.getName()); + List<EPRole> updateLocalFromExtAuth2 = new ArrayList<>(); + updateLocalFromExtAuth.add(getEPRole); + Mockito.when(dataAccessService.executeNamedQuery("getRoletoUpdateInExternalAuthSystem", roleParams, null)).thenReturn(updateLocalFromExtAuth2); + final Map<String, String> globalRoleParams = new HashMap<>(); + globalRoleParams.put("appId", String.valueOf(app.getId())); + globalRoleParams.put("appRoleName", "Test2"); + List<EPRole> addNewRoleList = new ArrayList<>(); + EPRole addRoleInLocal = new EPRole(); + addRoleInLocal.setName("Test2"); + addRoleInLocal.setId(4l); + addRoleInLocal.setAppId(app.getId()); + addRoleInLocal.setActive(true); + addNewRoleList.add(addRoleInLocal); + Mockito.when(dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, globalRoleParams, null)).thenReturn(addNewRoleList); + final Map<String, String> params = new HashMap<>(); + params.put(APP_ROLE_NAME_PARAM, "Test2"); + params.put(APP_ID, app.getId().toString()); + addRoleInLocal.setAppRoleId(4l); + addNewRoleList.add(addRoleInLocal); + Mockito.when(dataAccessService.executeNamedQuery(GET_ROLE_TO_UPDATE_IN_EXTERNAL_AUTH_SYSTEM, params, null)).thenReturn(addNewRoleList); + externalAccessRolesServiceImpl.syncApplicationRolesWithEcompDB(app); + } + + @Test + public void deleteDependencyRoleRecord() throws Exception { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + SQLQuery SqlQuery = Mockito.mock(SQLQuery.class); + EPApp app = mockApp(); + app.setId(2l); + EPUser user = mockUser.mockEPUser(); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List<EPRole> epRoleList = new ArrayList<>(); + EPRole getEPRole = new EPRole(); + getEPRole.setName("Test"); + getEPRole.setId(2l); + getEPRole.setAppRoleId(2l); + getEPRole.setActive(true); + epRoleList.add(getEPRole); + final Map<String, Long> getPartnerAppRoleParams = new HashMap<>(); + getPartnerAppRoleParams.put("appRoleId", getEPRole.getId()); + getPartnerAppRoleParams.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null)) + .thenReturn(epRoleList); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + JSONObject getUser = new JSONObject(); + getUser.put("name", "com.test.app.test1"); + ResponseEntity<String> getResponse = new ResponseEntity<>(getUser.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + ResponseEntity<String> DelResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(DelResponse); + Mockito.when(session.createSQLQuery(Matchers.anyString())).thenReturn(SqlQuery); + ExternalRequestFieldsValidator actual = externalAccessRolesServiceImpl.deleteDependencyRoleRecord(2l, app.getUebKey(), user.getOrgUserId()); + ExternalRequestFieldsValidator expected = new ExternalRequestFieldsValidator(true, ""); + assertEquals(expected, actual); + } + + @Test + public void deleteDependencyRoleRecordForPortal() throws Exception { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + SQLQuery SqlQuery = Mockito.mock(SQLQuery.class); + EPApp app = mockApp(); + app.setId(1l); + EPUser user = mockUser.mockEPUser(); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List<EPRole> epRoleList = new ArrayList<>(); + EPRole getEPRole = new EPRole(); + getEPRole.setName("Test"); + getEPRole.setId(2l); + getEPRole.setAppRoleId(2l); + getEPRole.setActive(true); + epRoleList.add(getEPRole); + final Map<String, Long> getPartnerAppRoleParams = new HashMap<>(); + getPartnerAppRoleParams.put("roleId", getEPRole.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPortalAppRoleByRoleId", getPartnerAppRoleParams, null)) + .thenReturn(epRoleList); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + JSONObject getUser = new JSONObject(); + getUser.put("name", "com.test.app.test1"); + ResponseEntity<String> getResponse = new ResponseEntity<>(getUser.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + ResponseEntity<String> DelResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(DelResponse); + Mockito.when(session.createSQLQuery(Matchers.anyString())).thenReturn(SqlQuery); + ExternalRequestFieldsValidator actual = externalAccessRolesServiceImpl.deleteDependencyRoleRecord(2l, app.getUebKey(), user.getOrgUserId()); + ExternalRequestFieldsValidator expected = new ExternalRequestFieldsValidator(true, ""); + assertEquals(expected, actual); + } + + @Test + public void bulkUploadFunctionsTest() throws Exception { + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + EPApp app = mockApp(); + app.setId(2l); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List<RoleFunction> roleFuncList = new ArrayList<>(); + RoleFunction roleFunc = new RoleFunction(); + roleFunc.setCode("test_code"); + roleFunc.setName("test_name"); + RoleFunction roleFunc2 = new RoleFunction(); + roleFunc2.setCode("test_code2"); + roleFunc2.setName("test_name2"); + roleFuncList.add(roleFunc); + roleFuncList.add(roleFunc2); + Mockito.when(dataAccessService.executeNamedQuery("getAllFunctions", null, null)).thenReturn(roleFuncList); + JSONObject perm = new JSONObject(); + JSONObject permList = new JSONObject(); + perm.put("type", app.getNameSpace()+".access"); + perm.put("instance", "type_instance"); + perm.put("action", "*"); + List<JSONObject> addPerms = new ArrayList<>(); + addPerms.add(perm); + permList.put("perm", addPerms); + ResponseEntity<String> getResponse = new ResponseEntity<>(permList.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + ResponseEntity<String> postResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(postResponse); + Integer actual = externalAccessRolesServiceImpl.bulkUploadFunctions(app.getUebKey()); + Integer expected = 2; + assertEquals(expected, actual); + } + + @Test + public void bulkUploadRolesTest() throws Exception{ + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + EPApp app = mockApp(); + app.setId(2l); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List<EPRole> epRoleList = new ArrayList<>(); + EPRole getEPRole = new EPRole(); + getEPRole.setName("Test"); + getEPRole.setId(2l); + getEPRole.setAppRoleId(2l); + getEPRole.setActive(true); + EPRole getEPRole2 = new EPRole(); + getEPRole2.setName("Test2"); + getEPRole2.setId(3l); + getEPRole2.setAppRoleId(3l); + getEPRole2.setActive(true); + epRoleList.add(getEPRole); + epRoleList.add(getEPRole2); + final Map<String, Long> appParams = new HashMap<>(); + appParams.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRolesList", appParams, null)).thenReturn(epRoleList); + List<EPRole> epRoleList1 = new ArrayList<>(); + EPRole ePRole = new EPRole(); + ePRole.setName("Test"); + ePRole.setId(2l); + ePRole.setAppRoleId(2l); + ePRole.setActive(true); + epRoleList1.add(ePRole); + final Map<String, Long> getPartnerAppRoleParams = new HashMap<>(); + getPartnerAppRoleParams.put("appRoleId", ePRole.getId()); + getPartnerAppRoleParams.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams, null)).thenReturn(epRoleList1); + List<EPRole> epRoleList2 = new ArrayList<>(); + EPRole ePRole2 = new EPRole(); + ePRole2.setName("Test2"); + ePRole2.setId(3l); + ePRole2.setAppRoleId(3l); + ePRole2.setActive(true); + epRoleList2.add(ePRole2); + final Map<String, Long> getPartnerAppRoleParams2 = new HashMap<>(); + getPartnerAppRoleParams2.put("appRoleId", ePRole2.getId()); + getPartnerAppRoleParams2.put("appId", app.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getPartnerAppRoleByRoleId", getPartnerAppRoleParams2, null)).thenReturn(epRoleList2); + ResponseEntity<String> postResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(postResponse); + Integer actual = externalAccessRolesServiceImpl.bulkUploadRoles(app.getUebKey()); + Integer expected = 2; + assertEquals(expected, actual); + } + + @Test + public void bulkUploadUserRolesTest() throws Exception{ + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(SystemProperties.class); + EPApp app = mockApp(); + app.setId(2l); + EPUser user = mockUser.mockEPUser(); + List<EPApp> appList = new ArrayList<>(); + final Map<String, String> appUebkeyParams = new HashMap<>(); + appList.add(app); + appUebkeyParams.put("appKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getMyAppDetailsByUebKey", appUebkeyParams, null)) + .thenReturn(appList); + List<BulkUploadUserRoles> userRolesList = new ArrayList<>(); + BulkUploadUserRoles bulkUploadUserRoles = new BulkUploadUserRoles(); + bulkUploadUserRoles.setAppNameSpace(app.getName()); + bulkUploadUserRoles.setOrgUserId(user.getOrgUserId()); + bulkUploadUserRoles.setRoleName("Test1"); + BulkUploadUserRoles bulkUploadUserRoles2 = new BulkUploadUserRoles(); + bulkUploadUserRoles2.setAppNameSpace(app.getName()); + bulkUploadUserRoles2.setOrgUserId(user.getOrgUserId()); + bulkUploadUserRoles2.setRoleName("Test2"); + userRolesList.add(bulkUploadUserRoles); + userRolesList.add(bulkUploadUserRoles2); + final Map<String, String> appParams = new HashMap<>(); + appParams.put("uebKey", app.getUebKey()); + Mockito.when(dataAccessService.executeNamedQuery("getBulkUserRoles", appParams, null)).thenReturn(userRolesList); + ResponseEntity<String> postResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(postResponse); + Integer actual = externalAccessRolesServiceImpl.bulkUploadUserRoles(app.getUebKey()); + Integer expected = 2; + assertEquals(expected, actual); + } + + } diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImplTest.java deleted file mode 100644 index c954fcbd..00000000 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/FunctionalMenuServiceImplTest.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.onap.portalapp.portal.service; -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the "License"); - * you may not use this software except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ============LICENSE_END============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -//package org.openecomp.portalapp.portal.test.service; -// -//import static org.junit.Assert.assertTrue; -// -//import java.util.ArrayList; -//import java.util.HashMap; -//import java.util.List; -//import java.util.Map; -// -//import org.junit.Test; -//import org.openecomp.portalapp.portal.service.FunctionalMenuService; -//import org.openecomp.portalapp.portal.transport.BusinessCardApplicationRole; -//import org.openecomp.portalapp.portal.transport.FunctionalMenuRole; -//import org.openecomp.portalapp.test.framework.ApplicationCommonContextTestSuite; -//import org.springframework.beans.factory.annotation.Autowired; -// -//public class FunctionalMenuServiceImplTest extends ApplicationCommonContextTestSuite { -// -// @Autowired -// FunctionalMenuService functionalMenuService; -// -// @Test -// public void getAppListTestService() throws Exception { -// -// String userId = "guestT"; -// List<BusinessCardApplicationRole> userAppRolesActualResult = null; -// -// List<BusinessCardApplicationRole> userAppRolesExpectedResult = new ArrayList<BusinessCardApplicationRole>(); -// BusinessCardApplicationRole businessCardApplicationRole = new BusinessCardApplicationRole(); -// businessCardApplicationRole.setAppName("ECOMP Portal"); -// businessCardApplicationRole.setRoleName("System Administrator"); -// userAppRolesExpectedResult.add(businessCardApplicationRole); -// Map<String, String> params = new HashMap<String, String>(); -// params.put("userId", userId); -// userAppRolesActualResult = functionalMenuService.getUserAppRolesList(userId); -// assertTrue(userAppRolesActualResult.contains(businessCardApplicationRole)); -// -// } -// -// @Test -// public void getFunctionalMenuRoleTest() throws Exception { -// -// FunctionalMenuRole expectedFunctionalMenuRole = new FunctionalMenuRole(); -// expectedFunctionalMenuRole.setId(new Integer(-1)); -// -// expectedFunctionalMenuRole.setMenuId((long) 137); -// expectedFunctionalMenuRole.setAppId(new Integer(456)); -// expectedFunctionalMenuRole.setRoleId(new Integer(6214)); -// List<FunctionalMenuRole> actualFunctionalMenuRoleList = null; -// actualFunctionalMenuRoleList = functionalMenuService.getFunctionalMenuRole(); -// assertTrue(actualFunctionalMenuRoleList.contains(expectedFunctionalMenuRole)); -// -// } -//} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserNotificationServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserNotificationServiceImplTest.java new file mode 100644 index 00000000..ad41d5f6 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserNotificationServiceImplTest.java @@ -0,0 +1,209 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserNotification; +import org.onap.portalapp.portal.domain.EcompAppRole; +import org.onap.portalapp.portal.transport.EpNotificationItem; +import org.onap.portalapp.portal.transport.EpNotificationItemVO; +import org.onap.portalapp.portal.transport.EpRoleNotificationItem; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; + +public class UserNotificationServiceImplTest { + + @Mock + DataAccessService dataAccessService = new DataAccessServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + UserNotificationServiceImpl userNotificationServiceImpl = new UserNotificationServiceImpl(); + + MockEPUser mockUser = new MockEPUser(); + + @Test + public void getNotificationsTest() { + EPUser user = mockUser.mockEPUser(); + Map<String, String> params = new HashMap<>(); + params.put("user_id", String.valueOf(user.getId())); + List<EpNotificationItem> mockNotificationList = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getNotifications", params, null)).thenReturn(mockNotificationList); + List<EpNotificationItem> notificationList = userNotificationServiceImpl.getNotifications(user.getId()); + assertEquals(notificationList, mockNotificationList); + } + + @Test + public void getNotificationHistoryVOTest() { + EPUser user = mockUser.mockEPUser(); + Map<String, String> params = new HashMap<String, String>(); + params.put("user_id", String.valueOf(user.getId())); + List<EpNotificationItemVO> mockNotificationListVO = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getNotificationHistoryVO", + params, null)).thenReturn(mockNotificationListVO); + List<EpNotificationItemVO> notificationListVO = userNotificationServiceImpl.getNotificationHistoryVO(user.getId()); + assertEquals(notificationListVO,mockNotificationListVO); + } + + @Test + public void getAdminNotificationVOSTest() { + EPUser user = mockUser.mockEPUser(); + Map<String, String> params = new HashMap<String, String>(); + params.put("user_id", String.valueOf(user.getId())); + List<EpNotificationItemVO> mockAdminNotificationListItemVO = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getAdminNotificationHistoryVO", + params, null)).thenReturn(mockAdminNotificationListItemVO); + List<EpNotificationItemVO> adminNotificationListItemVO = userNotificationServiceImpl.getAdminNotificationVOS(user.getId()); + assertEquals(adminNotificationListItemVO,mockAdminNotificationListItemVO); + } + + @Test + public void getNotificationRolesTest() { + Map<String, String> params = new HashMap<String, String>(); + params.put("notificationId", Long.toString(1l)); + List<EpRoleNotificationItem> mockRoleNotifList = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getNotificationRoles", + params, null)).thenReturn(mockRoleNotifList); + List<EpRoleNotificationItem> roleNotifList = userNotificationServiceImpl.getNotificationRoles(1l); + assertEquals(roleNotifList,mockRoleNotifList); + } + + @Test + public void getAppRoleListTest() { + List<EcompAppRole> mockAppRoleList = new ArrayList<>(); + Mockito.when(dataAccessService + .executeNamedQuery("getEpNotificationAppRoles", null, null)).thenReturn(mockAppRoleList); + List<EcompAppRole> appRoleList = userNotificationServiceImpl.getAppRoleList(); + assertEquals(mockAppRoleList, appRoleList); + } + + @Test + public void setNotificationReadTest() { + EPUserNotification mockUserNotification = new EPUserNotification(); + mockUserNotification.setNotificationId(1l); + mockUserNotification.setId(1l); + mockUserNotification.setUpdateTime(new Date()); + mockUserNotification.setViewed("Y"); + mockUserNotification.setUserId((long) 1); + Mockito.doNothing().when(dataAccessService).saveDomainObject(mockUserNotification, null); + userNotificationServiceImpl.setNotificationRead(1l, 1); + } + + @Test + public void saveNotificationTest() throws Exception { + EpNotificationItem epNotificationItem = new EpNotificationItem(); + List<Long> roleIdList = new ArrayList<>(); + Long roleId = new Long(1l); + Long roleId2 = new Long(16l); + roleIdList.add(roleId); + roleIdList.add(roleId2); + epNotificationItem.setIsForAllRoles("N"); + epNotificationItem.setRoleIds(roleIdList); + epNotificationItem.setNotificationId(1l); + Mockito.doNothing().when(dataAccessService).saveDomainObject(epNotificationItem, null); + userNotificationServiceImpl.saveNotification(epNotificationItem); + } + + @Test + public void getUsersByOrgIdsTest() { + Map<String, Object> params = new HashMap<String, Object>(); + params.put("OrgIds", "test"); + List<EPUser> mockUserList = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("getUsersByOrgIdsNotifications", + params, null)).thenReturn(mockUserList); + List<String> orgIdsList = new ArrayList<>(); + String orgId = "test"; + orgIdsList.add(orgId); + List<EPUser> userList = userNotificationServiceImpl.getUsersByOrgIds(orgIdsList); + assertEquals(userList, mockUserList); + } + + @Test + public void getMessageRecipientsTest() { + Map<String, String> params = new HashMap<>(); + params.put("notificationId", Long.toString(1l)); + List<String> mockActiveUsers = new ArrayList<>(); + Mockito.when(dataAccessService.executeNamedQuery("messageRecipients", + params, null)).thenReturn(mockActiveUsers); + List<String> activeUsers = userNotificationServiceImpl.getMessageRecipients(1l); + assertEquals(activeUsers, mockActiveUsers); + } + + @Test + public void deleteNotificationsFromEpNotificationTableTest() { + Map<String, String> params = new HashMap<String, String>(); + Mockito.when(dataAccessService + .executeNamedQuery("deleteNotificationsFromEpUserNotificationTable", params, null)).thenReturn(null); + userNotificationServiceImpl.deleteNotificationsFromEpNotificationTable(); + } + + @Test + public void deleteNotificationsFromEpUserNotificationTable() { + Map<String, String> params = new HashMap<String, String>(); + Mockito.when(dataAccessService + .executeNamedQuery("deleteNotificationsFromEpUserNotificationTable", params, null)).thenReturn(null); + userNotificationServiceImpl.deleteNotificationsFromEpUserNotificationTable(); + } + + @Test + public void deleteNotificationsFromEpRoleNotificationTable() { + Map<String, String> params = new HashMap<String, String>(); + Mockito.when(dataAccessService + .executeNamedQuery("deleteNotificationsFromEpRoleNotificationTable", params, null)).thenReturn(null); + userNotificationServiceImpl.deleteNotificationsFromEpRoleNotificationTable(); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java new file mode 100644 index 00000000..2cb285f3 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/UserRolesCommonServiceImplTest.java @@ -0,0 +1,1466 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; + +import javax.servlet.http.HttpServletResponse; + +import org.apache.cxf.transport.http.HTTPException; +import org.hibernate.Query; +import org.hibernate.SQLQuery; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.json.JSONObject; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Matchers; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemRoleApproval; +import org.onap.portalapp.externalsystemapproval.model.ExternalSystemUser; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPApp; +import org.onap.portalapp.portal.domain.EPRole; +import org.onap.portalapp.portal.domain.EPUser; +import org.onap.portalapp.portal.domain.EPUserApp; +import org.onap.portalapp.portal.domain.EPUserAppCatalogRoles; +import org.onap.portalapp.portal.domain.EPUserAppRoles; +import org.onap.portalapp.portal.domain.EPUserAppRolesRequest; +import org.onap.portalapp.portal.domain.EPUserAppRolesRequestDetail; +import org.onap.portalapp.portal.domain.ExternalSystemAccess; +import org.onap.portalapp.portal.transport.AppWithRolesForUser; +import org.onap.portalapp.portal.transport.CentralV2Role; +import org.onap.portalapp.portal.transport.EPUserAppCurrentRoles; +import org.onap.portalapp.portal.transport.EcompUserAppRoles; +import org.onap.portalapp.portal.transport.ExternalRequestFieldsValidator; +import org.onap.portalapp.portal.transport.FieldsValidator; +import org.onap.portalapp.portal.transport.FunctionalMenuItem; +import org.onap.portalapp.portal.transport.FunctionalMenuRole; +import org.onap.portalapp.portal.transport.RemoteRole; +import org.onap.portalapp.portal.transport.RemoteUserWithRoles; +import org.onap.portalapp.portal.transport.RoleInAppForUser; +import org.onap.portalapp.portal.transport.UserApplicationRoles; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; +import org.onap.portalapp.portal.utils.EcompPortalUtils; +import org.onap.portalapp.portal.utils.PortalConstants; +import org.onap.portalsdk.core.domain.Role; +import org.onap.portalsdk.core.restful.domain.EcompRole; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; +import org.onap.portalsdk.core.service.RoleServiceImpl; +import org.onap.portalsdk.core.util.SystemProperties; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ EcompPortalUtils.class, SystemProperties.class, PortalConstants.class, + EPCommonSystemProperties.class }) +public class UserRolesCommonServiceImplTest { + + @Mock + DataAccessService dataAccessService = new DataAccessServiceImpl(); + + @Mock + EPAppCommonServiceImpl epAppCommonServiceImpl = new EPAppCommonServiceImpl(); + + @Mock + ExternalAccessRolesServiceImpl externalAccessRolesServiceImpl = new ExternalAccessRolesServiceImpl(); + + @Mock + ApplicationsRestClientService applicationsRestClientService; + + @Mock + RoleServiceImpl roleServiceImpl = new RoleServiceImpl(); + + @Mock + SearchServiceImpl searchServiceImpl = new SearchServiceImpl(); + + @Mock + EPRoleServiceImpl epRoleServiceImpl = new EPRoleServiceImpl(); + + @Mock + RestTemplate template = new RestTemplate(); + + @Mock + SessionFactory sessionFactory; + + @Mock + Session session; + + @Mock + Transaction transaction; + + @InjectMocks + UserRolesCommonServiceImpl userRolesCommonServiceImpl = new UserRolesCommonServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + Mockito.when(sessionFactory.openSession()).thenReturn(session); + Mockito.when(session.beginTransaction()).thenReturn(transaction); + } + + @After + public void after() { + session.close(); + } + + MockEPUser mockUser = new MockEPUser(); + + public EPApp mockApp() { + EPApp app = new EPApp(); + app.setName("Test"); + app.setImageUrl("test"); + app.setDescription("test"); + app.setNotes("test"); + app.setUrl("test"); + app.setId((long) 1); + app.setAppRestEndpoint("test"); + app.setAlternateUrl("test"); + app.setName("test"); + app.setMlAppName("test"); + app.setMlAppAdminId("test"); + app.setUsername("test"); + app.setAppPassword("test"); + app.setOpen(false); + app.setEnabled(false); + app.setCentralAuth(true); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.setAppType(1); + return app; + } + + @SuppressWarnings("unchecked") + @Test + public void getAppRolesForUserCentralizedForPortal() throws Exception { + EPUser user = mockUser.mockEPUser(); + EPApp mockApp = mockApp(); + Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp); + List<RoleInAppForUser> mockRoleInAppForUserList = getMockedRoleInAppUserList(); + List<CentralV2Role> mockCenV2Role = new ArrayList<>(); + CentralV2Role cenV2Role = new CentralV2Role(1l, null, null, null, null, null, "test1", true, null, + new TreeSet<>(), new TreeSet<>(), new TreeSet<>()); + CentralV2Role cenV2Role2 = new CentralV2Role(16l, null, null, null, null, null, "test2", true, null, + new TreeSet<>(), new TreeSet<>(), new TreeSet<>()); + mockCenV2Role.add(cenV2Role); + mockCenV2Role.add(cenV2Role2); + Mockito.when(externalAccessRolesServiceImpl.getRolesForApp(mockApp.getUebKey())).thenReturn(mockCenV2Role); + List<EPUser> mockUserList = new ArrayList<>(); + mockUserList.add(user); + Mockito.when((List<EPUser>) dataAccessService + .executeQuery("from EPUser where orgUserId='" + user.getOrgUserId() + "'", null)) + .thenReturn(mockUserList); + Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(1l, user.getOrgUserId(), true)) + .thenReturn(mockRoleInAppForUserList); + List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(1l, "test", true); + assertEquals(roleInAppForUser, mockRoleInAppForUserList); + } + + private List<RoleInAppForUser> getMockedRoleInAppUserList() { + List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>(); + RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser(); + mockRoleInAppForUser.setIsApplied(false); + mockRoleInAppForUser.setRoleId(1l); + mockRoleInAppForUser.setRoleName("test1"); + RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser(); + mockRoleInAppForUser2.setIsApplied(false); + mockRoleInAppForUser2.setRoleId(16l); + mockRoleInAppForUser2.setRoleName("test2"); + mockRoleInAppForUserList.add(mockRoleInAppForUser); + mockRoleInAppForUserList.add(mockRoleInAppForUser2); + return mockRoleInAppForUserList; + } + + @SuppressWarnings("unchecked") + @Test + public void getAppRolesForUserNonCentralizedForPortal() throws Exception { + EPUser user = mockUser.mockEPUser(); + user.setId(1l); + EPApp mockApp = mockApp(); + mockApp.setCentralAuth(false); + EPRole mockEPRole = new EPRole(); + mockEPRole.setId(1l); + mockEPRole.setName("test1"); + mockEPRole.setActive(true); + SortedSet<EPUserApp> mockUserApps = new TreeSet<EPUserApp>(); + EPUserApp mockEPUserApp = new EPUserApp(); + mockEPUserApp.setApp(mockApp); + mockEPUserApp.setRole(mockEPRole); + mockEPUserApp.setUserId(1l); + mockUserApps.add(mockEPUserApp); + user.setEPUserApps(mockUserApps); + Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp); + List<RoleInAppForUser> mockRoleInAppForUserListNonCentralizedList = getMockedRoleInAppUserList(); + List<Role> mockRole = new ArrayList<>(); + Role role = new Role(); + role.setId(1l); + role.setName("test1"); + role.setActive(true); + Role role2 = new Role(); + role.setId(16l); + role.setName("test2"); + role.setActive(true); + mockRole.add(role); + mockRole.add(role2); + Mockito.when(roleServiceImpl.getAvailableRoles(user.getOrgUserId())).thenReturn(mockRole); + List<EPUser> mockUserList = new ArrayList<>(); + mockUserList.add(user); + Mockito.when((List<EPUser>) dataAccessService + .executeQuery("from EPUser where orgUserId='" + user.getOrgUserId() + "'", null)) + .thenReturn(mockUserList); + Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(1l, user.getOrgUserId(), true)) + .thenReturn(mockRoleInAppForUserListNonCentralizedList); + List<RoleInAppForUser> roleInAppForUserNonCentralized = userRolesCommonServiceImpl.getAppRolesForUser(1l, + user.getOrgUserId(), true); + assertNull(roleInAppForUserNonCentralized); + } + + @Test + public void getAppRolesForCentralizedPartnerAppTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + EPApp mockApp = mockApp(); + mockApp.setId(2l); + Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp); + List<RoleInAppForUser> mockRoleInAppForUserList = getMockedRoleInAppUserList(); + List<EPRole> mockEPRoleList = new ArrayList<>(); + EPRole mockEpRole = new EPRole(); + mockEpRole.setActive(true); + mockEpRole.setAppId(2l); + mockEpRole.setName("test1"); + mockEpRole.setAppRoleId(333l); + mockEpRole.setId(1l); + EPRole mockEpRole2 = new EPRole(); + mockEpRole2.setActive(true); + mockEpRole2.setAppId(2l); + mockEpRole2.setName("test2"); + mockEpRole2.setAppRoleId(444l); + mockEpRole2.setId(16l); + mockEPRoleList.add(mockEpRole); + mockEPRoleList.add(mockEpRole2); + final Map<String, Long> appParams = new HashMap<>(); + appParams.put("appId", 2l); + Mockito.when(dataAccessService.executeNamedQuery("getActiveRolesOfApplication", appParams, null)) + .thenReturn(mockEPRoleList); + final Map<String, String> params = new HashMap<>(); + params.put("orgUserIdValue", "guestT"); + List<EPUser> mockEPUserList = new ArrayList<>(); + mockEPUserList.add(user); + Mockito.when(dataAccessService.executeNamedQuery("epUserAppId", params, null)).thenReturn(mockEPUserList); + final Map<String, Long> userParams = new HashMap<>(); + userParams.put("appId", mockApp.getId()); + userParams.put("userId", mockEPUserList.get(0).getId()); + List<EPUserAppCurrentRoles> epUserAppCurrentRolesList = new ArrayList<>(); + EPUserAppCurrentRoles epUserAppCurrentRoles = new EPUserAppCurrentRoles(); + epUserAppCurrentRoles.setRoleId(444l); + epUserAppCurrentRoles.setRoleName("TestPartnerRole2"); + epUserAppCurrentRoles.setUserId(mockEPUserList.get(0).getId()); + epUserAppCurrentRolesList.add(epUserAppCurrentRoles); + Mockito.when(dataAccessService.executeNamedQuery("getUserAppCurrentRoles", userParams, null)) + .thenReturn(epUserAppCurrentRolesList); + Mockito.when(userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(), true)) + .thenReturn(mockRoleInAppForUserList); + List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(), + true); + assertEquals(roleInAppForUser, mockRoleInAppForUserList); + } + + @Test + public void getAppRolesForNonCentralizedPartnerAppTest() throws Exception { + EPUser user = mockUser.mockEPUser(); + user.setId(2l); + List<EPUser> mockEpUserList = new ArrayList<>(); + mockEpUserList.add(user); + EPApp mockApp = mockApp(); + mockApp.setId(2l); + mockApp.setCentralAuth(false); + Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp); + List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>(); + RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser(); + mockRoleInAppForUser.setIsApplied(true); + mockRoleInAppForUser.setRoleId(333l); + mockRoleInAppForUser.setRoleName("test1"); + RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser(); + mockRoleInAppForUser2.setIsApplied(true); + mockRoleInAppForUser2.setRoleId(777l); + mockRoleInAppForUser2.setRoleName("test2"); + RoleInAppForUser mockRoleInAppForUser3 = new RoleInAppForUser(); + mockRoleInAppForUser3.setIsApplied(false); + mockRoleInAppForUser3.setRoleId(888l); + mockRoleInAppForUser3.setRoleName("test5"); + mockRoleInAppForUserList.add(mockRoleInAppForUser); + mockRoleInAppForUserList.add(mockRoleInAppForUser2); + mockRoleInAppForUserList.add(mockRoleInAppForUser3); + List<EcompRole> mockEcompRoleList = new ArrayList<>(); + EcompRole mockEcompRole = new EcompRole(); + mockEcompRole.setId(333l); + mockEcompRole.setName("test1"); + EcompRole mockEcompRole2 = new EcompRole(); + mockEcompRole2.setId(777l); + mockEcompRole2.setName("test2"); + EcompRole mockEcompRole3 = new EcompRole(); + mockEcompRole3.setId(888l); + mockEcompRole3.setName("test5"); + mockEcompRoleList.add(mockEcompRole); + mockEcompRoleList.add(mockEcompRole2); + mockEcompRoleList.add(mockEcompRole3); + EcompRole[] mockEcompRoleArray = mockEcompRoleList.toArray(new EcompRole[mockEcompRoleList.size()]); + List<EPRole> mockEPRoleList = new ArrayList<>(); + EPRole mockEpRole = new EPRole(); + mockEpRole.setActive(true); + mockEpRole.setAppId(2l); + mockEpRole.setName("test1"); + mockEpRole.setAppRoleId(333l); + mockEpRole.setId(16l); + EPRole mockEpRole2 = new EPRole(); + mockEpRole2.setActive(true); + mockEpRole2.setAppId(2l); + mockEpRole2.setName("test3"); + mockEpRole2.setAppRoleId(555l); + mockEpRole2.setId(15l); + EPRole mockEpRole3 = new EPRole(); + mockEpRole3.setActive(true); + mockEpRole3.setAppId(2l); + mockEpRole3.setName("test4"); + mockEpRole3.setAppRoleId(888l); + mockEpRole3.setId(17l); + mockEPRoleList.add(mockEpRole); + mockEPRoleList.add(mockEpRole2); + mockEPRoleList.add(mockEpRole3); + List<EPUserApp> mockUserRolesList = new ArrayList<>(); + EPUserApp mockEpUserApp = new EPUserApp(); + mockEpUserApp.setApp(mockApp); + mockEpUserApp.setRole(mockEpRole2); + mockEpUserApp.setUserId(user.getId()); + mockUserRolesList.add(mockEpUserApp); + List<FunctionalMenuRole> mockFunctionalMenuRolesList = new ArrayList<>(); + FunctionalMenuRole mockFunctionalMenuRole = new FunctionalMenuRole(); + mockFunctionalMenuRole.setAppId((int) (long) mockApp.getId()); + mockFunctionalMenuRole.setRoleId((int) (long) 15l); + mockFunctionalMenuRole.setMenuId(10l); + mockFunctionalMenuRole.setId(10); + mockFunctionalMenuRolesList.add(mockFunctionalMenuRole); + List<FunctionalMenuItem> mockFunctionalMenuItemList = new ArrayList<>(); + FunctionalMenuItem mockFunctionalMenuItem = new FunctionalMenuItem(); + List<Integer> mockRolesList = new ArrayList<>(); + Integer role1 = 1; + mockRolesList.add(role1); + mockFunctionalMenuItem.setRestrictedApp(false); + mockFunctionalMenuItem.setRoles(mockRolesList); + mockFunctionalMenuItem.setUrl("http://test.com"); + mockFunctionalMenuItemList.add(mockFunctionalMenuItem); + Query epRoleQuery = Mockito.mock(Query.class); + Query epUserAppsQuery = Mockito.mock(Query.class); + Query epFunctionalMenuQuery = Mockito.mock(Query.class); + Query epFunctionalMenuQuery2 = Mockito.mock(Query.class); + Query epFunctionalMenuItemQuery = Mockito.mock(Query.class); + Query epUserListQuery = Mockito.mock(Query.class); + Query epUserRolesListQuery = Mockito.mock(Query.class); + Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles")) + .thenReturn(mockEcompRoleArray); + // syncAppRolesTest + Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId=" + mockApp.getId())) + .thenReturn(epRoleQuery); + Mockito.doReturn(mockEPRoleList).when(epRoleQuery).list(); + Mockito.when(session.createQuery( + "from " + EPUserApp.class.getName() + " where app.id=" + mockApp.getId() + " and role_id=" + 15l)) + .thenReturn(epUserAppsQuery); + Mockito.doReturn(mockUserRolesList).when(epUserAppsQuery).list(); + + Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where roleId=" + 15l)) + .thenReturn(epFunctionalMenuQuery); + Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery).list(); + + Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where menuId=" + 10l)) + .thenReturn(epFunctionalMenuQuery2); + Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery2).list(); + + Mockito.when(session.createQuery("from " + FunctionalMenuItem.class.getName() + " where menuId=" + 10l)) + .thenReturn(epFunctionalMenuItemQuery); + Mockito.doReturn(mockFunctionalMenuItemList).when(epFunctionalMenuItemQuery).list(); + List<EcompRole> mockEcompRoleList2 = new ArrayList<>(); + EcompRole mockUserAppRoles = new EcompRole(); + mockUserAppRoles.setId(333l); + mockUserAppRoles.setName("test1"); + EcompRole mockUserAppRoles2 = new EcompRole(); + mockUserAppRoles2.setId(777l); + mockUserAppRoles2.setName("test2"); + mockEcompRoleList2.add(mockUserAppRoles); + mockEcompRoleList2.add(mockUserAppRoles2); + EcompRole[] mockEcompRoleArray2 = mockEcompRoleList2.toArray(new EcompRole[mockEcompRoleList2.size()]); + Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), + String.format("/user/%s/roles", user.getOrgUserId()))).thenReturn(mockEcompRoleArray2); + // SyncUserRoleTest + Mockito.when(session + .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'")) + .thenReturn(epUserListQuery); + Mockito.doReturn(mockEpUserList).when(epUserListQuery).list(); + + List<EPUserApp> mockUserRolesList2 = new ArrayList<>(); + EPUserApp mockEpUserAppRoles = new EPUserApp(); + mockEpUserAppRoles.setApp(mockApp); + mockEpUserAppRoles.setRole(mockEpRole3); + mockEpUserAppRoles.setUserId(user.getId()); + mockUserRolesList2.add(mockEpUserAppRoles); + Mockito.when(session.createQuery( + "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2")) + .thenReturn(epUserRolesListQuery); + Mockito.doReturn(mockUserRolesList2).when(epUserRolesListQuery).list(); + List<RoleInAppForUser> roleInAppForUser = userRolesCommonServiceImpl.getAppRolesForUser(2l, user.getOrgUserId(), + true); + assertEquals(roleInAppForUser, mockRoleInAppForUserList); + } + + @SuppressWarnings("unchecked") + @Test + public void setAppWithUserRoleStateForUserTestForCentralizedAppForPortal() throws Exception { + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(PortalConstants.class); + EPUser user = mockUser.mockEPUser(); + user.setId(2l); + List<EPUser> mockEpUserList = new ArrayList<>(); + mockEpUserList.add(user); + EPApp mockApp = mockApp(); + mockApp.setNameSpace("com.test.com"); + mockApp.setId(1l); + mockApp.setCentralAuth(true); + Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + AppWithRolesForUser mockWithRolesForUser = new AppWithRolesForUser(); + List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>(); + RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser(); + mockRoleInAppForUser.setIsApplied(true); + mockRoleInAppForUser.setRoleId(1l); + mockRoleInAppForUser.setRoleName("test1"); + RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser(); + mockRoleInAppForUser2.setIsApplied(true); + mockRoleInAppForUser2.setRoleId(1000l); + mockRoleInAppForUser2.setRoleName("test3"); + mockRoleInAppForUserList.add(mockRoleInAppForUser); + mockRoleInAppForUserList.add(mockRoleInAppForUser2); + mockWithRolesForUser.setAppId(mockApp.getId()); + mockWithRolesForUser.setAppName(mockApp.getName()); + mockWithRolesForUser.setOrgUserId(user.getOrgUserId()); + mockWithRolesForUser.setAppRoles(mockRoleInAppForUserList); + List<EPUserAppRolesRequest> mockEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>(); + Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>(); + EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); + mockEpUserAppRolesRequestDetail.setId(2l); + mockEpUserAppRolesRequestDetail.setReqType("P"); + mockEpUserAppRolesRequestDetail.setReqRoleId(16l); + EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest(); + mockEPUserAppRolesRequest.setAppId(mockApp.getId()); + mockEPUserAppRolesRequest.setId(1l); + mockEPUserAppRolesRequest.setRequestStatus("P"); + mockEPUserAppRolesRequest.setUserId(user.getId()); + mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList); + mockEpRequestIdValList.add(mockEPUserAppRolesRequest); + mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest); + mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail); + + // Update Requests if any requests are pending + final Map<String, Long> params = new HashMap<>(); + params.put("appId", mockApp.getId()); + params.put("userId", user.getId()); + Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList", + params, null)).thenReturn(mockEpRequestIdValList); + mockEPUserAppRolesRequest.setUpdatedDate(new Date()); + mockEPUserAppRolesRequest.setRequestStatus("O"); + HashMap<String, Long> additionalUpdateParam = new HashMap<String, Long>(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPUserAppRolesRequest, additionalUpdateParam); + List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>(); + EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); + mockEpUserAppRolesRequestDetail.setId(2l); + mockEpUserAppRolesRequestDetail.setReqType("P"); + mockEpUserAppRolesRequestDetail.setReqRoleId(16l); + mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail); + // Updates in External Auth System + final Map<String, String> userParams = new HashMap<>(); + userParams.put("orgUserIdValue", user.getOrgUserId()); + Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null)) + .thenReturn(mockEpUserList); + PowerMockito + .when(EPCommonSystemProperties + .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) + .thenReturn(true); + PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) + .thenReturn("@test.com"); + HttpHeaders headers = new HttpHeaders(); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + JSONObject mockJsonObject1 = new JSONObject(); + JSONObject mockJsonObject2 = new JSONObject(); + JSONObject mockJsonObject3 = new JSONObject(); + mockJsonObject1.put("name", "com.test.com.test1"); + mockJsonObject2.put("name", "com.test.com.test2"); + List<JSONObject> mockJson = new ArrayList<>(); + mockJson.add(mockJsonObject1); + mockJson.add(mockJsonObject2); + mockJsonObject3.put("role", mockJson); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObject3.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + EPRole mockEPRole = new EPRole(); + mockEPRole.setActive(true); + mockEPRole.setAppId(null); + mockEPRole.setAppRoleId(null); + mockEPRole.setId(1l); + mockEPRole.setName("test1"); + EPRole mockEPRole2 = new EPRole(); + mockEPRole2.setActive(true); + mockEPRole2.setAppId(null); + mockEPRole2.setAppRoleId(null); + mockEPRole2.setId(16l); + mockEPRole2.setName("test2"); + EPRole mockEPRole3 = new EPRole(); + mockEPRole3.setActive(true); + mockEPRole3.setAppId(null); + mockEPRole3.setAppRoleId(null); + mockEPRole3.setId(1000l); + mockEPRole3.setName("test3"); + Map<String, EPRole> mockEPRoleList = new HashMap<>(); + mockEPRoleList.put("test1", mockEPRole); + mockEPRoleList.put("test2", mockEPRole2); + mockEPRoleList.put("test3", mockEPRole3); + Mockito.when(externalAccessRolesServiceImpl.getCurrentRolesInDB(mockApp)).thenReturn(mockEPRoleList); + final Map<String, Long> params2 = new HashMap<>(); + params2.put("appId", mockApp.getId()); + params2.put("userId", user.getId()); + List<EcompUserAppRoles> mockEPuserAppList = getCurrentUserRoles(user, mockApp); + Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null)) + .thenReturn(mockEPuserAppList); + final Map<String, Long> epDetailParams = new HashMap<>(); + epDetailParams.put("reqId", mockEPUserAppRolesRequest.getId()); + Mockito.when(dataAccessService.executeNamedQuery("userAppRolesRequestDetailList", epDetailParams, null)) + .thenReturn(mockGetEpUserAppRolesRequestDetailList); + + ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.CREATED); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addResponse); + + ResponseEntity<String> deleteResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(deleteResponse); + + // Updates in EP DB + Query epsetAppWithUserRoleGetUserQuery = Mockito.mock(Query.class); + Query epsetAppWithUserRoleGetUserAppsQuery = Mockito.mock(Query.class); + Query epsetAppWithUserRoleGetRolesQuery = Mockito.mock(Query.class); + SQLQuery epsetAppWithUserRoleUpdateEPRoleQuery = Mockito.mock(SQLQuery.class); + Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp); + Mockito.when(session + .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'")) + .thenReturn(epsetAppWithUserRoleGetUserQuery); + Mockito.doReturn(mockEpUserList).when(epsetAppWithUserRoleGetUserQuery).list(); + List<EPUserApp> mockUserRolesList2 = new ArrayList<>(); + EPUserApp mockEpUserAppRoles = new EPUserApp(); + mockEpUserAppRoles.setApp(mockApp); + mockEpUserAppRoles.setRole(mockEPRole); + mockEpUserAppRoles.setUserId(user.getId()); + mockUserRolesList2.add(mockEpUserAppRoles); + Mockito.when(session.createQuery( + "from org.onap.portalapp.portal.domain.EPUserApp where app.id=1 and role.active = 'Y' and userId=2")) + .thenReturn(epsetAppWithUserRoleGetUserAppsQuery); + Mockito.doReturn(mockUserRolesList2).when(epsetAppWithUserRoleGetUserAppsQuery).list(); + List<EPRole> mockEPRoles = new ArrayList<>(); + mockEPRoles.add(mockEPRole2); + mockEPRoles.add(mockEPRole3); + Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId is null and id != 1")) + .thenReturn(epsetAppWithUserRoleGetRolesQuery); + Mockito.doReturn(mockEPRoles).when(epsetAppWithUserRoleGetRolesQuery).list(); + Mockito.when(session.createSQLQuery("update fn_role set app_id = null where app_id = 1 ")) + .thenReturn(epsetAppWithUserRoleUpdateEPRoleQuery); + boolean actual = userRolesCommonServiceImpl.setAppWithUserRoleStateForUser(user, mockWithRolesForUser); + assertTrue(actual); + } + + private List<EcompUserAppRoles> getCurrentUserRoles(EPUser user, EPApp mockApp) { + List<EcompUserAppRoles> mockEPuserAppList = new ArrayList<>(); + EcompUserAppRoles mockEcompUserAppRoles = new EcompUserAppRoles(); + mockEcompUserAppRoles.setAppId(String.valueOf(mockApp.getId())); + mockEcompUserAppRoles.setRoleId(1l); + mockEcompUserAppRoles.setRoleName("test1"); + mockEcompUserAppRoles.setUserId(user.getId()); + mockEPuserAppList.add(mockEcompUserAppRoles); + return mockEPuserAppList; + } + + @SuppressWarnings("unchecked") + @Test + public void setAppWithUserRoleStateForUserTestForNonCentralizedApp() throws Exception { + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(PortalConstants.class); + EPUser user = mockUser.mockEPUser(); + user.setId(2l); + List<EPUser> mockEpUserList = new ArrayList<>(); + mockEpUserList.add(user); + EPApp mockApp = mockApp(); + mockApp.setNameSpace("com.test.com"); + mockApp.setId(2l); + mockApp.setCentralAuth(false); + Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + AppWithRolesForUser mockWithRolesForUser = new AppWithRolesForUser(); + List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>(); + RoleInAppForUser mockRoleInAppForUser = new RoleInAppForUser(); + mockRoleInAppForUser.setIsApplied(true); + mockRoleInAppForUser.setRoleId(1l); + mockRoleInAppForUser.setRoleName("test1"); + RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser(); + mockRoleInAppForUser2.setIsApplied(true); + mockRoleInAppForUser2.setRoleId(1000l); + mockRoleInAppForUser2.setRoleName("test3"); + mockRoleInAppForUserList.add(mockRoleInAppForUser); + mockRoleInAppForUserList.add(mockRoleInAppForUser2); + mockWithRolesForUser.setAppId(mockApp.getId()); + mockWithRolesForUser.setAppName(mockApp.getName()); + mockWithRolesForUser.setOrgUserId(user.getOrgUserId()); + mockWithRolesForUser.setAppRoles(mockRoleInAppForUserList); + List<EPUserAppRolesRequest> mockEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>(); + Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>(); + EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); + mockEpUserAppRolesRequestDetail.setId(2l); + mockEpUserAppRolesRequestDetail.setReqType("P"); + mockEpUserAppRolesRequestDetail.setReqRoleId(16l); + EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest(); + mockEPUserAppRolesRequest.setAppId(mockApp.getId()); + mockEPUserAppRolesRequest.setId(1l); + mockEPUserAppRolesRequest.setRequestStatus("P"); + mockEPUserAppRolesRequest.setUserId(user.getId()); + mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList); + mockEpRequestIdValList.add(mockEPUserAppRolesRequest); + mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest); + mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail); + + // Update Requests if any requests are pending + final Map<String, Long> params = new HashMap<>(); + params.put("appId", mockApp.getId()); + params.put("userId", user.getId()); + Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList", + params, null)).thenReturn(mockEpRequestIdValList); + mockEPUserAppRolesRequest.setUpdatedDate(new Date()); + mockEPUserAppRolesRequest.setRequestStatus("O"); + HashMap<String, Long> additionalUpdateParam = new HashMap<String, Long>(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPUserAppRolesRequest, additionalUpdateParam); + List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>(); + EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); + mockEpUserAppRolesRequestDetail.setId(2l); + mockEpUserAppRolesRequestDetail.setReqType("P"); + mockEpUserAppRolesRequestDetail.setReqRoleId(16l); + mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail); + final Map<String, Long> epDetailParams = new HashMap<>(); + epDetailParams.put("reqId", mockEPUserAppRolesRequest.getId()); + + final Map<String, String> userParams = new HashMap<>(); + userParams.put("orgUserIdValue", user.getOrgUserId()); + Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null)) + .thenReturn(mockEpUserList); + + PowerMockito + .when(EPCommonSystemProperties + .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) + .thenReturn(true); + PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) + .thenReturn("@test.com"); + HttpHeaders headers = new HttpHeaders(); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + EPRole mockEPRole = new EPRole(); + mockEPRole.setActive(true); + mockEPRole.setAppId(2l); + mockEPRole.setAppRoleId(null); + mockEPRole.setId(10l); + mockEPRole.setAppRoleId(1l); + mockEPRole.setName("test1"); + EPRole mockEPRole2 = new EPRole(); + mockEPRole2.setActive(true); + mockEPRole2.setAppId(2l); + mockEPRole2.setAppRoleId(null); + mockEPRole2.setId(160l); + mockEPRole2.setName("test2"); + mockEPRole2.setAppRoleId(16l); + EPRole mockEPRole3 = new EPRole(); + mockEPRole3.setActive(true); + mockEPRole3.setAppId(2l); + mockEPRole3.setAppRoleId(null); + mockEPRole3.setId(1100l); + mockEPRole3.setAppRoleId(100l); + mockEPRole3.setName("test3"); + Mockito.when(applicationsRestClientService.get(EPUser.class, mockApp.getId(), + String.format("/user/%s", user.getOrgUserId()), true)).thenReturn(user); + // Updates in EP DB + Query epsetAppWithUserRoleNonCentralizedGetUserQuery = Mockito.mock(Query.class); + Query epsetAppWithUserRoleNonCentralizedGetUserAppsQuery = Mockito.mock(Query.class); + Query epsetAppWithUserRoleNonCentralizedGetRolesQuery = Mockito.mock(Query.class); + Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp); + Mockito.when(session + .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'")) + .thenReturn(epsetAppWithUserRoleNonCentralizedGetUserQuery); + Mockito.doReturn(mockEpUserList).when(epsetAppWithUserRoleNonCentralizedGetUserQuery).list(); + List<EPUserApp> mockUserRolesList2 = new ArrayList<>(); + EPUserApp mockEpUserAppRoles = new EPUserApp(); + mockEpUserAppRoles.setApp(mockApp); + mockEpUserAppRoles.setRole(mockEPRole); + mockEpUserAppRoles.setUserId(user.getId()); + mockUserRolesList2.add(mockEpUserAppRoles); + Mockito.when(session.createQuery( + "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2")) + .thenReturn(epsetAppWithUserRoleNonCentralizedGetUserAppsQuery); + Mockito.doReturn(mockUserRolesList2).when(epsetAppWithUserRoleNonCentralizedGetUserAppsQuery).list(); + List<EPRole> mockEPRoles = new ArrayList<>(); + mockEPRoles.add(mockEPRole2); + mockEPRoles.add(mockEPRole3); + Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId=2")) + .thenReturn(epsetAppWithUserRoleNonCentralizedGetRolesQuery); + Mockito.doReturn(mockEPRoles).when(epsetAppWithUserRoleNonCentralizedGetRolesQuery).list(); + boolean expected = userRolesCommonServiceImpl.setAppWithUserRoleStateForUser(user, mockWithRolesForUser); + assertEquals(expected, true); + } + + @SuppressWarnings("unchecked") + @Test + public void setExternalRequestUserAppRoleMerdianCentralizedAppTest() throws Exception { + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EcompPortalUtils.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(PortalConstants.class); + EPUser user = mockUser.mockEPUser(); + user.setId(2l); + List<EPUser> mockEpUserList = new ArrayList<>(); + mockEpUserList.add(user); + EPApp mockApp = mockApp(); + mockApp.setNameSpace("com.test.com"); + mockApp.setId(1l); + mockApp.setCentralAuth(true); + Mockito.when(EcompPortalUtils.checkIfRemoteCentralAccessAllowed()).thenReturn(true); + ExternalSystemUser externalSystemUser = new ExternalSystemUser(); + List<ExternalSystemRoleApproval> mockExternalSystemRoleApprovalList = new ArrayList<>(); + ExternalSystemRoleApproval mockExternalSystemRoleApproval = new ExternalSystemRoleApproval(); + mockExternalSystemRoleApproval.setRoleName("test1"); + ExternalSystemRoleApproval mockExternalSystemRoleApproval2 = new ExternalSystemRoleApproval(); + mockExternalSystemRoleApproval2.setRoleName("test2"); + mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval); + mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval2); + externalSystemUser.setApplicationName(mockApp.getMlAppName()); + externalSystemUser.setLoginId(user.getOrgUserId()); + externalSystemUser.setRoles(mockExternalSystemRoleApprovalList); + EPRole mockEPRole = new EPRole(); + mockEPRole.setActive(true); + mockEPRole.setAppId(null); + mockEPRole.setAppRoleId(null); + mockEPRole.setId(1l); + mockEPRole.setName("test1"); + EPRole mockEPRole2 = new EPRole(); + mockEPRole2.setActive(true); + mockEPRole2.setAppId(null); + mockEPRole2.setAppRoleId(null); + mockEPRole2.setId(16l); + mockEPRole2.setName("test2"); + EPRole mockEPRole3 = new EPRole(); + mockEPRole3.setActive(true); + mockEPRole3.setAppId(null); + mockEPRole3.setAppRoleId(null); + mockEPRole3.setId(1000l); + mockEPRole3.setName("test3"); + + Mockito.when(epAppCommonServiceImpl.getAppDetail(mockApp.getMlAppName())).thenReturn(mockApp); + final Map<String, String> userParams = new HashMap<>(); + userParams.put("orgUserIdValue", user.getOrgUserId()); + Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null)) + .thenReturn(mockEpUserList); + + List<EPUserAppRolesRequest> mockMerdianEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>(); + Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>(); + EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); + mockEpUserAppRolesRequestDetail.setId(2l); + mockEpUserAppRolesRequestDetail.setReqType("P"); + mockEpUserAppRolesRequestDetail.setReqRoleId(16l); + EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest(); + mockEPUserAppRolesRequest.setAppId(mockApp.getId()); + mockEPUserAppRolesRequest.setId(1l); + mockEPUserAppRolesRequest.setRequestStatus("P"); + mockEPUserAppRolesRequest.setUserId(user.getId()); + mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList); + mockMerdianEpRequestIdValList.add(mockEPUserAppRolesRequest); + mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest); + mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail); + + final Map<String, Long> params = new HashMap<>(); + params.put("appId", mockApp.getId()); + params.put("userId", user.getId()); + Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList", + params, null)).thenReturn(mockMerdianEpRequestIdValList); + RoleInAppForUser mockRoleInAppForUser1 = new RoleInAppForUser(); + mockRoleInAppForUser1.setIsApplied(true); + mockRoleInAppForUser1.setRoleId(1l); + mockRoleInAppForUser1.setRoleName("test1"); + RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser(); + mockRoleInAppForUser2.setIsApplied(true); + mockRoleInAppForUser2.setRoleId(16l); + mockRoleInAppForUser2.setRoleName("test2"); + Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval.getRoleName(), mockApp.getId())) + .thenReturn(mockEPRole); + Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval2.getRoleName(), mockApp.getId())) + .thenReturn(mockEPRole2); + List<EcompUserAppRoles> mockEPuserAppList = getCurrentUserRoles(user, mockApp); + final Map<String, Long> params2 = new HashMap<>(); + params2.put("userId", user.getId()); + params2.put("appId", mockApp.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null)) + .thenReturn(mockEPuserAppList); + // Updates in External Auth System + List<EPUserAppRolesRequestDetail> mockGetEpUserAppRolesRequestDetailList = new ArrayList<EPUserAppRolesRequestDetail>(); + EPUserAppRolesRequestDetail mockGetEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); + mockEpUserAppRolesRequestDetail.setId(2l); + mockEpUserAppRolesRequestDetail.setReqType("P"); + mockEpUserAppRolesRequestDetail.setReqRoleId(16l); + mockGetEpUserAppRolesRequestDetailList.add(mockGetEpUserAppRolesRequestDetail); + final Map<String, String> userParams2 = new HashMap<>(); + userParams2.put("orgUserIdValue", user.getOrgUserId()); + Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams2, null)) + .thenReturn(mockEpUserList); + PowerMockito + .when(EPCommonSystemProperties + .containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) + .thenReturn(true); + PowerMockito.when(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN)) + .thenReturn("@test.com"); + HttpHeaders headers = new HttpHeaders(); + Mockito.when(EcompPortalUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(headers); + JSONObject mockJsonObject1 = new JSONObject(); + JSONObject mockJsonObject2 = new JSONObject(); + JSONObject mockJsonObject3 = new JSONObject(); + mockJsonObject1.put("name", "com.test.com.test1"); + mockJsonObject2.put("name", "com.test.com.test2"); + List<JSONObject> mockJson = new ArrayList<>(); + mockJson.add(mockJsonObject1); + mockJson.add(mockJsonObject2); + mockJsonObject3.put("role", mockJson); + ResponseEntity<String> getResponse = new ResponseEntity<>(mockJsonObject3.toString(), HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(getResponse); + Map<String, EPRole> mockEPRoleList = new HashMap<>(); + mockEPRoleList.put("test1", mockEPRole); + mockEPRoleList.put("test2", mockEPRole2); + mockEPRoleList.put("test3", mockEPRole3); + Mockito.when(externalAccessRolesServiceImpl.getCurrentRolesInDB(mockApp)).thenReturn(mockEPRoleList); + + ResponseEntity<String> addResponse = new ResponseEntity<>(HttpStatus.CREATED); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.POST), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(addResponse); + + ResponseEntity<String> deleteResponse = new ResponseEntity<>(HttpStatus.OK); + Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.DELETE), + Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(deleteResponse); + // Updated in EP DB + Query epsetExternalRequestUserAppRoleGetUserQuery = Mockito.mock(Query.class); + Query epsetExternalRequestUserAppRoleGetUserAppsQuery = Mockito.mock(Query.class); + Query epsetExternalRequestUserAppRoleGetRolesQuery = Mockito.mock(Query.class); + SQLQuery epsetAppWithUserRoleUpdateEPRoleQuery = Mockito.mock(SQLQuery.class); + Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp); + Mockito.when(session + .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'")) + .thenReturn(epsetExternalRequestUserAppRoleGetUserQuery); + Mockito.doReturn(mockEpUserList).when(epsetExternalRequestUserAppRoleGetUserQuery).list(); + List<EPUserApp> mockUserRolesList2 = new ArrayList<>(); + EPUserApp mockEpUserAppRoles = new EPUserApp(); + mockEpUserAppRoles.setApp(mockApp); + mockEpUserAppRoles.setRole(mockEPRole); + mockEpUserAppRoles.setUserId(user.getId()); + mockUserRolesList2.add(mockEpUserAppRoles); + Mockito.when(session.createQuery( + "from org.onap.portalapp.portal.domain.EPUserApp where app.id=1 and role.active = 'Y' and userId=2")) + .thenReturn(epsetExternalRequestUserAppRoleGetUserAppsQuery); + Mockito.doReturn(mockUserRolesList2).when(epsetExternalRequestUserAppRoleGetUserAppsQuery).list(); + List<EPRole> mockEPRoles = new ArrayList<>(); + mockEPRoles.add(mockEPRole2); + mockEPRoles.add(mockEPRole3); + Mockito.when(session.createQuery("from org.onap.portalapp.portal.domain.EPRole where appId is null ")) + .thenReturn(epsetExternalRequestUserAppRoleGetRolesQuery); + Mockito.doReturn(mockEPRoles).when(epsetExternalRequestUserAppRoleGetRolesQuery).list(); + Mockito.when(session.createSQLQuery("update fn_role set app_id = null where app_id = 1 ")) + .thenReturn(epsetAppWithUserRoleUpdateEPRoleQuery); + + ExternalRequestFieldsValidator mockExternalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, + "Updated Successfully"); + ExternalRequestFieldsValidator externalRequestFieldsValidator = userRolesCommonServiceImpl + .setExternalRequestUserAppRole(externalSystemUser, "POST"); + assertTrue(mockExternalRequestFieldsValidator.equals(externalRequestFieldsValidator)); + } + + @SuppressWarnings("unchecked") + @Test + public void setExternalRequestUserAppRoleMerdianNonCentralizedAppTest() throws Exception { + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + PowerMockito.mockStatic(PortalConstants.class); + EPUser user = mockUser.mockEPUser(); + user.setId(2l); + List<EPUser> mockEpUserList = new ArrayList<>(); + mockEpUserList.add(user); + EPApp mockApp = mockApp(); + mockApp.setId(2l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(false); + ExternalSystemUser externalSystemUser = new ExternalSystemUser(); + List<ExternalSystemRoleApproval> mockExternalSystemRoleApprovalList = new ArrayList<>(); + ExternalSystemRoleApproval mockExternalSystemRoleApproval = new ExternalSystemRoleApproval(); + mockExternalSystemRoleApproval.setRoleName("test1"); + ExternalSystemRoleApproval mockExternalSystemRoleApproval2 = new ExternalSystemRoleApproval(); + mockExternalSystemRoleApproval2.setRoleName("test2"); + mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval); + mockExternalSystemRoleApprovalList.add(mockExternalSystemRoleApproval2); + externalSystemUser.setApplicationName(mockApp.getMlAppName()); + externalSystemUser.setLoginId(user.getOrgUserId()); + externalSystemUser.setRoles(mockExternalSystemRoleApprovalList); + + EPRole mockEPRole = new EPRole(); + mockEPRole.setActive(true); + mockEPRole.setAppId(2l); + mockEPRole.setAppRoleId(1l); + mockEPRole.setId(1000l); + mockEPRole.setName("test1"); + EPRole mockEPRole2 = new EPRole(); + mockEPRole2.setActive(true); + mockEPRole2.setAppId(2l); + mockEPRole2.setAppRoleId(16l); + mockEPRole2.setId(160l); + mockEPRole2.setName("test2"); + EPRole mockEPRole3 = new EPRole(); + mockEPRole3.setActive(true); + mockEPRole3.setAppId(2l); + mockEPRole3.setAppRoleId(10l); + mockEPRole3.setId(100l); + mockEPRole3.setName("test3"); + + Mockito.when(epAppCommonServiceImpl.getAppDetail(mockApp.getMlAppName())).thenReturn(mockApp); + final Map<String, String> userParams = new HashMap<>(); + userParams.put("orgUserIdValue", user.getOrgUserId()); + Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("epUserAppId", userParams, null)) + .thenReturn(mockEpUserList); + + List<EPUserAppRolesRequest> mockMerdianEpRequestIdValList = new ArrayList<EPUserAppRolesRequest>(); + Set<EPUserAppRolesRequestDetail> mockEpUserAppRolesRequestDetailList = new TreeSet<>(); + EPUserAppRolesRequestDetail mockEpUserAppRolesRequestDetail = new EPUserAppRolesRequestDetail(); + mockEpUserAppRolesRequestDetail.setId(2l); + mockEpUserAppRolesRequestDetail.setReqType("P"); + mockEpUserAppRolesRequestDetail.setReqRoleId(16l); + EPUserAppRolesRequest mockEPUserAppRolesRequest = new EPUserAppRolesRequest(); + mockEPUserAppRolesRequest.setAppId(mockApp.getId()); + mockEPUserAppRolesRequest.setId(1l); + mockEPUserAppRolesRequest.setRequestStatus("P"); + mockEPUserAppRolesRequest.setUserId(user.getId()); + mockEPUserAppRolesRequest.setEpRequestIdDetail(mockEpUserAppRolesRequestDetailList); + mockMerdianEpRequestIdValList.add(mockEPUserAppRolesRequest); + mockEpUserAppRolesRequestDetail.setEpRequestIdData(mockEPUserAppRolesRequest); + mockEpUserAppRolesRequestDetailList.add(mockEpUserAppRolesRequestDetail); + + final Map<String, Long> params = new HashMap<>(); + params.put("appId", mockApp.getId()); + params.put("userId", user.getId()); + Mockito.when((List<EPUserAppRolesRequest>) dataAccessService.executeNamedQuery("userAppRolesRequestList", + params, null)).thenReturn(mockMerdianEpRequestIdValList); + RoleInAppForUser mockRoleInAppForUser1 = new RoleInAppForUser(); + mockRoleInAppForUser1.setIsApplied(true); + mockRoleInAppForUser1.setRoleId(1l); + mockRoleInAppForUser1.setRoleName("test1"); + RoleInAppForUser mockRoleInAppForUser2 = new RoleInAppForUser(); + mockRoleInAppForUser2.setIsApplied(true); + mockRoleInAppForUser2.setRoleId(16l); + mockRoleInAppForUser2.setRoleName("test2"); + Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval.getRoleName(), mockApp.getId())) + .thenReturn(mockEPRole); + Mockito.when(epRoleServiceImpl.getAppRole(mockExternalSystemRoleApproval2.getRoleName(), mockApp.getId())) + .thenReturn(mockEPRole2); + List<EcompUserAppRoles> mockEPuserAppList = new ArrayList<>(); + EcompUserAppRoles mockEcompUserAppRoles = new EcompUserAppRoles(); + mockEcompUserAppRoles.setAppId(String.valueOf(mockApp.getId())); + mockEcompUserAppRoles.setRoleId(100l); + mockEcompUserAppRoles.setRoleName("test1"); + mockEcompUserAppRoles.setUserId(user.getId()); + mockEPuserAppList.add(mockEcompUserAppRoles); + final Map<String, Long> params2 = new HashMap<>(); + params2.put("userId", user.getId()); + params2.put("appId", mockApp.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getUserAppExistingRoles", params2, null)) + .thenReturn(mockEPuserAppList); + List<EcompRole> mockEcompRoleList = new ArrayList<>(); + EcompRole mockEcompRole = new EcompRole(); + mockEcompRole.setId(1l); + mockEcompRole.setName("test1"); + EcompRole mockEcompRole2 = new EcompRole(); + mockEcompRole2.setId(16l); + mockEcompRole2.setName("test2"); + mockEcompRoleList.add(mockEcompRole); + mockEcompRoleList.add(mockEcompRole2); + EcompRole[] mockEcompRoleArray = mockEcompRoleList.toArray(new EcompRole[mockEcompRoleList.size()]); + Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles")) + .thenReturn(mockEcompRoleArray); + + // SyncAppRoles + List<EPUserApp> mockUserRolesList = new ArrayList<>(); + EPUserApp mockEpUserApp = new EPUserApp(); + mockEpUserApp.setApp(mockApp); + mockEpUserApp.setRole(mockEPRole2); + mockEpUserApp.setUserId(user.getId()); + mockUserRolesList.add(mockEpUserApp); + List<FunctionalMenuRole> mockFunctionalMenuRolesList = new ArrayList<>(); + FunctionalMenuRole mockFunctionalMenuRole = new FunctionalMenuRole(); + mockFunctionalMenuRole.setAppId((int) (long) mockApp.getId()); + mockFunctionalMenuRole.setRoleId((int) (long) 15l); + mockFunctionalMenuRole.setMenuId(10l); + mockFunctionalMenuRole.setId(10); + mockFunctionalMenuRolesList.add(mockFunctionalMenuRole); + List<FunctionalMenuItem> mockFunctionalMenuItemList = new ArrayList<>(); + FunctionalMenuItem mockFunctionalMenuItem = new FunctionalMenuItem(); + List<Integer> mockRolesList = new ArrayList<>(); + Integer role1 = 1; + mockRolesList.add(role1); + mockFunctionalMenuItem.setRestrictedApp(false); + mockFunctionalMenuItem.setRoles(mockRolesList); + mockFunctionalMenuItem.setUrl("http://test.com"); + mockFunctionalMenuItemList.add(mockFunctionalMenuItem); + Query epRoleQuery = Mockito.mock(Query.class); + Query epUserAppsQuery = Mockito.mock(Query.class); + Query epFunctionalMenuQuery = Mockito.mock(Query.class); + Query epFunctionalMenuQuery2 = Mockito.mock(Query.class); + Query epFunctionalMenuItemQuery = Mockito.mock(Query.class); + Mockito.when(applicationsRestClientService.get(EcompRole[].class, mockApp.getId(), "/roles")) + .thenReturn(mockEcompRoleArray); + // syncAppRolesTest + Mockito.when(session.createQuery("from " + EPRole.class.getName() + " where appId=" + mockApp.getId())) + .thenReturn(epRoleQuery); + Mockito.doReturn(mockEcompRoleList).when(epRoleQuery).list(); + Mockito.when(session.createQuery( + "from " + EPUserApp.class.getName() + " where app.id=" + mockApp.getId() + " and role_id=" + 100l)) + .thenReturn(epUserAppsQuery); + Mockito.doReturn(mockUserRolesList).when(epUserAppsQuery).list(); + + Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where roleId=" + 100l)) + .thenReturn(epFunctionalMenuQuery); + Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery).list(); + + Mockito.when(session.createQuery("from " + FunctionalMenuRole.class.getName() + " where menuId=" + 10l)) + .thenReturn(epFunctionalMenuQuery2); + Mockito.doReturn(mockFunctionalMenuRolesList).when(epFunctionalMenuQuery2).list(); + + Mockito.when(session.createQuery("from " + FunctionalMenuItem.class.getName() + " where menuId=" + 10l)) + .thenReturn(epFunctionalMenuItemQuery); + Mockito.doReturn(mockFunctionalMenuItemList).when(epFunctionalMenuItemQuery).list(); + + Mockito.when(applicationsRestClientService.get(EPUser.class, mockApp.getId(), + String.format("/user/%s", user.getOrgUserId()), true)).thenReturn(user); + // Updated in EP DB + Query epsetExternalRequestUserAppRoleGetUserQuery = Mockito.mock(Query.class); + Query epsetExternalRequestUserAppRoleGetUserAppsQuery = Mockito.mock(Query.class); + Query epsetExternalRequestUserAppRoleGetRolesQuery = Mockito.mock(Query.class); + Mockito.when(session.get(EPApp.class, mockApp.getId())).thenReturn(mockApp); + Mockito.when(session + .createQuery("from " + EPUser.class.getName() + " where orgUserId='" + user.getOrgUserId() + "'")) + .thenReturn(epsetExternalRequestUserAppRoleGetUserQuery); + Mockito.doReturn(mockEpUserList).when(epsetExternalRequestUserAppRoleGetUserQuery).list(); + List<EPUserApp> mockUserRolesList2 = new ArrayList<>(); + EPUserApp mockEpUserAppRoles = new EPUserApp(); + mockEpUserAppRoles.setApp(mockApp); + mockEpUserAppRoles.setRole(mockEPRole); + mockEpUserAppRoles.setUserId(user.getId()); + mockUserRolesList2.add(mockEpUserAppRoles); + Mockito.when(session.createQuery( + "from org.onap.portalapp.portal.domain.EPUserApp where app.id=2 and role.active = 'Y' and userId=2")) + .thenReturn(epsetExternalRequestUserAppRoleGetUserAppsQuery); + Mockito.doReturn(mockUserRolesList2).when(epsetExternalRequestUserAppRoleGetUserAppsQuery).list(); + List<EPRole> mockEPRoles = new ArrayList<>(); + mockEPRoles.add(mockEPRole2); + mockEPRoles.add(mockEPRole3); + Mockito.when(session.createQuery("from org.onap.portalapp.portal.domain.EPRole where appId=2")) + .thenReturn(epsetExternalRequestUserAppRoleGetRolesQuery); + Mockito.doReturn(mockEPRoles).when(epsetExternalRequestUserAppRoleGetRolesQuery).list(); + + ExternalRequestFieldsValidator mockExternalRequestFieldsValidator = new ExternalRequestFieldsValidator(true, + "Updated Successfully"); + ExternalRequestFieldsValidator externalRequestFieldsValidator = userRolesCommonServiceImpl + .setExternalRequestUserAppRole(externalSystemUser, "POST"); + assertTrue(mockExternalRequestFieldsValidator.equals(externalRequestFieldsValidator)); + } + + @SuppressWarnings("unchecked") + @Test + public void getUsersFromAppEndpointCentralizedAppTest() throws HTTPException { + EPApp mockApp = mockApp(); + mockApp.setId(1l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(true); + EPUser user = mockUser.mockEPUser(); + EPUser user2 = mockUser.mockEPUser(); + user2.setActive(true); + user2.setOrgUserId("guestT2"); + user2.setId(2l); + user2.setFirstName("Guest2"); + user2.setLastName("Test2"); + user.setId(1l); + user.setFirstName("Guest"); + user.setLastName("Test"); + EPRole mockEPRole1 = new EPRole(); + mockEPRole1.setId(1l); + mockEPRole1.setName("test1"); + mockEPRole1.setActive(true); + EPRole mockEPRole2 = new EPRole(); + mockEPRole2.setId(16l); + mockEPRole2.setName("test2"); + mockEPRole2.setActive(true); + SortedSet<EPUserApp> mockUserApps1 = new TreeSet<EPUserApp>(); + EPUserApp mockEPUserApp1 = new EPUserApp(); + mockEPUserApp1.setApp(mockApp); + mockEPUserApp1.setRole(mockEPRole1); + mockEPUserApp1.setUserId(1l); + mockUserApps1.add(mockEPUserApp1); + user.setEPUserApps(mockUserApps1); + SortedSet<EPUserApp> mockUserApps2 = new TreeSet<EPUserApp>(); + EPUserApp mockEPUserApp2 = new EPUserApp(); + mockEPUserApp2.setApp(mockApp); + mockEPUserApp2.setRole(mockEPRole2); + mockEPUserApp2.setUserId(2l); + mockUserApps2.add(mockEPUserApp2); + user2.setEPUserApps(mockUserApps2); + List<EPUser> mockEpUserList = new ArrayList<>(); + mockEpUserList.add(user); + mockEpUserList.add(user2); + Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp); + List<UserApplicationRoles> mockUserApplicationRolesList = new ArrayList<>(); + UserApplicationRoles mockUserApplicationRoles = new UserApplicationRoles(); + List<RemoteRole> mockRemoteRoleList = new ArrayList<>(); + RemoteRole mockRemoteRole = new RemoteRole(); + mockRemoteRole.setId(1l); + mockRemoteRole.setName("test1"); + mockRemoteRoleList.add(mockRemoteRole); + mockUserApplicationRoles.setAppId(mockApp.getId()); + mockUserApplicationRoles.setFirstName("Guest"); + mockUserApplicationRoles.setLastName("Test"); + mockUserApplicationRoles.setOrgUserId("guestT"); + mockUserApplicationRoles.setRoles(mockRemoteRoleList); + UserApplicationRoles mockUserApplicationRoles2 = new UserApplicationRoles(); + List<RemoteRole> mockRemoteRoleList2 = new ArrayList<>(); + RemoteRole mockRemoteRole2 = new RemoteRole(); + mockRemoteRole2.setId(16l); + mockRemoteRole2.setName("test2"); + mockRemoteRoleList2.add(mockRemoteRole2); + mockUserApplicationRoles2.setAppId(mockApp.getId()); + mockUserApplicationRoles2.setFirstName("Guest2"); + mockUserApplicationRoles2.setLastName("Test2"); + mockUserApplicationRoles2.setOrgUserId("guestT2"); + mockUserApplicationRoles2.setRoles(mockRemoteRoleList2); + mockUserApplicationRolesList.add(mockUserApplicationRoles); + mockUserApplicationRolesList.add(mockUserApplicationRoles2); + Mockito.when((List<EPUser>) dataAccessService.executeNamedQuery("getActiveUsers", null, null)) + .thenReturn(mockEpUserList); + assertEquals(userRolesCommonServiceImpl.getUsersFromAppEndpoint(1l).size(), + mockUserApplicationRolesList.size()); + } + + @Test + public void getUsersFromAppEndpointNonCentralizedAppTest() throws HTTPException, JsonProcessingException { + EPApp mockApp = mockApp(); + mockApp.setId(2l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(false); + Mockito.when(epAppCommonServiceImpl.getApp(mockApp.getId())).thenReturn(mockApp); + List<UserApplicationRoles> mockUserApplicationRolesNonCentralizedList = new ArrayList<>(); + UserApplicationRoles mockUserApplicationRoles = new UserApplicationRoles(); + List<RemoteRole> mockRemoteRoleList = new ArrayList<>(); + RemoteRole mockRemoteRole = new RemoteRole(); + mockRemoteRole.setId(1l); + mockRemoteRole.setName("test1"); + mockRemoteRoleList.add(mockRemoteRole); + mockUserApplicationRoles.setAppId(mockApp.getId()); + mockUserApplicationRoles.setFirstName("Guest"); + mockUserApplicationRoles.setLastName("Test"); + mockUserApplicationRoles.setOrgUserId("guestT"); + mockUserApplicationRoles.setRoles(mockRemoteRoleList); + UserApplicationRoles mockUserApplicationRoles2 = new UserApplicationRoles(); + List<RemoteRole> mockRemoteRoleList2 = new ArrayList<>(); + RemoteRole mockRemoteRole2 = new RemoteRole(); + mockRemoteRole2.setId(16l); + mockRemoteRole2.setName("test2"); + mockRemoteRoleList2.add(mockRemoteRole2); + mockUserApplicationRoles2.setAppId(mockApp.getId()); + mockUserApplicationRoles2.setFirstName("Guest2"); + mockUserApplicationRoles2.setLastName("Test2"); + mockUserApplicationRoles2.setOrgUserId("guestT2"); + mockUserApplicationRoles2.setRoles(mockRemoteRoleList2); + mockUserApplicationRolesNonCentralizedList.add(mockUserApplicationRoles); + mockUserApplicationRolesNonCentralizedList.add(mockUserApplicationRoles2); + RemoteUserWithRoles mockRemoteUserWithRoles1 = new RemoteUserWithRoles(); + mockRemoteUserWithRoles1.setFirstName("Guest1"); + mockRemoteUserWithRoles1.setLastName("Test1"); + mockRemoteUserWithRoles1.setOrgUserId("guestT"); + mockRemoteUserWithRoles1.setRoles(mockRemoteRoleList); + RemoteUserWithRoles mockRemoteUserWithRoles2 = new RemoteUserWithRoles(); + mockRemoteUserWithRoles2.setFirstName("Guest2"); + mockRemoteUserWithRoles2.setLastName("Test2"); + mockRemoteUserWithRoles2.setOrgUserId("guestT"); + mockRemoteUserWithRoles2.setRoles(mockRemoteRoleList2); + List<RemoteUserWithRoles> mockRemoteUserWithRolesList = new ArrayList<>(); + mockRemoteUserWithRolesList.add(mockRemoteUserWithRoles1); + mockRemoteUserWithRolesList.add(mockRemoteUserWithRoles2); + ObjectMapper mapper = new ObjectMapper(); + String mockGetRemoteUsersWithRoles = mapper.writeValueAsString(mockRemoteUserWithRolesList); + Mockito.when(applicationsRestClientService.getIncomingJsonString(mockApp.getId(), "/users")) + .thenReturn(mockGetRemoteUsersWithRoles); + List<UserApplicationRoles> userApplicationRolesNonCentralizedList = userRolesCommonServiceImpl + .getUsersFromAppEndpoint(2l); + assertEquals(mockUserApplicationRolesNonCentralizedList.size(), userApplicationRolesNonCentralizedList.size()); + } + + @SuppressWarnings("unchecked") + @Test + public void putUserAppRolesRequestTest() { + EPApp mockApp = mockApp(); + mockApp.setId(2l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(false); + EPUser user = mockUser.mockEPUser(); + AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser(); + List<RoleInAppForUser> mockRoleInAppForUserList = new ArrayList<>(); + RoleInAppForUser roleInAppForUser = new RoleInAppForUser(); + roleInAppForUser.setIsApplied(true); + roleInAppForUser.setRoleId(1l); + roleInAppForUser.setRoleName("test1"); + RoleInAppForUser roleInAppForUser2 = new RoleInAppForUser(); + roleInAppForUser2.setIsApplied(true); + roleInAppForUser2.setRoleId(1000l); + roleInAppForUser2.setRoleName("test3"); + mockRoleInAppForUserList.add(roleInAppForUser); + mockRoleInAppForUserList.add(roleInAppForUser2); + appWithRolesForUser.setAppId(mockApp.getId()); + appWithRolesForUser.setAppName(mockApp.getName()); + appWithRolesForUser.setOrgUserId(user.getOrgUserId()); + appWithRolesForUser.setAppRoles(mockRoleInAppForUserList); + List<EPUserAppRoles> epUserAppRolesList = new ArrayList<>(); + EPUserAppRoles appRole1 = new EPUserAppRoles(); + appRole1.setAppId(mockApp.getId()); + appRole1.setId(10l); + appRole1.setRoleId(roleInAppForUser.roleId); + epUserAppRolesList.add(appRole1); + List<EPUserAppRoles> epUserAppRolesList2 = new ArrayList<>(); + EPUserAppRoles appRole2 = new EPUserAppRoles(); + appRole2.setAppId(mockApp.getId()); + appRole2.setId(11l); + appRole2.setRoleId(roleInAppForUser2.roleId); + epUserAppRolesList2.add(appRole2); + EPUserAppRolesRequest mockEpAppRolesRequestData = new EPUserAppRolesRequest(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEpAppRolesRequestData, null); + final Map<String, Long> params = new HashMap<>(); + params.put("appId", appWithRolesForUser.appId); + params.put("appRoleId", roleInAppForUser.roleId); + Mockito.when((List<EPUserAppRoles>) dataAccessService.executeNamedQuery("appRoles", params, null)) + .thenReturn(epUserAppRolesList); + params.put("appRoleId", roleInAppForUser2.roleId); + Mockito.when((List<EPUserAppRoles>) dataAccessService.executeNamedQuery("appRoles", params, null)) + .thenReturn(epUserAppRolesList2); + EPUserAppRolesRequestDetail mockEPAppRoleDetail = new EPUserAppRolesRequestDetail(); + Mockito.doNothing().when(dataAccessService).saveDomainObject(mockEPAppRoleDetail, null); + FieldsValidator expected = new FieldsValidator(); + expected.setHttpStatusCode(Long.valueOf(HttpServletResponse.SC_OK)); + FieldsValidator actual = userRolesCommonServiceImpl.putUserAppRolesRequest(appWithRolesForUser, user); + assertEquals(expected, actual); + } + + @Test + public void importRolesFromRemoteApplicationTest() throws HTTPException { + EPApp mockApp = mockApp(); + mockApp.setId(2l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(false); + List<EPRole> expected = new ArrayList<>(); + EPRole epRole = new EPRole(); + epRole.setAppId(mockApp.getId()); + epRole.setActive(true); + epRole.setId(10l); + epRole.setName("test1"); + EPRole epRole2 = new EPRole(); + epRole2.setAppId(mockApp.getId()); + epRole2.setActive(true); + epRole2.setId(11l); + epRole2.setName("test2"); + expected.add(epRole); + expected.add(epRole2); + EPRole[] epRoleArray = expected.toArray(new EPRole[expected.size()]); + Mockito.when(applicationsRestClientService.get(EPRole[].class, mockApp.getId(), "/rolesFull")) + .thenReturn(epRoleArray); + Mockito.when(epRoleServiceImpl.getRole(mockApp.getId(), epRole.getId())).thenReturn(epRole); + Mockito.when(epRoleServiceImpl.getRole(mockApp.getId(), epRole2.getId())).thenReturn(epRole2); + List<EPRole> actual = userRolesCommonServiceImpl.importRolesFromRemoteApplication(mockApp.getId()); + assertEquals(expected.size(), actual.size()); + } + + @SuppressWarnings("deprecation") + @Test + public void getCachedAppRolesForUserTest() { + EPApp mockApp = mockApp(); + mockApp.setId(2l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(false); + EPUser user = mockUser.mockEPUser(); + List<EPUserApp> expected = new ArrayList<>(); + EPUserApp epUserApp = new EPUserApp(); + EPRole epRole = new EPRole(); + epRole.setAppId(mockApp.getId()); + epRole.setActive(true); + epRole.setId(10l); + epRole.setName("test1"); + epUserApp.setApp(mockApp); + epUserApp.setRole(epRole); + epUserApp.setUserId(user.getId()); + expected.add(epUserApp); + String filter = " where user_id = " + Long.toString(user.getId()) + " and app_id = " + + Long.toString(mockApp.getId()); + Mockito.when(dataAccessService.getList(EPUserApp.class, filter, null, null)).thenReturn(expected); + List<EPUserApp> actual = userRolesCommonServiceImpl.getCachedAppRolesForUser(mockApp.getId(), user.getId()); + assertEquals(expected.size(), actual.size()); + } + + @SuppressWarnings("unchecked") + @Test + public void getUserAppCatalogRolesTest() { + EPApp mockApp = mockApp(); + mockApp.setId(2l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(false); + EPUser user = mockUser.mockEPUser(); + List<EPUserAppCatalogRoles> expected = new ArrayList<>(); + EPUserAppCatalogRoles epUserAppCatalogRoles = new EPUserAppCatalogRoles(); + epUserAppCatalogRoles.setAppId(mockApp.getId()); + epUserAppCatalogRoles.setId(2l); + epUserAppCatalogRoles.setRequestedRoleId(10l); + epUserAppCatalogRoles.setRequestStatus("S"); + epUserAppCatalogRoles.setRolename("test1"); + expected.add(epUserAppCatalogRoles); + Map<String, String> params = new HashMap<>(); + params.put("userid", user.getId().toString()); + params.put("appName", mockApp.getName()); + Mockito.when( + (List<EPUserAppCatalogRoles>) dataAccessService.executeNamedQuery("userAppCatalogRoles", params, null)) + .thenReturn(expected); + List<EPUserAppCatalogRoles> actual = userRolesCommonServiceImpl.getUserAppCatalogRoles(user, mockApp.getName()); + assertEquals(expected.size(), actual.size()); + } + + @Test + public void getExternalRequestAccessTest() { + ExternalSystemAccess expected = new ExternalSystemAccess("external_access_enable", false); + ExternalSystemAccess actual = userRolesCommonServiceImpl.getExternalRequestAccess(); + assertEquals(expected, actual); + } + + @Test + public void getEPUserAppListTest() { + EPApp mockApp = mockApp(); + mockApp.setId(2l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(false); + EPUser user = mockUser.mockEPUser(); + List<EPUserApp> expected = new ArrayList<>(); + EPUserApp epUserApp = new EPUserApp(); + EPRole epRole = new EPRole(); + epRole.setAppId(mockApp.getId()); + epRole.setActive(true); + epRole.setId(10l); + epRole.setName("test1"); + epUserApp.setApp(mockApp); + epUserApp.setRole(epRole); + epUserApp.setUserId(user.getId()); + expected.add(epUserApp); + final Map<String, Long> params = new HashMap<>(); + params.put("appId", mockApp.getId()); + params.put("userId", user.getId()); + params.put("roleId", epRole.getId()); + Mockito.when(dataAccessService.executeNamedQuery("getUserRoleOnUserIdAndRoleIdAndAppId", params, null)) + .thenReturn(expected); + List<EPUserApp> actual = userRolesCommonServiceImpl.getEPUserAppList(mockApp.getId(), user.getId(), + epRole.getId()); + assertEquals(expected.size(), actual.size()); + } + + @Test + public void updateRemoteUserProfileTest() { + EPApp mockApp = mockApp(); + EPApp mockApp2 = mockApp(); + mockApp.setId(2l); + mockApp.setEnabled(true); + mockApp.setCentralAuth(false); + EPUser user = mockUser.mockEPUser(); + List<EPApp> mockEpAppList = new ArrayList<>(); + mockEpAppList.add(mockApp); + mockEpAppList.add(mockApp2); + Mockito.when(searchServiceImpl.searchUserByUserId(user.getOrgUserId())).thenReturn(user); + Mockito.when(epAppCommonServiceImpl.getUserRemoteApps(user.getId().toString())).thenReturn(mockEpAppList); + String expected = "success"; + String actual = userRolesCommonServiceImpl.updateRemoteUserProfile(user.getOrgUserId(), mockApp.getId()); + assertEquals(expected, actual); + } +} diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/WidgetParameterServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/WidgetParameterServiceImplTest.java new file mode 100644 index 00000000..ffaee13f --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/WidgetParameterServiceImplTest.java @@ -0,0 +1,129 @@ +/*- + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.WidgetCatalogParameter; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalsdk.core.service.DataAccessServiceImpl; + +public class WidgetParameterServiceImplTest { + @Mock + DataAccessService dataAccessService = new DataAccessServiceImpl(); + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + WidgetParameterServiceImpl widgetParameterServiceImpl = new WidgetParameterServiceImpl(); + + MockEPUser mockUser = new MockEPUser(); + + @SuppressWarnings("unchecked") + @Test + public void getUserParamByIdTest() { + List<Criterion> restrictionsList = new ArrayList<Criterion>(); + Criterion widgetIdCrit = Restrictions.eq("widgetId", "1"); + restrictionsList.add(widgetIdCrit); + Criterion userIdCrit = Restrictions.eq("userId", "1"); + restrictionsList.add(userIdCrit); + Criterion paramIdCrit = Restrictions.eq("paramId", "1"); + restrictionsList.add(paramIdCrit); + List<WidgetCatalogParameter> mockWidgetCatParamsList = new ArrayList<>(); + Mockito.when((List<WidgetCatalogParameter>)dataAccessService + .getList(WidgetCatalogParameter.class, null, restrictionsList, null)).thenReturn(mockWidgetCatParamsList); + WidgetCatalogParameter widgetCatalogParameter = widgetParameterServiceImpl.getUserParamById(1l, 1l, 1l); + if(mockWidgetCatParamsList.isEmpty()) { + mockWidgetCatParamsList = null; + } + assertEquals(widgetCatalogParameter, mockWidgetCatParamsList); + } + + @Test + public void saveUserParameterTest(){ + WidgetCatalogParameter mockWidgetParameter = new WidgetCatalogParameter(); + WidgetCatalogParameter widgetParameter = new WidgetCatalogParameter(); + widgetParameter.setId(1l); + widgetParameter.setParamId(1l); + widgetParameter.setUser_value("test"); + widgetParameter.setWidgetId(1l); + widgetParameter.setUserId(1l); + Mockito.doNothing().when(dataAccessService).saveDomainObject(mockWidgetParameter, null); + widgetParameterServiceImpl.saveUserParameter(widgetParameter); + } + + @SuppressWarnings("unchecked") + @Test + public void getUserParameterByIdTest() { + List<Criterion> restrictionsList = new ArrayList<Criterion>(); + Criterion paramIdCrit = Restrictions.eq("paramId", 1); + restrictionsList.add(paramIdCrit); + List<WidgetCatalogParameter> mockWidgetCatalogParameter = new ArrayList<>(); + Mockito.when((List<WidgetCatalogParameter>) dataAccessService + .getList(WidgetCatalogParameter.class, null, restrictionsList, null)).thenReturn(mockWidgetCatalogParameter); + List<WidgetCatalogParameter> list = widgetParameterServiceImpl.getUserParameterById(1l); + assertEquals(list, mockWidgetCatalogParameter); + } + + @Test + public void deleteUserParameterById() { + Map<String, String> params = new HashMap<String, String>(); + params.put("paramId", Long.toString(1)); + Mockito.when(dataAccessService.executeNamedQuery("deleteWidgetCatalogParameter", params, null)).thenReturn(null); + Mockito.when(dataAccessService.executeNamedQuery("deleteMicroserviceParameterById", params, null)).thenReturn(null); + widgetParameterServiceImpl.deleteUserParameterById(1l); + } + +} |