"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "spring-test/src/test/java/org/springframework/test/web/servlet/samples/client/standalone/resultmatches/StatusAssertionTests.java" between
spring-framework-5.3.7.tar.gz and spring-framework-5.3.8.tar.gz

About: Spring Framework is an application framework for the Java platform and .NET Framework. Community edition.

StatusAssertionTests.java  (spring-framework-5.3.7):StatusAssertionTests.java  (spring-framework-5.3.8)
/* /*
* Copyright 2002-2020 the original author or authors. * Copyright 2002-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* https://www.apache.org/licenses/LICENSE-2.0 * https://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.test.web.servlet.samples.client.standalone.resultmat ches; package org.springframework.test.web.servlet.samples.client.standalone.resultmat ches;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.springframework.core.annotation.AliasFor; import org.springframework.core.annotation.AliasFor;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
import org.springframework.test.web.servlet.client.MockMvcWebTestClient; import org.springframework.test.web.servlet.client.MockMvcWebTestClient;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo;
import static org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS;
import static org.springframework.http.HttpStatus.BAD_REQUEST; import static org.springframework.http.HttpStatus.BAD_REQUEST;
import static org.springframework.http.HttpStatus.CREATED; import static org.springframework.http.HttpStatus.CREATED;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
import static org.springframework.http.HttpStatus.I_AM_A_TEAPOT;
import static org.springframework.http.HttpStatus.NOT_IMPLEMENTED; import static org.springframework.http.HttpStatus.NOT_IMPLEMENTED;
/** /**
* {@link MockMvcWebTestClient} equivalent of the MockMvc * {@link MockMvcWebTestClient} equivalent of the MockMvc
* {@link org.springframework.test.web.servlet.samples.standalone.resultmatchers .StatusAssertionTests}. * {@link org.springframework.test.web.servlet.samples.standalone.resultmatchers .StatusAssertionTests}.
* *
* @author Rossen Stoyanchev * @author Rossen Stoyanchev
* @author Sam Brannen
*/ */
public class StatusAssertionTests { @TestInstance(PER_CLASS)
class StatusAssertionTests {
private final WebTestClient testClient = private final WebTestClient testClient =
MockMvcWebTestClient.bindToController(new StatusControlle r()).build(); MockMvcWebTestClient.bindToController(new StatusControlle r()).build();
@Test @Test
public void testStatusInt() { void statusInt() {
testClient.get().uri("/created").exchange().expectStatus().isEqua testClient.get().uri("/teaPot").exchange().expectStatus().isEqual
lTo(201); To(I_AM_A_TEAPOT.value());
testClient.get().uri("/createdWithComposedAnnotation").exchange() testClient.get().uri("/created").exchange().expectStatus().isEqua
.expectStatus().isEqualTo(201); lTo(CREATED.value());
testClient.get().uri("/badRequest").exchange().expectStatus().isE testClient.get().uri("/createdWithComposedAnnotation").exchange()
qualTo(400); .expectStatus().isEqualTo(CREATED.value());
testClient.get().uri("/badRequest").exchange().expectStatus().isE
qualTo(BAD_REQUEST.value());
testClient.get().uri("/throwsException").exchange().expectStatus(
).isEqualTo(I_AM_A_TEAPOT.value());
} }
@Test @Test
public void testHttpStatus() { void httpStatus() {
testClient.get().uri("/created").exchange().expectStatus().isCrea ted(); testClient.get().uri("/created").exchange().expectStatus().isCrea ted();
testClient.get().uri("/createdWithComposedAnnotation").exchange() .expectStatus().isCreated(); testClient.get().uri("/createdWithComposedAnnotation").exchange() .expectStatus().isCreated();
testClient.get().uri("/badRequest").exchange().expectStatus().isB adRequest(); testClient.get().uri("/badRequest").exchange().expectStatus().isB adRequest();
} }
@Test @Test
public void testMatcher() { void matcher() {
testClient.get().uri("/badRequest").exchange().expectStatus().val testClient.get().uri("/badRequest").exchange().expectStatus().val
ue(equalTo(400)); ue(equalTo(BAD_REQUEST.value()));
} }
@RequestMapping @RequestMapping
@ResponseStatus @ResponseStatus
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@interface Get { @interface Get {
@AliasFor(annotation = RequestMapping.class, attribute = "path") @AliasFor(annotation = RequestMapping.class, attribute = "path")
String[] path() default {}; String[] path() default {};
@AliasFor(annotation = ResponseStatus.class, attribute = "code") @AliasFor(annotation = ResponseStatus.class, attribute = "code")
HttpStatus status() default INTERNAL_SERVER_ERROR; HttpStatus status() default INTERNAL_SERVER_ERROR;
} }
@Controller @RestController
@ResponseStatus(I_AM_A_TEAPOT)
private static class StatusController { private static class StatusController {
@RequestMapping("/teaPot")
void teaPot() {
}
@RequestMapping("/created") @RequestMapping("/created")
@ResponseStatus(CREATED) @ResponseStatus(CREATED)
public @ResponseBody void created(){ void created(){
} }
@Get(path = "/createdWithComposedAnnotation", status = CREATED) @Get(path = "/createdWithComposedAnnotation", status = CREATED)
public @ResponseBody void createdWithComposedAnnotation() { void createdWithComposedAnnotation() {
} }
@RequestMapping("/badRequest") @RequestMapping("/badRequest")
@ResponseStatus(code = BAD_REQUEST, reason = "Expired token") @ResponseStatus(code = BAD_REQUEST, reason = "Expired token")
public @ResponseBody void badRequest(){ void badRequest(){
} }
@RequestMapping("/notImplemented") @RequestMapping("/notImplemented")
@ResponseStatus(NOT_IMPLEMENTED) @ResponseStatus(NOT_IMPLEMENTED)
public @ResponseBody void notImplemented(){ void notImplemented(){
}
@RequestMapping("/throwsException")
@ResponseStatus(NOT_IMPLEMENTED)
void throwsException() {
throw new IllegalStateException();
}
@ExceptionHandler
void exceptionHandler(IllegalStateException ex) {
} }
} }
} }
 End of changes. 19 change blocks. 
20 lines changed or deleted 44 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)