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);
 | 
								return HttpStatus.valueOf(this.statusCode);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@Override
 | 
				
			||||||
 | 
							public int rawStatusCode() {
 | 
				
			||||||
 | 
								return this.statusCode;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		@Override
 | 
							@Override
 | 
				
			||||||
		public final HttpHeaders headers() {
 | 
							public final HttpHeaders headers() {
 | 
				
			||||||
			return this.headers;
 | 
								return this.headers;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,9 +60,21 @@ public interface ServerResponse {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Return the status code of this response.
 | 
						 * 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();
 | 
						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.
 | 
						 * Return the headers of this response.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -90,7 +90,8 @@ public class DefaultEntityResponseBuilderTests {
 | 
				
			||||||
		String body = "foo";
 | 
							String body = "foo";
 | 
				
			||||||
		Mono<EntityResponse<String>> result = EntityResponse.fromObject(body).status(HttpStatus.CREATED).build();
 | 
							Mono<EntityResponse<String>> result = EntityResponse.fromObject(body).status(HttpStatus.CREATED).build();
 | 
				
			||||||
		StepVerifier.create(result)
 | 
							StepVerifier.create(result)
 | 
				
			||||||
				.expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()))
 | 
									.expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()) &&
 | 
				
			||||||
 | 
											response.rawStatusCode() == 201)
 | 
				
			||||||
				.expectComplete()
 | 
									.expectComplete()
 | 
				
			||||||
				.verify();
 | 
									.verify();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,7 +86,8 @@ public class DefaultServerResponseBuilderTests {
 | 
				
			||||||
	public void status() {
 | 
						public void status() {
 | 
				
			||||||
		Mono<ServerResponse> result = ServerResponse.status(HttpStatus.CREATED).build();
 | 
							Mono<ServerResponse> result = ServerResponse.status(HttpStatus.CREATED).build();
 | 
				
			||||||
		StepVerifier.create(result)
 | 
							StepVerifier.create(result)
 | 
				
			||||||
				.expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()))
 | 
									.expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()) &&
 | 
				
			||||||
 | 
											response.rawStatusCode() == 201)
 | 
				
			||||||
				.expectComplete()
 | 
									.expectComplete()
 | 
				
			||||||
				.verify();
 | 
									.verify();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -195,6 +195,10 @@ public class RouterFunctionsTests {
 | 
				
			||||||
						return HttpStatus.OK;
 | 
											return HttpStatus.OK;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					@Override
 | 
										@Override
 | 
				
			||||||
 | 
										public int rawStatusCode() {
 | 
				
			||||||
 | 
											return 200;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										@Override
 | 
				
			||||||
					public HttpHeaders headers() {
 | 
										public HttpHeaders headers() {
 | 
				
			||||||
						return new HttpHeaders();
 | 
											return new HttpHeaders();
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
| 
						 | 
					@ -229,6 +233,10 @@ public class RouterFunctionsTests {
 | 
				
			||||||
						return HttpStatus.OK;
 | 
											return HttpStatus.OK;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					@Override
 | 
										@Override
 | 
				
			||||||
 | 
										public int rawStatusCode() {
 | 
				
			||||||
 | 
											return 200;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										@Override
 | 
				
			||||||
					public HttpHeaders headers() {
 | 
										public HttpHeaders headers() {
 | 
				
			||||||
						return new HttpHeaders();
 | 
											return new HttpHeaders();
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -264,6 +264,11 @@ class DefaultServerResponseBuilder implements ServerResponse.BodyBuilder {
 | 
				
			||||||
			return HttpStatus.valueOf(this.statusCode);
 | 
								return HttpStatus.valueOf(this.statusCode);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@Override
 | 
				
			||||||
 | 
							public int rawStatusCode() {
 | 
				
			||||||
 | 
								return this.statusCode;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		@Override
 | 
							@Override
 | 
				
			||||||
		public final HttpHeaders headers() {
 | 
							public final HttpHeaders headers() {
 | 
				
			||||||
			return this.headers;
 | 
								return this.headers;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,9 +57,20 @@ public interface ServerResponse {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Return the status code of this response.
 | 
						 * 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();
 | 
						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.
 | 
						 * Return the headers of this response.
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -81,6 +81,7 @@ public class DefaultEntityResponseBuilderTests {
 | 
				
			||||||
				EntityResponse.fromObject(body).status(HttpStatus.CREATED).build();
 | 
									EntityResponse.fromObject(body).status(HttpStatus.CREATED).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		assertThat(result.statusCode()).isEqualTo(HttpStatus.CREATED);
 | 
							assertThat(result.statusCode()).isEqualTo(HttpStatus.CREATED);
 | 
				
			||||||
 | 
							assertThat(result.rawStatusCode()).isEqualTo(201);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,6 +67,7 @@ public class DefaultServerResponseBuilderTests {
 | 
				
			||||||
	public void status() {
 | 
						public void status() {
 | 
				
			||||||
		ServerResponse response = ServerResponse.status(HttpStatus.CREATED).build();
 | 
							ServerResponse response = ServerResponse.status(HttpStatus.CREATED).build();
 | 
				
			||||||
		assertThat(response.statusCode()).isEqualTo(HttpStatus.CREATED);
 | 
							assertThat(response.statusCode()).isEqualTo(HttpStatus.CREATED);
 | 
				
			||||||
 | 
							assertThat(response.rawStatusCode()).isEqualTo(201);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue