diff options
6 files changed, 325 insertions, 28 deletions
diff --git a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/FunctionalMenuController.java b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/FunctionalMenuController.java index 1b54ebb4..5a5892fb 100644 --- a/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/FunctionalMenuController.java +++ b/ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/controller/FunctionalMenuController.java @@ -553,7 +553,7 @@ public class FunctionalMenuController extends EPRestrictedBaseController { EPUser userResult = searchService.searchUserByUserId(orgUserIdStr); emailStr = userResult.getEmail(); } - SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ssZ"); + SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss Z a"); Date lastLoginDate = user.getLastLoginDate(); if (lastLoginDate == null) { // should never happen diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/FunctionalMenuControllerTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/FunctionalMenuControllerTest.java index 488717ca..dcbbd951 100644 --- a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/FunctionalMenuControllerTest.java +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/controller/FunctionalMenuControllerTest.java @@ -247,7 +247,7 @@ public class FunctionalMenuControllerTest extends MockitoTestSuite { @Test public void getFunctionalMenuStaticInfoTest(){ String fnMenuStaticactualResponse = null; - String fnMenuStaticexpectedResponse = "{\"firstName\":\"test\",\"lastName\":\"test\",\"last_login\":\"09/08/2017 03:48:13-0400\",\"userId\":\"guestT\",\"email\":\"test\"}"; + String fnMenuStaticexpectedResponse = "{\"firstName\":\"test\",\"lastName\":\"test\",\"last_login\":\"09/08/2017 03:48:13 -0400 am\",\"userId\":\"guestT\",\"email\":\"test\"}"; String orgUserIdStr = null; EPUser user = mockUser.mockEPUser(); diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPAuditServiceImplTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPAuditServiceImplTest.java new file mode 100644 index 00000000..4ebb5ac7 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/EPAuditServiceImplTest.java @@ -0,0 +1,88 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : PORTAL +* ================================================================================ +* Copyright (C) 2018 TechMahindra +*================================================================================= +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file 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. +* ============LICENSE_END========================================================= +*/ +package org.onap.portalapp.portal.service; + +import static org.junit.Assert.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.onap.portalapp.portal.core.MockEPUser; +import java.util.Date; +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.framework.MockitoTestSuite; +import org.onap.portalsdk.core.service.DataAccessService; +import org.onap.portalapp.portal.domain.EPUser; + +public class EPAuditServiceImplTest { + + @Mock + DataAccessService dataAccessService; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + EPAuditServiceImpl ePAuditServiceImpl = new EPAuditServiceImpl (); + + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); + + HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); + HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); + MockEPUser mockUser = new MockEPUser(); + + @Test + public void getDataAccessServiceTest() { + dataAccessService=ePAuditServiceImpl.getDataAccessService(); + assertNotNull(dataAccessService); + } + + @Test + public void getNullUserLastLoginTest() { + String id=null; + Date dt=null; + Date date = ePAuditServiceImpl.getGuestLastLogin(id); + assertNull(date); + } + + @Test + public void getGuestLastLoginTest() { + EPUser epUser=null; + epUser=mockUser.mockEPUser(); + String id = epUser.getOrgUserId(); + Date date = ePAuditServiceImpl.getGuestLastLogin(id); + assertNull(date); + } + + @Test(expected = NullPointerException.class) + public void delAuditLogFromDayTest() { + dataAccessService=ePAuditServiceImpl.getDataAccessService(); + ePAuditServiceImpl.delAuditLogFromDay(); + } + +} + diff --git a/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/service/sessionmgt/SessionCommunicationTest.java b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/service/sessionmgt/SessionCommunicationTest.java new file mode 100644 index 00000000..89af5263 --- /dev/null +++ b/ecomp-portal-BE-common/src/test/java/org/onap/portalapp/service/sessionmgt/SessionCommunicationTest.java @@ -0,0 +1,141 @@ +/*- + * ============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.service.sessionmgt; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.net.HttpURLConnection; +import java.net.URL; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.MockitoAnnotations; +import org.onap.portalapp.portal.transport.OnboardingApp; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({URL.class, HttpURLConnection.class}) +public class SessionCommunicationTest { + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + } + + @InjectMocks + SessionCommunication sessionCommunication = new SessionCommunication(); + + + @Test + public void sendGetConnectionRefusedTest() throws Exception { + OnboardingApp app = new OnboardingApp(); + app.setRestrictedApp(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.isCentralAuth = true; + app.isEnabled = true; + app.isOpen =false; + app.name = "test"; + app.restUrl ="http://localhost:1234"; + app.username = "test"; + app.appPassword = "xyz"; + URL u = PowerMockito.mock(URL.class); + HttpURLConnection huc = PowerMockito.mock(HttpURLConnection.class); + String url = "http://localhost:1234/sessionTimeOuts"; + PowerMockito.whenNew(URL.class).withArguments(url).thenReturn(u); + PowerMockito.whenNew(HttpURLConnection.class).withAnyArguments().thenReturn(huc); + PowerMockito.when(huc.getResponseCode()).thenReturn(200); + String actual = sessionCommunication.sendGet(app); + assertEquals("", actual); + } + + @Test + public void pingSessionConnectionRefusedTest() throws Exception { + OnboardingApp app = new OnboardingApp(); + app.setRestrictedApp(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.isCentralAuth = true; + app.isEnabled = true; + app.isOpen =false; + app.name = "test"; + app.restUrl ="http://localhost:1234"; + app.username = "test"; + app.appPassword = "xyz"; + URL u = PowerMockito.mock(URL.class); + HttpURLConnection huc = PowerMockito.mock(HttpURLConnection.class); + String url = "http://localhost:1234/sessionTimeOuts"; + PowerMockito.whenNew(URL.class).withArguments(url).thenReturn(u); + PowerMockito.whenNew(HttpURLConnection.class).withAnyArguments().thenReturn(huc); + PowerMockito.when(huc.getResponseCode()).thenReturn(200); + Boolean actual = sessionCommunication.pingSession(app, "test"); + assertTrue(actual); + } + + + @Test + public void timeoutSessionConnectionRefusedTest() throws Exception { + OnboardingApp app = new OnboardingApp(); + app.setRestrictedApp(false); + app.setUebKey("test"); + app.setUebSecret("test"); + app.setUebTopicName("test"); + app.isCentralAuth = true; + app.isEnabled = true; + app.isOpen =false; + app.name = "test"; + app.restUrl ="http://localhost:1234"; + app.username = "test"; + app.appPassword = "xyz"; + URL u = PowerMockito.mock(URL.class); + HttpURLConnection huc = PowerMockito.mock(HttpURLConnection.class); + String url = "http://localhost:1234/sessionTimeOuts"; + PowerMockito.whenNew(URL.class).withArguments(url).thenReturn(u); + PowerMockito.whenNew(HttpURLConnection.class).withAnyArguments().thenReturn(huc); + PowerMockito.when(huc.getResponseCode()).thenReturn(200); + Boolean actual = sessionCommunication.timeoutSession(app, "test"); + assertTrue(actual); + } +} diff --git a/ecomp-portal-BE-os/src/main/java/org/onap/portalapp/controller/LoginController.java b/ecomp-portal-BE-os/src/main/java/org/onap/portalapp/controller/LoginController.java index 0ee11715..f4c37466 100644 --- a/ecomp-portal-BE-os/src/main/java/org/onap/portalapp/controller/LoginController.java +++ b/ecomp-portal-BE-os/src/main/java/org/onap/portalapp/controller/LoginController.java @@ -55,7 +55,6 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.json.JSONObject; import org.onap.portalapp.command.EPLoginBean; -import org.onap.portalapp.controller.EPUnRestrictedBaseController; import org.onap.portalapp.portal.domain.SharedContext; import org.onap.portalapp.portal.service.EPLoginService; import org.onap.portalapp.portal.service.EPRoleFunctionService; @@ -66,7 +65,6 @@ import org.onap.portalapp.util.EPUserUtils; import org.onap.portalapp.util.SessionCookieUtil; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.portalsdk.core.menu.MenuProperties; -import org.onap.portalsdk.core.onboarding.util.CipherUtil; import org.onap.portalsdk.core.util.SystemProperties; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Autowired; diff --git a/ecomp-portal-BE-os/src/test/java/org/onap/portalapp/portal/controller/LoginControllerTest.java b/ecomp-portal-BE-os/src/test/java/org/onap/portalapp/portal/controller/LoginControllerTest.java index 983584e9..bdbb7d47 100644 --- a/ecomp-portal-BE-os/src/test/java/org/onap/portalapp/portal/controller/LoginControllerTest.java +++ b/ecomp-portal-BE-os/src/test/java/org/onap/portalapp/portal/controller/LoginControllerTest.java @@ -37,85 +37,155 @@ */ package org.onap.portalapp.portal.controller; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.StringReader; +import java.nio.charset.StandardCharsets; +import java.util.HashSet; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import org.json.JSONObject; 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.command.EPLoginBean; import org.onap.portalapp.controller.LoginController; +import org.onap.portalapp.portal.core.MockEPUser; +import org.onap.portalapp.portal.domain.EPUser; import org.onap.portalapp.portal.framework.MockitoTestSuite; import org.onap.portalapp.portal.service.EPLoginService; import org.onap.portalapp.portal.service.EPRoleFunctionService; import org.onap.portalapp.portal.service.EPRoleService; import org.onap.portalapp.portal.service.SharedContextService; +import org.onap.portalapp.portal.utils.EPCommonSystemProperties; import org.onap.portalapp.service.EPProfileService; +import org.onap.portalsdk.core.domain.MenuData; +import org.onap.portalsdk.core.onboarding.util.CipherUtil; import org.onap.portalsdk.core.util.SystemProperties; +import org.onap.portalsdk.core.web.support.AppUtils; +import org.onap.portalsdk.core.web.support.UserUtils; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; +import org.springframework.mock.web.DelegatingServletInputStream; import org.springframework.web.servlet.ModelAndView; @RunWith(PowerMockRunner.class) -@PrepareForTest(SystemProperties.class) +@PrepareForTest({ SystemProperties.class, CipherUtil.class, AppUtils.class, UserUtils.class, EPCommonSystemProperties.class}) public class LoginControllerTest { @Mock EPProfileService service; @Mock - EPLoginService loginService; + EPLoginService loginService; @Mock - SharedContextService sharedContextService; + SharedContextService sharedContextService; @Mock - EPRoleService roleService; + EPRoleService roleService; @Mock - EPRoleFunctionService ePRoleFunctionService; - + EPRoleFunctionService ePRoleFunctionService; + @InjectMocks LoginController loginController = new LoginController(); - + @Before public void setup() { MockitoAnnotations.initMocks(this); } + MockEPUser mockUser = new MockEPUser(); + MockitoTestSuite mockitoTestSuite = new MockitoTestSuite(); HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest(); HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse(); NullPointerException nullPointerException = new NullPointerException(); - + @Test - public void loginIfAuthNullTest() - { + public void loginIfAuthNullTest() { PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn(null); + when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn(null); ModelAndView result = loginController.login(mockedRequest); - assertEquals(result.getViewName(),"openIdLogin") ; + assertEquals(result.getViewName(), "openIdLogin"); } - + @Test - public void loginIfAuthOIDCTest() - { + public void loginIfAuthOIDCTest() { PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn("OIDC"); + when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn("OIDC"); ModelAndView result = loginController.login(mockedRequest); - assertEquals(result.getViewName(),"login") ; + assertEquals(result.getViewName(), "login"); } - + @Test - public void loginTest() - { + public void loginTest() { PowerMockito.mockStatic(SystemProperties.class); - Mockito.when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn("Test"); + when(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM)).thenReturn("Test"); ModelAndView result = loginController.login(mockedRequest); - assertEquals(result.getViewName(),"login") ; + assertEquals(result.getViewName(), "login"); + } + + @Test + public void loginValidateTest() throws Exception { + PowerMockito.mockStatic(SystemProperties.class); + PowerMockito.mockStatic(AppUtils.class); + PowerMockito.mockStatic(UserUtils.class); + PowerMockito.mockStatic(CipherUtil.class); + PowerMockito.mockStatic(EPCommonSystemProperties.class); + EPUser user = mockUser.mockEPUser(); + HttpServletRequest request = mock(HttpServletRequest.class); + HttpServletResponse response = mock(HttpServletResponse.class); + HttpSession session = mock(HttpSession.class); + String json = "{\"loginId\":\"test\", \"password\":\"xyz\"}"; + when(request.getInputStream()).thenReturn( + new DelegatingServletInputStream(new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8)))); + when(request.getReader()).thenReturn(new BufferedReader(new StringReader(json))); + when(request.getContentType()).thenReturn("application/json"); + when(request.getCharacterEncoding()).thenReturn("UTF-8"); + when(request.getAttribute("menu_properties_filename")).thenReturn("test"); + StringBuffer reqUrl = new StringBuffer("http://localhost.com"); + when(request.getRequestURL()).thenReturn(reqUrl); + when(request.getQueryString()).thenReturn("demo?test"); + when(request.getSession(true)).thenReturn(session); + when(request.getSession()).thenReturn(session); + EPLoginBean commandBean = new EPLoginBean(); + commandBean.setLoginId("guestT"); + commandBean.setUser(user); + commandBean.setOrgUserId("guestT"); + commandBean.setLoginPwd("xyz"); + Set<MenuData> menus = new HashSet<MenuData>(); + MenuData menuData = new MenuData(); + menuData.setFunctionCd("test"); + MenuData menuData2 = new MenuData(); + menuData2.setFunctionCd("test2"); + menus.add(menuData); + menus.add(menuData2); + commandBean.setMenu(menus); + commandBean.setBusinessDirectMenu(menus); + when(loginController.getLoginService().findUser(Matchers.any(EPLoginBean.class), Matchers.anyString(), + Matchers.any())).thenReturn(commandBean); + when(AppUtils.getSession(request)).thenReturn(session); + when(UserUtils.isAccessible(request, menuData.getFunctionCd())).thenReturn(true); + when(UserUtils.isAccessible(request, menuData2.getFunctionCd())).thenReturn(true); + when(EPCommonSystemProperties.getProperty(EPCommonSystemProperties.COOKIE_DOMAIN)).thenReturn("cookie_domain"); + when(CipherUtil.encryptPKC(Matchers.anyString(), Matchers.anyString())).thenReturn("guestT"); + String actual = loginController.loginValidate(request, response); + JSONObject expected = new JSONObject("{success: success}"); + assertNotEquals(actual, expected); } + } |