/** * 版权声明:中图一购网络科技有限公司 版权所有 违者必究 2012 * 日 期:12-6-30 */ package com.rop.sample; import com.rop.MessageFormat; import com.rop.client.ClientRequest; import com.rop.client.CompositeResponse; import com.rop.client.DefaultRopClient; import com.rop.request.UploadFile; import com.rop.response.ErrorResponse; import com.rop.sample.converter.TelephoneConverter; import com.rop.sample.request.*; import com.rop.sample.response.CreateUserResponse; import com.rop.sample.response.LogonResponse; import com.rop.sample.response.UploadUserPhotoResponse; import com.rop.sample.response.UserListResponse; import com.rop.security.MainErrorType; import org.springframework.core.io.ClassPathResource; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.util.*; import static org.testng.Assert.*; /** * <pre> * 功能说明: * </pre> * * @author 陈雄华 * @version 1.0 */ public class UserServiceClient { public static final String SERVER_URL = "http://localhost:8088/router"; public static final String APP_KEY = "00001"; public static final String APP_SECRET = "abcdeabcdeabcdeabcdeabcde"; private DefaultRopClient ropClient = new DefaultRopClient(SERVER_URL, APP_KEY, APP_SECRET); { ropClient.setFormatParamName("messageFormat"); ropClient.addRopConvertor(new TelephoneConverter()); } @BeforeClass public void createSession() { LogonRequest ropRequest = new LogonRequest(); ropRequest.setUserName("tomson"); ropRequest.setPassword("123456"); CompositeResponse response = ropClient.buildClientRequest() .get(ropRequest, LogonResponse.class, "user.getSession", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertNotNull(response.getSuccessResponse()); assertTrue(response.getSuccessResponse() instanceof LogonResponse); assertEquals(((LogonResponse) response.getSuccessResponse()).getSessionId(), "mockSessionId1"); ropClient.setSessionId(((LogonResponse) response.getSuccessResponse()).getSessionId()); } @Test public void createSessionWithParamMap() { CompositeResponse response = ropClient.buildClientRequest() .addParam("userName", "tomson") .addParam("password", "123456", true) .get(LogonResponse.class, "user.getSession", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertNotNull(response.getSuccessResponse()); assertTrue(response.getSuccessResponse() instanceof LogonResponse); assertEquals(((LogonResponse) response.getSuccessResponse()).getSessionId(), "mockSessionId1"); } @Test public void addUser() { CompositeResponse response = ropClient.buildClientRequest() .addParam("userName", "tomson") .addParam("password", "123456", true) .get(LogonResponse.class, "user.getSession", "1.0"); String sessionId = ((LogonResponse) response.getSuccessResponse()).getSessionId(); ropClient.setSessionId(sessionId); CreateUserRequest createUserRequest = new CreateUserRequest(); createUserRequest.setUserName("katty"); createUserRequest.setSalary(2500L); Telephone telephone = new Telephone(); telephone.setZoneCode("010"); telephone.setTelephoneCode("12345678"); createUserRequest.setTelephone(telephone); //add1 response = ropClient.buildClientRequest() .post(createUserRequest, CreateUserResponse.class, "user.add", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertTrue(response.getSuccessResponse() instanceof CreateUserResponse); //add2 response = ropClient.buildClientRequest() .post(createUserRequest, CreateUserResponse.class, "user.add", "1.0"); } @Test public void addUserUseParamMap() { CompositeResponse response = ropClient.buildClientRequest() .addParam("userName", "tomson") .addParam("password", "123456", true) .get(LogonResponse.class, "user.getSession", "1.0"); String sessionId = ((LogonResponse) response.getSuccessResponse()).getSessionId(); ropClient.setSessionId(sessionId); ClientRequest cr2 = ropClient.buildClientRequest(); cr2.addParam("userName", "katty"); cr2.addParam("salary", 2500L); Telephone telephone = new Telephone(); telephone.setZoneCode("010"); telephone.setTelephoneCode("12345678"); cr2.addParam("telephone", telephone); response = cr2.post(CreateUserResponse.class, "user.add", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertTrue(response.getSuccessResponse() instanceof CreateUserResponse); } @Test public void testAddUserByVersion3() { CreateUserRequest ropRequest = new CreateUserRequest(); ropRequest.setUserName("tomson"); ropRequest.setSalary(2500L); ropClient.setMessageFormat(MessageFormat.xml); CompositeResponse response = ropClient.buildClientRequest() .post(ropRequest, CreateUserResponse.class, "user.add", "3.0"); assertNotNull(response); assertFalse(response.isSuccessful()); assertNull(response.getSuccessResponse()); assertNotNull(response.getErrorResponse()); assertTrue(response.getErrorResponse() instanceof ErrorResponse); assertEquals(response.getErrorResponse().getCode(), MainErrorType.UNSUPPORTED_VERSION.value()); } @Test public void testFileUpload() throws Throwable { ClientRequest cr = ropClient.buildClientRequest(); UploadUserPhotoRequest request = new UploadUserPhotoRequest(); ClassPathResource resource = new ClassPathResource("photo.png"); UploadFile uploadFile = new UploadFile(resource.getFile()); request.setPhoto(uploadFile); request.setUserId("1"); ropClient.setMessageFormat(MessageFormat.xml); CompositeResponse response = ropClient.buildClientRequest() .post(request, UploadUserPhotoResponse.class, "user.upload.photo", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertTrue(response.getSuccessResponse() instanceof UploadUserPhotoResponse); assertEquals(((UploadUserPhotoResponse) response.getSuccessResponse()).getFileType(), "png"); assertEquals(((UploadUserPhotoResponse) response.getSuccessResponse()).getLength(), uploadFile.getContent().length); } @Test public void testServiceXmlRequestAttr() throws Throwable { CreateUserRequest request = new CreateUserRequest(); request.setUserName("tomson"); request.setLocked(true); request.setSalary(2500L); Address address = new Address(); address.setZoneCode("0001"); address.setDoorCode("002"); Street street1 = new Street(); street1.setName("street1"); street1.setNo("001"); Street street2 = new Street(); street2.setName("street2"); street2.setNo("002"); ArrayList<Street> streets = new ArrayList<Street>(); streets.add(street1); streets.add(street2); address.setStreets(streets); request.setAddress(address); ropClient.setMessageFormat(MessageFormat.xml); CompositeResponse response = ropClient.buildClientRequest() .post(request, CreateUserResponse.class, "user.add", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertTrue(response.getSuccessResponse() instanceof CreateUserResponse); } @Test public void testServiceJsonRequestAttr() throws Throwable { ropClient.setMessageFormat(MessageFormat.json); CreateUserRequest request = new CreateUserRequest(); request.setUserName("tomson"); request.setSalary(2500L); Address address = new Address(); address.setZoneCode("0001"); address.setDoorCode("002"); Street street1 = new Street(); street1.setName("street1"); street1.setNo("001"); Street street2 = new Street(); street2.setName("street2"); street2.setNo("002"); ArrayList<Street> streets = new ArrayList<Street>(); streets.add(street1); streets.add(street2); address.setStreets(streets); request.setAddress(address); CompositeResponse response = ropClient.buildClientRequest() .post(request, CreateUserResponse.class, "user.add", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertTrue(response.getSuccessResponse() instanceof CreateUserResponse); } @Test public void testUserList() throws Throwable { ropClient.setMessageFormat(MessageFormat.json); CompositeResponse response = ropClient.buildClientRequest().get(UserListResponse.class,"user.list", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertTrue(response.getSuccessResponse() instanceof UserListResponse); } @Test public void testCustomConverter() { ropClient.addRopConvertor(new TelephoneConverter()); CreateUserRequest request = new CreateUserRequest(); request.setUserName("tomson"); request.setSalary(2500L); Telephone telephone = new Telephone(); telephone.setZoneCode("0592"); telephone.setTelephoneCode("12345678"); CompositeResponse response = ropClient.buildClientRequest().post(request, CreateUserResponse.class, "user.add", "1.0"); assertNotNull(response); assertTrue(response.isSuccessful()); assertTrue(response.getSuccessResponse() instanceof CreateUserResponse); } }