package org.xmx0632.deliciousfruit.api.v1; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import org.apache.http.client.ClientProtocolException; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; import org.springside.modules.mapper.JsonMapper; import org.xmx0632.deliciousfruit.api.v1.bo.ForgetPwdRequest; import org.xmx0632.deliciousfruit.api.v1.bo.ForgetPwdResponse; import org.xmx0632.deliciousfruit.functional.BaseControllerTestCase; public class UserAccountApiControllerForgetPwdTest extends BaseControllerTestCase { private final RestTemplate restTemplate = new RestTemplate(); private static String url; @BeforeClass public static void initUrl() { url = baseUrl + "/forgetPwd"; } @Test public void testForgetPwdSuccessToEmail() throws URISyntaxException { ForgetPwdRequest forgetPwdRequest = new ForgetPwdRequest("user6", ""); URI uri = new URI(url); ResponseEntity<ForgetPwdResponse> result = restTemplate.postForEntity( uri, forgetPwdRequest, ForgetPwdResponse.class); ForgetPwdResponse response = result.getBody(); String expected = "ForgetPwdResponse [result=Result [msg=check your email,reset link will be send as soon as possible, value=01]]"; assertEquals(expected, response.toString()); formatHttpInfoPrint(HttpMethod.POST, url, null, "邮件用户重置密码成功", new JsonMapper().toJson(forgetPwdRequest), jsonMapper.toJson(response)); } @Test public void testForgetPwdSuccessToEmailWithJson() throws URISyntaxException, UnsupportedEncodingException, ClientProtocolException, IOException { String message = "{\"loginName\":\"user6\",\"email\":\"\"}"; String response = sendPostMsg("", "", message, url); String expected = "{\"result\":{\"msg\":\"check your email,reset link will be send as soon as possible\",\"value\":\"01\"}}"; assertEquals(expected, response); formatHttpInfoPrint(HttpMethod.POST, url, null, "邮件用户重置密码成功", message, response); } @Test public void testForgetPwdSuccessToEmailWithJson1() throws URISyntaxException, UnsupportedEncodingException, ClientProtocolException, IOException { String message = "{\"loginName\":\"user6\"}"; String response = sendPostMsg("", "", message, url); String expected = "{\"result\":{\"msg\":\"check your email,reset link will be send as soon as possible\",\"value\":\"01\"}}"; assertEquals(expected, response); formatHttpInfoPrint(HttpMethod.POST, url, null, "邮件用户重置密码成功", message, response); } @Ignore @Test public void testForgetPwdSuccessToPhoneWithJson1() throws URISyntaxException, UnsupportedEncodingException, ClientProtocolException, IOException { String message = "{\"loginName\":\"13800138003\"}"; String response = sendPostMsg("", "", message, url); String expected = "{\"result\":{\"msg\":\"check your mobile,reset password please.\",\"value\":\"02\"}}"; assertEquals(expected, response); formatHttpInfoPrint(HttpMethod.POST, url, null, "短信用户重置密码成功", message, response); } @Test public void testForgetPwdFailedToPhone_unknown_username() throws URISyntaxException, UnsupportedEncodingException, ClientProtocolException, IOException { String message = "{\"loginName\":\"13800138000\"}"; String response = sendPostMsg("", "", message, url); String expected = "{\"result\":{\"msg\":\"unknown username\",\"value\":\"1\"}}"; assertEquals(expected, response); formatHttpInfoPrint(HttpMethod.POST, url, null, "短信用户重置密码失败-未知用户", message, response); } }