use of org.springside.examples.bootapi.api.support.ErrorResult in project springside4 by springside.
the class BookEndpointTest method applyRequestWithError.
@Test
public void applyRequestWithError() {
// 未设置token
ResponseEntity<String> response = restTemplate.getForEntity(resourceUrl + "/{id}/request", String.class, 1L);
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
ErrorResult errorResult = jsonMapper.fromJson(response.getBody(), ErrorResult.class);
assertThat(errorResult.code).isEqualTo(ErrorCode.NO_TOKEN.code);
Book book = bookDao.findOne(1L);
assertThat(book.borrower).isNull();
// 设置错误token
response = restTemplate.getForEntity(resourceUrl + "/{id}/request?token={token}", String.class, 1L, "abc");
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
errorResult = jsonMapper.fromJson(response.getBody(), ErrorResult.class);
assertThat(errorResult.code).isEqualTo(ErrorCode.UNAUTHORIZED.code);
book = bookDao.findOne(1L);
assertThat(book.borrower).isNull();
// 自己借自己的书
String token = login("calvin.xiao@springside.io");
response = restTemplate.getForEntity(resourceUrl + "/{id}/request?token={token}", String.class, 1L, token);
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
errorResult = jsonMapper.fromJson(response.getBody(), ErrorResult.class);
assertThat(errorResult.code).isEqualTo(ErrorCode.BOOK_OWNERSHIP_WRONG.code);
book = bookDao.findOne(1L);
assertThat(book.borrower).isNull();
logout(token);
// 借一本已被申请借出的书
token = login("calvin.xiao@springside.io");
response = restTemplate.getForEntity(resourceUrl + "/{id}/request?token={token}", String.class, 3L, token);
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
response = restTemplate.getForEntity(resourceUrl + "/{id}/request?token={token}", String.class, 3L, token);
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
errorResult = jsonMapper.fromJson(response.getBody(), ErrorResult.class);
assertThat(errorResult.code).isEqualTo(ErrorCode.BOOK_STATUS_WRONG.code);
// 回退操作
response = restTemplate.getForEntity(resourceUrl + "/{id}/cancel?token={token}", String.class, 3L, token);
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
logout(token);
}
Aggregations