package org.xmx0632.deliciousfruit.api.v1; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; 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.AllFruiStoriesRequest; import org.xmx0632.deliciousfruit.api.v1.bo.AllFruitStoriesResponse; import org.xmx0632.deliciousfruit.api.v1.bo.FruitStoryBo; import org.xmx0632.deliciousfruit.api.v1.bo.FruitStoryMaterialBo; import org.xmx0632.deliciousfruit.api.v1.bo.FruitStoryMenuBo; import org.xmx0632.deliciousfruit.api.v1.bo.FruitStoryProcedureBo; import org.xmx0632.deliciousfruit.api.v1.bo.Result; import org.xmx0632.deliciousfruit.api.v1.bo.TerminalType; import org.xmx0632.deliciousfruit.functional.BaseControllerTestCase; public class FruitStoryApiControllerGetAllTest extends BaseControllerTestCase { private final RestTemplate restTemplate = new RestTemplate(); private static String url; @BeforeClass public static void initUrl() { url = baseUrl + "/fruitstory/getAll"; } @Test public void testGetAllSuccess() throws Exception { HttpHeaders requestHeaders = createHttpHeader("user2", "password1"); AllFruiStoriesRequest allFruiStoriesRequest = new AllFruiStoriesRequest(); allFruiStoriesRequest.setTerminalType(TerminalType.IOS_NORMAL.name()); HttpEntity<AllFruiStoriesRequest> entity = new HttpEntity<AllFruiStoriesRequest>( allFruiStoriesRequest, requestHeaders); AllFruitStoriesResponse response = restTemplate.postForObject(url, entity, AllFruitStoriesResponse.class); assertEquals("0", response.getResult().getValue()); assertEquals(genSucessResFruitStories().toString(), response .getFruitStories().toString()); formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders, "获得所有水果故事,成功", jsonMapper.toJson(allFruiStoriesRequest), jsonMapper.toJson(response)); } @Test public void testFailNotValidTerminalType() throws Exception { HttpHeaders requestHeaders = createHttpHeader("user2", "password"); AllFruiStoriesRequest allFruiStoriesRequest = new AllFruiStoriesRequest(); allFruiStoriesRequest.setTerminalType("andoid"); HttpEntity<AllFruiStoriesRequest> entity = new HttpEntity<AllFruiStoriesRequest>( allFruiStoriesRequest, requestHeaders); AllFruitStoriesResponse response = restTemplate.postForObject(url, entity, AllFruitStoriesResponse.class); assertEquals(Result.FAIL, response.getResult().getValue()); assertEquals(Result.MSG_ERR_NOT_VALID_TERMINAL_TYPE, response .getResult().getMsg()); formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders, "获得所有水果故事,失败.原因:无效的终端类型", jsonMapper.toJson(allFruiStoriesRequest), jsonMapper.toJson(response)); } private List<FruitStoryBo> genSucessResFruitStories() { List<FruitStoryBo> stories = new ArrayList<FruitStoryBo>(); FruitStoryBo fruitStoryBo1 = new FruitStoryBo(Long.valueOf("1"), "水果故事1", "这是一个上线水果故事", pictureServerRootUrl + "/ios_normal/fruit_story/1.png"); FruitStoryMenuBo fruitStoryMenu1 = new FruitStoryMenuBo("10001", "第一个果谱,味道鲜美,清爽可口,实在是居家旅行杀人越货的必备良品客官快来尝尝.", pictureServerRootUrl + "/ios_normal/fruit_menu/1.png"); fruitStoryBo1.setFruitStoryMenu(fruitStoryMenu1); fruitStoryMenu1.getMaterials() .add(new FruitStoryMaterialBo("苹果", "2个")); fruitStoryMenu1.getMaterials().add( new FruitStoryMaterialBo("猕猴桃", "3个")); fruitStoryMenu1.getProcedures().add( new FruitStoryProcedureBo("苹果去皮,切块", pictureServerRootUrl + "/ios_normal/fruit_procedure/1.jpg")); fruitStoryMenu1.getProcedures().add( new FruitStoryProcedureBo("猕猴桃去皮,榨汁", pictureServerRootUrl + "/ios_normal/fruit_procedure/2.jpg")); FruitStoryBo fruitStoryBo4 = new FruitStoryBo(Long.valueOf("4"), "水果故事4", "这是第二个上线水果故事", pictureServerRootUrl + "/ios_normal/fruit_story/4.png"); FruitStoryMenuBo fruitStoryMenu4 = new FruitStoryMenuBo("10004", "第四个果谱,味道鲜美,清爽可口,实在是居家旅行杀人越货的必备良品客官快来尝尝.", pictureServerRootUrl + "/ios_normal/fruit_menu/4.png"); fruitStoryBo4.setFruitStoryMenu(fruitStoryMenu4); fruitStoryMenu4.getMaterials() .add(new FruitStoryMaterialBo("苹果", "3个")); fruitStoryMenu4.getMaterials().add( new FruitStoryMaterialBo("猕猴桃", "4个")); fruitStoryMenu4.getProcedures().add( new FruitStoryProcedureBo("苹果,切块", pictureServerRootUrl + "/ios_normal/fruit_procedure/3.jpg")); fruitStoryMenu4.getProcedures().add( new FruitStoryProcedureBo("猕猴桃,榨汁", pictureServerRootUrl + "/ios_normal/fruit_procedure/4.jpg")); stories.add(fruitStoryBo1); stories.add(fruitStoryBo4); return stories; } }