com.github.ngeor.yak4j.ResponseEntityAssert Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yak4j-spring-test-utils Show documentation
Show all versions of yak4j-spring-test-utils Show documentation
yak shaving for Java: Testing utilities for Spring
package com.github.ngeor.yak4j;
import org.assertj.core.api.AbstractAssert;
import org.assertj.core.api.Assertions;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
/**
* Assertion DSL for {@link ResponseEntity}.
*
* @param The body of the response.
*/
@SuppressWarnings({"unused", "WeakerAccess", "UnusedReturnValue"})
public class ResponseEntityAssert extends AbstractAssert, ResponseEntity> {
ResponseEntityAssert(ResponseEntity responseEntity) {
super(responseEntity, ResponseEntityAssert.class);
}
/**
* Verifies that the response has the given HTTP status code.
*
* @param httpStatus The expected HTTP status code.
* @return This instance.
*/
public ResponseEntityAssert hasStatus(HttpStatus httpStatus) {
isNotNull();
HttpStatus actualStatusCode = actual.getStatusCode();
Assertions.assertThat(actualStatusCode)
.withFailMessage("Expecting response status code to be %s but was %s", httpStatus, actualStatusCode)
.isEqualTo(httpStatus);
return this;
}
public ResponseEntityAssert isOk() {
return hasStatus(HttpStatus.OK);
}
public ResponseEntityAssert isCreated() {
return hasStatus(HttpStatus.CREATED);
}
public ResponseEntityAssert isBadRequest() {
return hasStatus(HttpStatus.BAD_REQUEST);
}
public ResponseEntityAssert isForbidden() {
return hasStatus(HttpStatus.FORBIDDEN);
}
public ResponseEntityAssert isInternalServerError() {
return hasStatus(HttpStatus.INTERNAL_SERVER_ERROR);
}
public ResponseEntityAssert isUnauthorized() {
return hasStatus(HttpStatus.UNAUTHORIZED);
}
public ResponseEntityAssert isConflict() {
return hasStatus(HttpStatus.CONFLICT);
}
/**
* Verifies that the response contains the given object as body.
*
* @param body The expected body.
* @return This instance.
*/
public ResponseEntityAssert hasBody(T body) {
isNotNull();
T actualBody = actual.getBody();
Assertions.assertThat(actualBody)
.withFailMessage("Expecting response entity body to be %s but was %s", body, actualBody)
.isNotNull()
.isEqualTo(body);
return this;
}
}