package org.xmx0632.deliciousfruit.api.v1; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import java.io.UnsupportedEncodingException; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; import org.xmx0632.deliciousfruit.api.v1.bo.UpdateRequest; import org.xmx0632.deliciousfruit.api.v1.bo.UpdateResponse; import org.xmx0632.deliciousfruit.functional.BaseControllerTestCase; public class UserAccountApiControllerUpdateRestTemplateTest extends BaseControllerTestCase { private final RestTemplate restTemplate = new RestTemplate(); private static String url; @BeforeClass public static void initUrl() { url = baseUrl + "/user/update"; } @Test public void testUpdateSuccess() throws Exception { HttpHeaders requestHeaders = createHttpHeader("user2", "password"); UpdateRequest updateRequest = new UpdateRequest(); updateRequest.setCustomerName("changeName"); updateRequest.setEmail("aaa@bbb.com"); updateRequest.setMobile("13900000000"); updateRequest.setSex("2"); updateRequest.setUsername("user2"); HttpEntity<UpdateRequest> entity = new HttpEntity<UpdateRequest>( updateRequest, requestHeaders); UpdateResponse response = restTemplate.postForObject(url, entity, UpdateResponse.class); String expected = "UpdateResponse [result=Result [msg=, value=0], err=null]"; assertEquals(expected, response.toString()); formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders, "用户更新成功", jsonMapper.toJson(updateRequest), jsonMapper.toJson(response)); } @Test public void testUpdateFail_invalid_property() throws Exception { HttpHeaders requestHeaders = createHttpHeader("user2", "password"); UpdateRequest updateRequest = new UpdateRequest(); updateRequest.setCustomerName("customerName"); updateRequest.setEmail("aaa@bbb.com"); updateRequest.setMobile("13900000000"); updateRequest.setSex("2"); updateRequest.setUsername(null); HttpEntity<UpdateRequest> entity = new HttpEntity<UpdateRequest>( updateRequest, requestHeaders); UpdateResponse response = restTemplate.postForObject(url, entity, UpdateResponse.class); String expected = "UpdateResponse [result=Result [msg=invalid property, value=1], err={username=不能为null}]"; assertEquals(expected, response.toString()); formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders, "用户更新失败", jsonMapper.toJson(updateRequest), jsonMapper.toJson(response)); } @Test public void testUpdateFail_invalid_authInfo() { UpdateRequest updateRequest = new UpdateRequest(); HttpHeaders requestHeaders = null; try { requestHeaders = createHttpHeader("notExistUser", "password"); updateRequest.setCustomerName("customerName"); updateRequest.setEmail("aaa@bbb.com"); updateRequest.setMobile("13900000000"); updateRequest.setSex("2"); updateRequest.setUsername(null); HttpEntity<UpdateRequest> entity = new HttpEntity<UpdateRequest>( updateRequest, requestHeaders); restTemplate.postForObject(url, entity, UpdateResponse.class); } catch (HttpClientErrorException e) { assertEquals("401 Unauthorized", e.getMessage()); formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders, "用户更新失败", jsonMapper.toJson(updateRequest), e.getMessage()); } catch (UnsupportedEncodingException e) { fail("服务器状态不正常!"); } } @Test public void testUpdateFail_banned_authInfo() { UpdateRequest updateRequest = new UpdateRequest(); HttpHeaders requestHeaders = null; try { requestHeaders = createHttpHeader("bannedUser", "password"); updateRequest.setCustomerName("customerName"); updateRequest.setEmail("aaa@bbb.com"); updateRequest.setMobile("13900000000"); updateRequest.setSex("2"); updateRequest.setUsername(null); HttpEntity<UpdateRequest> entity = new HttpEntity<UpdateRequest>( updateRequest, requestHeaders); restTemplate.postForObject(url, entity, UpdateResponse.class); } catch (HttpClientErrorException e) { assertEquals("403 Forbidden", e.getMessage()); formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders, "用户更新失败", jsonMapper.toJson(updateRequest), e.getMessage()); } catch (UnsupportedEncodingException e) { fail("服务器状态不正常!"); } } }