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);
}
}