Bulk upload changes and music health check apis
[portal.git] / ecomp-portal-BE-os / src / test / java / org / onap / portalapp / portal / controller / LoginControllerTest.java
index 983584e..f7c9ce3 100644 (file)
  *
  * ============LICENSE_END============================================
  *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * 
  */
 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();
-       
+       private DelegatingServletInputStream dsi;
+
        @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\"}";
+               dsi = new DelegatingServletInputStream(new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_8)));
+               when(request.getInputStream()).thenReturn(dsi);
+               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);
        }
+
 }