Add rawStatusCode() to ServerResponse in both WebFlux and Servlet
Closes gh-22872
This commit is contained in:
parent
56c2987273
commit
7b73418418
|
|
@ -349,6 +349,11 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder {
|
|||
return HttpStatus.valueOf(this.statusCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int rawStatusCode() {
|
||||
return this.statusCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final HttpHeaders headers() {
|
||||
return this.headers;
|
||||
|
|
|
|||
|
|
@ -60,9 +60,21 @@ public interface ServerResponse {
|
|||
|
||||
/**
|
||||
* Return the status code of this response.
|
||||
* @return the status as an HttpStatus enum value
|
||||
* @throws IllegalArgumentException in case of an unknown HTTP status code
|
||||
* @see HttpStatus#valueOf(int)
|
||||
*/
|
||||
HttpStatus statusCode();
|
||||
|
||||
/**
|
||||
* Return the (potentially non-standard) status code of this response.
|
||||
* @return the status as an integer
|
||||
* @since 5.2
|
||||
* @see #statusCode()
|
||||
* @see HttpStatus#resolve(int)
|
||||
*/
|
||||
int rawStatusCode();
|
||||
|
||||
/**
|
||||
* Return the headers of this response.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -90,7 +90,8 @@ public class DefaultEntityResponseBuilderTests {
|
|||
String body = "foo";
|
||||
Mono<EntityResponse<String>> result = EntityResponse.fromObject(body).status(HttpStatus.CREATED).build();
|
||||
StepVerifier.create(result)
|
||||
.expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()))
|
||||
.expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()) &&
|
||||
response.rawStatusCode() == 201)
|
||||
.expectComplete()
|
||||
.verify();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,8 @@ public class DefaultServerResponseBuilderTests {
|
|||
public void status() {
|
||||
Mono<ServerResponse> result = ServerResponse.status(HttpStatus.CREATED).build();
|
||||
StepVerifier.create(result)
|
||||
.expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()))
|
||||
.expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()) &&
|
||||
response.rawStatusCode() == 201)
|
||||
.expectComplete()
|
||||
.verify();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -195,6 +195,10 @@ public class RouterFunctionsTests {
|
|||
return HttpStatus.OK;
|
||||
}
|
||||
@Override
|
||||
public int rawStatusCode() {
|
||||
return 200;
|
||||
}
|
||||
@Override
|
||||
public HttpHeaders headers() {
|
||||
return new HttpHeaders();
|
||||
}
|
||||
|
|
@ -229,6 +233,10 @@ public class RouterFunctionsTests {
|
|||
return HttpStatus.OK;
|
||||
}
|
||||
@Override
|
||||
public int rawStatusCode() {
|
||||
return 200;
|
||||
}
|
||||
@Override
|
||||
public HttpHeaders headers() {
|
||||
return new HttpHeaders();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -264,6 +264,11 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder {
|
|||
return HttpStatus.valueOf(this.statusCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int rawStatusCode() {
|
||||
return this.statusCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final HttpHeaders headers() {
|
||||
return this.headers;
|
||||
|
|
|
|||
|
|
@ -57,9 +57,20 @@ public interface ServerResponse {
|
|||
|
||||
/**
|
||||
* Return the status code of this response.
|
||||
* @return the status as an HttpStatus enum value
|
||||
* @throws IllegalArgumentException in case of an unknown HTTP status code
|
||||
* @see HttpStatus#valueOf(int)
|
||||
*/
|
||||
HttpStatus statusCode();
|
||||
|
||||
/**
|
||||
* Return the (potentially non-standard) status code of this response.
|
||||
* @return the status as an integer
|
||||
* @see #statusCode()
|
||||
* @see HttpStatus#valueOf(int)
|
||||
*/
|
||||
int rawStatusCode();
|
||||
|
||||
/**
|
||||
* Return the headers of this response.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ public class DefaultEntityResponseBuilderTests {
|
|||
EntityResponse.fromObject(body).status(HttpStatus.CREATED).build();
|
||||
|
||||
assertThat(result.statusCode()).isEqualTo(HttpStatus.CREATED);
|
||||
assertThat(result.rawStatusCode()).isEqualTo(201);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ public class DefaultServerResponseBuilderTests {
|
|||
public void status() {
|
||||
ServerResponse response = ServerResponse.status(HttpStatus.CREATED).build();
|
||||
assertThat(response.statusCode()).isEqualTo(HttpStatus.CREATED);
|
||||
assertThat(response.rawStatusCode()).isEqualTo(201);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Reference in New Issue