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