package org.xmx0632.deliciousfruit.api.v1;
import static org.junit.Assert.assertEquals;
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.RestTemplate;
import org.xmx0632.deliciousfruit.api.v1.bo.FruitStoryRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.FruitStoryResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.Result;
import org.xmx0632.deliciousfruit.api.v1.bo.ShareFruitStoryRequest;
import org.xmx0632.deliciousfruit.api.v1.bo.ShareFruitStoryResponse;
import org.xmx0632.deliciousfruit.api.v1.bo.TerminalType;
import org.xmx0632.deliciousfruit.functional.BaseControllerTestCase;
public class ShareApiControllerFruitStoryTest extends BaseControllerTestCase {
private final RestTemplate restTemplate = new RestTemplate();
private static String url;
@BeforeClass
public static void initUrl() {
url = baseUrl + "/share/fruitStory";
}
private String getShareUrl() {
return "http://localhost:8888/deliciousfruit/share/fruitStory/view/1";
}
@Test
public void testFruitStorySuccess() throws Exception {
HttpHeaders requestHeaders = createHttpHeader("user2", "password");
ShareFruitStoryRequest shareFruitStoryRequest = new ShareFruitStoryRequest();
shareFruitStoryRequest.setFruitStoryId("1");
HttpEntity<ShareFruitStoryRequest> requestEntity = new HttpEntity<ShareFruitStoryRequest>(
shareFruitStoryRequest, requestHeaders);
ShareFruitStoryResponse response = restTemplate.postForObject(url,
requestEntity, ShareFruitStoryResponse.class);
assertEquals(getShareUrl(), response.getPageUrl());
formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders,
"获取水果故事分享页面, 成功", jsonMapper.toJson(shareFruitStoryRequest),
jsonMapper.toJson(response));
}
@Test
public void testFailNoId() throws Exception {
HttpHeaders requestHeaders = createHttpHeader("user2", "password");
ShareFruitStoryRequest shareFruitStoryRequest = new ShareFruitStoryRequest();
shareFruitStoryRequest.setFruitStoryId("");
HttpEntity<ShareFruitStoryRequest> requestEntity = new HttpEntity<ShareFruitStoryRequest>(
shareFruitStoryRequest, requestHeaders);
ShareFruitStoryResponse response = restTemplate.postForObject(url,
requestEntity, ShareFruitStoryResponse.class);
assertEquals("1", response.getResult().getValue());
assertEquals(Result.MSG_ERR_NO_ID, response.getResult().getMsg());
formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders,
"获得水果故事分享页面,失败,原因:没有水果故事ID",
jsonMapper.toJson(shareFruitStoryRequest),
jsonMapper.toJson(response));
}
@Test
public void testFailNotValidId() throws Exception {
HttpHeaders requestHeaders = createHttpHeader("user2", "password");
ShareFruitStoryRequest shareFruitStoryRequest = new ShareFruitStoryRequest();
shareFruitStoryRequest.setFruitStoryId("aaa");
HttpEntity<ShareFruitStoryRequest> requestEntity = new HttpEntity<ShareFruitStoryRequest>(
shareFruitStoryRequest, requestHeaders);
ShareFruitStoryResponse response = restTemplate.postForObject(url,
requestEntity, ShareFruitStoryResponse.class);
assertEquals("1", response.getResult().getValue());
assertEquals(Result.MSG_ERR_NOT_VALID_ID, response.getResult().getMsg());
formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders,
"获得水果故事分享页面,失败,原因:无效的水果故事ID",
jsonMapper.toJson(shareFruitStoryRequest),
jsonMapper.toJson(response));
}
@Test
public void testFailNotExist() throws Exception {
HttpHeaders requestHeaders = createHttpHeader("user2", "password");
ShareFruitStoryRequest shareFruitStoryRequest = new ShareFruitStoryRequest();
shareFruitStoryRequest.setFruitStoryId("999999");
HttpEntity<ShareFruitStoryRequest> requestEntity = new HttpEntity<ShareFruitStoryRequest>(
shareFruitStoryRequest, requestHeaders);
ShareFruitStoryResponse response = restTemplate.postForObject(url,
requestEntity, ShareFruitStoryResponse.class);
assertEquals("1", response.getResult().getValue());
assertEquals(Result.MSG_ERR_NOT_EXIST, response.getResult().getMsg());
formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders,
"获得水果故事分享页面,失败,原因:水果故事不存在",
jsonMapper.toJson(shareFruitStoryRequest),
jsonMapper.toJson(response));
}
@Test
public void testFailNotOnline() throws Exception {
HttpHeaders requestHeaders = createHttpHeader("user2", "password");
ShareFruitStoryRequest shareFruitStoryRequest = new ShareFruitStoryRequest();
shareFruitStoryRequest.setFruitStoryId("2");
HttpEntity<ShareFruitStoryRequest> requestEntity = new HttpEntity<ShareFruitStoryRequest>(
shareFruitStoryRequest, requestHeaders);
ShareFruitStoryResponse response = restTemplate.postForObject(url,
requestEntity, ShareFruitStoryResponse.class);
assertEquals("1", response.getResult().getValue());
assertEquals(Result.MSG_ERR_STORY_NOT_ONLINE, response.getResult()
.getMsg());
formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders,
"获得水果故事分享页面,失败,原因:水果故事不是上线状态",
jsonMapper.toJson(shareFruitStoryRequest),
jsonMapper.toJson(response));
}
}