Search in sources :

Example 1 with ErrorResult

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);
}
Also used : Book(org.springside.examples.bootapi.domain.Book) ErrorResult(org.springside.examples.bootapi.api.support.ErrorResult) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)1 ErrorResult (org.springside.examples.bootapi.api.support.ErrorResult)1 Book (org.springside.examples.bootapi.domain.Book)1