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