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.AllFruitCategoryRequest; import org.xmx0632.deliciousfruit.api.v1.bo.AllFruitCategoryResponse; import org.xmx0632.deliciousfruit.api.v1.bo.FruitCategoryBo; import org.xmx0632.deliciousfruit.api.v1.bo.Result; import org.xmx0632.deliciousfruit.functional.BaseControllerTestCase; public class FruitCategoryApiGetAllTest extends BaseControllerTestCase { private final RestTemplate restTemplate = new RestTemplate(); private static String url; @BeforeClass public static void initUrl() { url = baseUrl + "/fruitcategory/getAll"; } @Test public void testGetAllSuccess() throws Exception { HttpHeaders requestHeaders = createHttpHeader("user2", "password"); AllFruitCategoryRequest allFruitCategoryRequest = new AllFruitCategoryRequest(); allFruitCategoryRequest.setTerminalType("IOS_RETINA"); HttpEntity<AllFruitCategoryRequest> entity = new HttpEntity<AllFruitCategoryRequest>( allFruitCategoryRequest, requestHeaders); AllFruitCategoryResponse response = restTemplate.postForObject(url, entity, AllFruitCategoryResponse.class); assertEquals(Result.SUCCESS, response.getResult().getValue()); assertEquals(genSucessResFruitCategorys().toString(), response .getFruitCategories().toString()); formatHttpInfoPrint(HttpMethod.POST, url, requestHeaders, "获得所有水果分类, 成功", jsonMapper.toJson(allFruitCategoryRequest), jsonMapper.toJson(response)); } @Test public void testFailNotValidTerminalType() throws Exception { HttpHeaders requestHeaders = createHttpHeader("user2", "password"); AllFruitCategoryRequest allFruitCategoryRequest = new AllFruitCategoryRequest(); allFruitCategoryRequest.setTerminalType("windows8"); HttpEntity<AllFruitCategoryRequest> entity = new HttpEntity<AllFruitCategoryRequest>( allFruitCategoryRequest, requestHeaders); AllFruitCategoryResponse response = restTemplate.postForObject(url, entity, AllFruitCategoryResponse.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(allFruitCategoryRequest), jsonMapper.toJson(response)); } private List<FruitCategoryBo> genSucessResFruitCategorys() { List<FruitCategoryBo> categories = new ArrayList<FruitCategoryBo>(); FruitCategoryBo fruitCategoryBo1 = new FruitCategoryBo(); fruitCategoryBo1.setFruitCategoryId("C000001"); fruitCategoryBo1.setName("苹果"); fruitCategoryBo1.setIconUrl(pictureServerRootUrl + "/ios_retina/category/1.jpg"); FruitCategoryBo fruitCategoryBo2 = new FruitCategoryBo(); fruitCategoryBo2.setFruitCategoryId("S001201"); fruitCategoryBo2.setName("海南芭乐"); fruitCategoryBo2.setIconUrl(pictureServerRootUrl + "/ios_retina/category/2.jpg"); categories.add(fruitCategoryBo1); categories.add(fruitCategoryBo2); return categories; } }