|
|
@ -35,6 +35,7 @@ import org.springframework.mock.web.server.MockServerWebExchange;
|
|
|
|
import org.springframework.validation.BindingResult;
|
|
|
|
import org.springframework.validation.BindingResult;
|
|
|
|
import org.springframework.validation.MapBindingResult;
|
|
|
|
import org.springframework.validation.MapBindingResult;
|
|
|
|
import org.springframework.validation.ObjectError;
|
|
|
|
import org.springframework.validation.ObjectError;
|
|
|
|
|
|
|
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
|
|
|
import org.springframework.web.bind.support.WebExchangeBindException;
|
|
|
|
import org.springframework.web.bind.support.WebExchangeBindException;
|
|
|
|
import org.springframework.web.reactive.function.server.ServerRequest;
|
|
|
|
import org.springframework.web.reactive.function.server.ServerRequest;
|
|
|
|
import org.springframework.web.server.ResponseStatusException;
|
|
|
|
import org.springframework.web.server.ResponseStatusException;
|
|
|
@ -90,6 +91,29 @@ public class DefaultErrorAttributesTests {
|
|
|
|
assertThat(attributes.get("status")).isEqualTo(500);
|
|
|
|
assertThat(attributes.get("status")).isEqualTo(500);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void annotatedResponseStatusCode() {
|
|
|
|
|
|
|
|
Exception error = new CustomException();
|
|
|
|
|
|
|
|
MockServerHttpRequest request = MockServerHttpRequest.get("/test").build();
|
|
|
|
|
|
|
|
Map<String, Object> attributes = this.errorAttributes
|
|
|
|
|
|
|
|
.getErrorAttributes(buildServerRequest(request, error), false);
|
|
|
|
|
|
|
|
assertThat(attributes.get("error"))
|
|
|
|
|
|
|
|
.isEqualTo(HttpStatus.I_AM_A_TEAPOT.getReasonPhrase());
|
|
|
|
|
|
|
|
assertThat(attributes.get("status")).isEqualTo(HttpStatus.I_AM_A_TEAPOT.value());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
public void annotatedResponseStatusCodeWithCustomReasonPhrase() {
|
|
|
|
|
|
|
|
Exception error = new Custom2Exception();
|
|
|
|
|
|
|
|
MockServerHttpRequest request = MockServerHttpRequest.get("/test").build();
|
|
|
|
|
|
|
|
Map<String, Object> attributes = this.errorAttributes
|
|
|
|
|
|
|
|
.getErrorAttributes(buildServerRequest(request, error), false);
|
|
|
|
|
|
|
|
assertThat(attributes.get("error"))
|
|
|
|
|
|
|
|
.isEqualTo(HttpStatus.I_AM_A_TEAPOT.getReasonPhrase());
|
|
|
|
|
|
|
|
assertThat(attributes.get("status")).isEqualTo(HttpStatus.I_AM_A_TEAPOT.value());
|
|
|
|
|
|
|
|
assertThat(attributes.get("message")).isEqualTo("Nope!");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
public void includeStatusCode() {
|
|
|
|
public void includeStatusCode() {
|
|
|
|
MockServerHttpRequest request = MockServerHttpRequest.get("/test").build();
|
|
|
|
MockServerHttpRequest request = MockServerHttpRequest.get("/test").build();
|
|
|
@ -214,4 +238,14 @@ public class DefaultErrorAttributesTests {
|
|
|
|
return 42;
|
|
|
|
return 42;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ResponseStatus(HttpStatus.I_AM_A_TEAPOT)
|
|
|
|
|
|
|
|
private static class CustomException extends RuntimeException {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ResponseStatus(value = HttpStatus.I_AM_A_TEAPOT, reason = "Nope!")
|
|
|
|
|
|
|
|
private static class Custom2Exception extends RuntimeException {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|