⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loginservlettest.java

📁 OSGI_Opendoc, 基于OSGI框架Equinox的实战讲解
💻 JAVA
字号:
package org.riawork.demo.web.servlet.test;
/*
 * RIAWork.org
 * 
 * OSGI Opendoc Demo
 */
import java.io.IOException;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import junit.framework.TestCase;

import org.easymock.MockControl;
import org.riawork.demo.service.user.Validator;
import org.riawork.demo.web.servlet.LoginServlet;
/**
 * desc: 测试登录响应Servlet
 *
 * @author jerry
 */
public class LoginServletTest extends TestCase {

	private StringBuffer resultBuf=new StringBuffer();
	
	/**
	 * 测试登录成功时
	 * 
	 * @throws Exception
	 */
	public void testDoPostWhenLoginSuccess() throws Exception{
		resultBuf=new StringBuffer();
		mockTest("jerry","bluedavy",true,false);
		assertEquals(true,resultBuf.toString().indexOf("Login success")!=-1);
	}
	
	/**
	 * 测试登录失败时
	 * 
	 * @throws Exception
	 */
	public void testDoPostWhenLoginFail() throws Exception{
		resultBuf=new StringBuffer();
		mockTest("jerry","",false,false);
		assertEquals(true,resultBuf.toString().indexOf("Login Fail")!=-1);
	}
	
	/*
	 * Mock测试类的依赖
	 */
	private void mockTest(String username,String password,boolean loginResult,boolean loginError) throws Exception{
		// Mock HTTP Begin
		MockControl mc=MockControl.createControl(HttpServletRequest.class);
		HttpServletRequest request=(HttpServletRequest)mc.getMock();
		request.getParameter("username");
		mc.setReturnValue(username);
		request.getParameter("userpass");
		mc.setReturnValue(password);
		mc.replay();
		MockControl responseMC=MockControl.createControl(HttpServletResponse.class);
		HttpServletResponse response=(HttpServletResponse)responseMC.getMock();
		response.getOutputStream();
		responseMC.setReturnValue(new MockServletOutputStream());
		response.setContentType("text/html");
		responseMC.setVoidCallable(1);
		responseMC.replay();
		// Mock HTTP End
		Validator validator=new MockValidatorService();
		LoginServlet servlet=new LoginServlet();
		servlet.setValidator(validator);
		servlet.doPost(request, response);
	}
	
	class MockServletOutputStream extends ServletOutputStream{

		public void write(int b) throws IOException {
			
		}
		
		public void println(String msg){
			resultBuf.append(msg);
		}
		
	}
	
	// Mock ValidatorService
	class MockValidatorService implements Validator{
		
		public boolean validate(String username, String password) throws Exception {
			if(("jerry".equals(username))&&("bluedavy".equals(password)))
				return true;
			return false;
		}
		
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -