@Test public void testGetAppList() throws UnsupportedEncodingException { // 测试准备。 MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); CredentialResolver credentialResolver = Mockito.mock(CredentialResolver.class); logoutAction.setCredentialResolver(credentialResolver); Ki4soService ki4soService = Mockito.mock(Ki4soService.class); logoutAction.setKi4soService(ki4soService); Credential credential = Mockito.mock(Credential.class); // 设置预期结果。 Mockito.when(credentialResolver.resolveCredential(request)).thenReturn(credential); List<App> list = new ArrayList<App>(); App app = new App(); app.setAppId("1000"); app.setAppName("测试应用程序1"); app.setHost("app.com"); app.setLogoutUrl("http://app.com/logout.do"); list.add(app); Mockito.when(ki4soService.getAppList(credential)).thenReturn(list); // 执行查询。 logoutAction.getAppList(request, response); // 检查结果。 Assert.assertEquals("application/x-javascript", response.getContentType()); Assert.assertEquals("UTF-8", response.getCharacterEncoding()); // 检查输出的jsonp串是否正确。 String content = response.getContentAsString(); content = content.trim(); Assert.assertTrue(content.startsWith("fetchAppList(")); Assert.assertTrue(content.endsWith(");")); String json = content.replaceFirst("fetchAppList\\(", ""); json = json.replaceFirst("\\);", ""); JSONArray data = (JSONArray) JSON.parse(json); Assert.assertEquals(1, data.size()); @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) data.get(0); Assert.assertEquals("1000", map.get("appId")); }
@Test public void testLogout() { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); CredentialResolver credentialResolver = Mockito.mock(CredentialResolver.class); logoutAction.setCredentialResolver(credentialResolver); Ki4soService ki4soService = Mockito.mock(Ki4soService.class); logoutAction.setKi4soService(ki4soService); // 测试没有cookie的情况。 logoutAction.logout(request, response); Assert.assertEquals(0, response.getCookies().length); // 测试存在cookie,登出后要清除cookie值。 request = new MockHttpServletRequest(); response = new MockHttpServletResponse(); request.setCookies( new Cookie(WebConstants.KI4SO_SERVER_ENCRYPTED_CREDENTIAL_COOKIE_KEY, "dddsd")); logoutAction.logout(request, response); Assert.assertEquals(1, response.getCookies().length); Assert.assertEquals(0, response.getCookies()[0].getMaxAge()); }