`

cxf restful方法与JUnit测试

 
阅读更多

 

@Path("/account")    
public class AccountController {
//*************************************Login******************************************
	@GET
	@Path("/login")
	@Produces(MediaType.APPLICATION_JSON+ ";charset=UTF-8")
	public Response login(@QueryParam("userName")String userName,@QueryParam("password")String password,@QueryParam("verificationCode")String verificationCode){
		if(StringUtils.isBlank(userName)){
			return Response.paramErrorResponse("请输入用户名!");
		}
		if(StringUtils.isBlank(password)){
			return Response.paramErrorResponse("请输入登陆密码!");
		}
		if(StringUtils.isBlank(verificationCode)){
			return Response.paramErrorResponse("请输入验证码");
		}
		String ip = cxfUtil.getClientIpCxfRest();
		//1.验证验证码
		//2.验证用户名与密码
		try {
			loginManager.login(userName, password,ip);
		} catch (Exception e) {
			return Response.errorResponse(e.getMessage());
		}
		return Response.successResponse(null);
	}


	@POST
	@Path("/accountisexist")
	@Produces(MediaType.APPLICATION_JSON+ ";charset=UTF-8")
	public Response accountIsExist(@QueryParam("userName")String userName){
		if(StringUtils.isBlank(userName)){
			return Response.paramErrorResponse("请输入用户名!");
		}
		if(commonManager.isExistUserName(userName)){
			return Response.successResponse(true);
		}else{
			return Response.successResponse(false);
		}
	}




	//*************************************************register******************************
	@POST
	@Path("/register")
	@Produces(MediaType.APPLICATION_JSON+ ";charset=UTF-8")
	public Response register(@FormParam("userName") String userName,@FormParam("password")String password,@FormParam("mobile")String mobile,@FormParam("verificationCode")String verificationCode){
		if(StringUtils.isBlank(userName)){
			return Response.paramErrorResponse("请输入用户名!");
		}
		if(StringUtils.isBlank(password)){
			return Response.paramErrorResponse("请输入登陆密码!");
		}
		if(StringUtils.isBlank(mobile)){
			return Response.paramErrorResponse("请输入手机号!");
		}
		if(StringUtils.isBlank(verificationCode)){
			return Response.paramErrorResponse("请输入验证码");
		}
		String ip = cxfUtil.getClientIpCxfRest();
		//1.验证手机验证码
		//2.注册用户
		try {
			registerManager.register(userName, password, 1, mobile, ip);
		} catch (Exception e) {
			e.printStackTrace();
			return Response.errorResponse(e.getMessage());
		}
		return Response.successResponse(null);
	}
}

 

 

 

junit

 

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
public class AccountControllerTest {

	public final String REST_SERVICE_URL = "http://localhost:8080/p2p/data/ws/rest";
	
    private static final String TYPE_XML = "application/xml";  
    private static final String TYPE_JSON = "application/json";  
	
    @Test
	public void testLogin() {
    	//(String userName,String password,String verificationCode)
		WebClient client = WebClient.create(REST_SERVICE_URL); 
        client.path("/account/login","123456").accept(  
        		TYPE_JSON).type(TYPE_JSON).query("userName", "test").query("password", "12345678").query("verificationCode", "654286315");    
        String response = client.get(String.class);  
        System.out.println(response);  
	}

	static Client client = null;


	@BeforeClass
	public static void init() {
		//register(JacksonFeatures.class).
		client = ClientBuilder.newBuilder().build();
	}
	
	@Test
	public void test(){
		WebTarget target = client.target(REST_SERVICE_URL).path("/account/login").queryParam ("userName", "test").queryParam("password", "123456789").queryParam("verificationCode", "654286315");
		String response = target.request(TYPE_JSON).get(String.class);
		System.out.println(response);
	}

	@Test
	public void testAccountIsExist() {
		WebTarget target = client.target(REST_SERVICE_URL).path("/account/accountisexist").queryParam ("userName", "testfsd");
		String response = target.request(TYPE_JSON).post(null,String.class);
		System.out.println(response);
	}

	@Test
	public void testRegister() {
		Form f = new Form();
		f.param("userName", "adminnn");
		f.param("password", "123456789");
		f.param("mobile", "13916145180");
		f.param("verificationCode", "12345");
		WebTarget target = client.target(REST_SERVICE_URL).path("/account/register");
		String response = target.request(TYPE_JSON).post(Entity.form(f),String.class);
		System.out.println(response);
	}
}

 

public class Response {
	private String status;
	private String msg;
	private Object data;
	
	
	public Response(String status, String msg, Object data) {
		super();
		this.status = status;
		this.msg = msg;
		this.data = data;
	}
	
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	public Object getData() {
		return data;
	}
	public void setData(Object data) {
		this.data = data;
	}
	
	
	/**
	 * 参数错误
	 * **/
	public static Response paramErrorResponse(String errorMessage){
		return new Response(ConstantsUtil.CommonCode.PARAM_ERROR_CODE,errorMessage,null);
	}
	
	public static Response paramErrorResponse(){
		return new Response(ConstantsUtil.CommonCode.PARAM_ERROR_CODE,ConstantsUtil.CommonMessage.PARAM_ERROR_MESSAGE,null);
	}
	
	/**
	 * 获取数据错误
	 * **/
	public static Response errorResponse(String errorMessage){
		return new Response(ConstantsUtil.CommonCode.FAILED_CODE,errorMessage,null);
	}
	
	public static Response errorResponse(){
		return new Response(ConstantsUtil.CommonCode.FAILED_CODE,ConstantsUtil.CommonMessage.FAILED_MESSAGE,null);
	}
	
	/**
	 * 获取数据成功
	 * **/
	public static Response successResponse(Object data){
		return new Response(ConstantsUtil.CommonCode.SUCCESS_CODE,ConstantsUtil.CommonMessage.SUCCESS_MESSAGE,data);
	}
	
	public static Response successResponse(){
		return new Response(ConstantsUtil.CommonCode.SUCCESS_CODE,ConstantsUtil.CommonMessage.SUCCESS_MESSAGE,null);
	}
	
	/**
	 * 用户未登录
	 * **/
	public static Response noLoginResponse(){
		return new Response(ConstantsUtil.CommonCode.NO_LOGIN,ConstantsUtil.CommonMessage.NO_LOGIN_MESSAGE,null);
	}

}

 

 

 

===================================================================================

 

 

@Path("/capital")
public class CapitalController {

	@Autowired
	private CapitalManager capitalManager;

	/**
	 * 检索获得当前用户的资金账户
	 * 
	 * @param userid
	 * @return
	 */
	@POST
	@Path("/queryCapitalInfo")
	@Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
	@Consumes(MediaType.APPLICATION_JSON)
	public List<ThirdPaymentAccount> queryCapitalInfo(Account acc) {
		List<ThirdPaymentAccount> result = capitalManager.queryCapitalInfo(acc);
		return result;
	}

}

 

 

JUnit

package com.vcredit.jdev.p2p.capital.modal;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.IntegrationTest;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import com.vcredit.jdev.p2p.Application;
import com.vcredit.jdev.p2p.entity.Account;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebAppConfiguration
@IntegrationTest
public class CapitalControllerTest {

	public final String REST_SERVICE_URL = "http://localhost:8080/p2p/data/ws/rest";

	static Client client = null;

	//	@Autowired
	//	private CapitalController c;

	@BeforeClass
	public static void init() {
		//register(JacksonFeatures.class).
		client = ClientBuilder.newClient();
		client.register(JacksonJsonProvider.class);
	}

	@Test
	public void test() {
		String path = "/capital/queryCapitalInfo";
		WebTarget target = client.target(REST_SERVICE_URL).path(path);
		Account c = new Account();
		c.setAccountSequence(1l);
		Response response = target.request(MediaType.APPLICATION_JSON).post(Entity.json(c));
		int statusCode = response.getStatus();
		String content = response.readEntity(String.class);
		System.out.println("@" + content);
		System.out.println("retrieveFile1() statusCode:" + statusCode);
		assert (statusCode == 200);
	}

}

 

 

======================================================

 

	@BeforeClass
	public static void init() {
		//register(JacksonFeatures.class).
		client = ClientBuilder.newBuilder().build();
		client.register(JacksonJsonProvider.class);
	}
	
	
	@Before
	public void setUp() throws Exception {
	}
	
	@Test
	public void testLogin(){
		WebTarget target = client.target(REST_SERVICE_URL).path("/account/login");
		Map body = new HashMap();
		body.put("userName", "admin");
		body.put("password", "123456789");
		body.put("verificationCode", "test");
		String response = target.request(TYPE_JSON).post(Entity.json(body),String.class);
		System.out.println(response);
	}

 

	/**
	 * {
		"userName":"admin",
		"password":"123456789",
		"verificationCode":"123456789"
		}
	 * 
	 * 
	 * */
	@POST
	@Path("/login")
	public Response login(Map<String, Object> paramMap){
		String userName = (String) paramMap.get("userName");		
		String password = (String) paramMap.get("password");		
		String verificationCode = (String) paramMap.get("verificationCode");		
		if(StringUtils.isBlank(userName)){
			return Response.paramErrorResponse("请输入用户名!");
		}
		if(StringUtils.isBlank(password)){
			return Response.paramErrorResponse("请输入登陆密码!");
		}
		if(StringUtils.isBlank(verificationCode)){
			return Response.paramErrorResponse("请输入验证码");
		}
		String ip = cxfUtil.getClientIpCxfRest();
		//1.验证验证码
		//2.验证用户名与密码
		try {
			loginManager.login(userName, password,ip);
		} catch (Exception e) {
			return Response.errorResponse(e.getMessage());
		}
		return Response.successResponse();
	}

 

 

 

分享到:
评论

相关推荐

    Spring CXF Restful 实例

    6. **测试和调试**:使用`restful-test`目录中的资源,可以编写JUnit测试或者使用工具如Postman进行接口测试,验证REST服务是否按预期工作。 7. **安全性考虑**:在生产环境中,我们需要考虑API的安全性,可能需要...

    cxf_restful_webservice

    在这个项目中,开发者使用MyEclipse 10作为集成开发环境,它提供了丰富的工具支持,如代码编辑、调试、部署等功能,便于快速构建和测试CXF RESTful Web服务。Tomcat 7则是一个流行的开源Servlet容器,用于运行Java ...

    用CXF开发RESTful风格WebService

    9. **测试RESTful服务**:介绍如何使用curl命令行工具或JUnit等测试框架进行服务的本地测试,验证服务的正确性。 10. **实例分析**:可能提供一个完整的CXF RESTful服务开发案例,从创建项目、定义接口到部署运行,...

    webservice-CXF-spring+maven

    6. **测试与调试**:项目中通常会包含单元测试和集成测试,使用JUnit和Mockito等工具验证服务的正确性。此外,CXF提供了强大的调试工具,如SOAP消息跟踪和日志记录,帮助开发者调试Web服务通信问题。 7. **部署**:...

    CXF简单实例源码

    8. **运行与调试**:在MyEclipse中运行项目,启动CXF的内置服务器,然后运行JUnit测试,观察测试结果。 9. **部署服务**:如果需要在外部服务器上部署,可以使用Maven的`cxf-codegen-plugin`插件生成WAR文件,然后...

    CXF完整实例

    6. **服务测试**:了解如何使用CXF提供的工具或JUnit测试服务,确保其正确工作。 7. **客户端调用**:学习如何生成和使用CXF客户端代码来调用远程服务。 通过这个实例,开发者不仅可以学习到理论知识,还能获得实践...

    cxf WebService

    6. **调试与测试**:CXF提供了强大的调试和测试工具,例如CXF的WS-Security和WS-Policy支持,以及JUnit测试框架的集成。你可以利用这些工具对服务进行单元测试和功能测试,确保其正确性和安全性。 7. **错误处理与...

    springboot整合CXF发布webservice和客户端调用

    SpringBoot整合CXF是将流行的Java Web服务框架CXF与SpringBoot轻量级框架结合,以便更方便地创建和消费Web服务。这个项目提供了一个很好的示例,通过详细注释帮助开发者理解如何在SpringBoot应用中发布和调用Web服务...

    apache-cxf-3.2.6

    8. **调试与测试工具**:CXF提供了强大的客户端测试工具CXFTestSupport,以及基于JUnit的Web服务测试框架,方便开发者进行服务的调试和验证。 9. **文档生成**:CXF可以自动生成服务的WSDL和Schema,以及客户端的...

    cxf REST文档

    总结,Apache CXF提供了一套完善的工具和API,使得开发者能高效地创建、测试和部署RESTful Web服务。理解并掌握CXF与REST的结合,有助于提升Web服务开发的效率和质量。通过实践和不断探索,开发者可以利用CXF的强大...

    cxf 开发webservice客户端

    这些测试类可能使用JUnit或TestNG等单元测试框架编写,目的是验证客户端是否能正确地与Web服务通信并返回预期结果。测试代码通常包括以下步骤: 1. 创建客户端实例:与上述创建客户端实例的步骤相同。 2. 设置模拟...

    apache-cxf-3.1.1

    8. **测试工具**:CXF提供了JUnit测试支持,便于对Web服务进行单元测试和集成测试。 9. **国际化和本地化**:CXF支持多语言和地区的Web服务,可以通过简单的配置实现。 **在"apache-cxf-3.1.1"中可能包含的内容:*...

    cxf-webservice

    8. **测试和调试**:CXF提供了JUnit测试支持和wsdl2java、java2wsdl等工具,便于开发和调试Web服务。 9. **RESTful服务**:CXF通过JAX-RS支持RESTful服务,允许开发者创建资源导向的服务,使用HTTP方法进行操作。 ...

    maven 项目cxf 使用jqgrid4.4.3 项目开发代码

    在本项目中,jqGrid作为前端展示数据的工具,与后端CXF RESTful服务进行通信,实时更新表格内容。 5. **项目结构**: 由于是Maven项目,可以预期项目会遵循Maven的标准目录结构,如`src/main/java`存放Java源代码...

    cxf客户端Demo

    5. **src/test/java**:测试代码目录,可能有JUnit测试类,用于验证CXF客户端的正确性。 6. **target**:Maven构建输出目录,包含了编译后的类文件、打包的JAR或WAR文件等。 通过这个CXF客户端Demo,开发者可以学习...

    apache cxf -jax rs + swagger+mybatis整合

    在Apache CXF和MyBatis的集成项目中,使用JUnit对服务和数据访问层进行单元测试,可以保证代码质量,及时发现和修复问题。 项目"Khywserver"可能是一个包含服务器端实现的模块,可能包含了上述技术的整合代码。这个...

    验证客户端源码cxf

    在“验证客户端源码CXF”的描述中,提到的"已经验证是可以用的"意味着该源码实现了与CXF相关的功能,并经过测试确保其正常运行。这可能包括了创建CXF客户端,调用远程服务,处理响应,以及可能的错误处理和异常管理...

    webservice天气预报例子cxf实例

    4. **测试文件**:可能包含JUnit测试,验证Web服务的正确性和功能。 5. **WSDL文件**:可能提供了一个预定义的服务接口描述,供客户端调用。 在部署这个Web服务后,客户端可以通过发送SOAP请求或者使用RESTful风格...

    cxf与Spring的整合实例(适合初学者)

    6. **测试和调试**:如何使用JUnit进行单元测试,以及如何使用CXF的客户端测试工具进行服务调用测试。 7. **最佳实践**:如何有效地组织项目结构,避免服务暴露过多,以及如何利用Spring的事务管理来处理服务调用中...

    CXF+Spring 完整版例子

    同时,CXF提供了测试工具,如JUnit测试客户端,便于单元测试和集成测试。 8. **RESTful服务**:除了SOAP服务,CXF也支持RESTful服务。通过使用JAX-RS标准,你可以创建基于HTTP的简单、轻量级服务。 9. **版本管理*...

Global site tag (gtag.js) - Google Analytics