Browse Source

Polish ModelAttributeMethodArgumentResolverTests

pull/31496/head
Sébastien Deleuze 1 year ago
parent
commit
8af9648c43
  1. 52
      spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ModelAttributeMethodArgumentResolverTests.java

52
spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ModelAttributeMethodArgumentResolverTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2021 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -16,7 +16,6 @@ @@ -16,7 +16,6 @@
package org.springframework.web.reactive.result.method.annotation;
import java.net.URISyntaxException;
import java.time.Duration;
import java.util.Map;
import java.util.function.Function;
@ -112,7 +111,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -112,7 +111,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void createAndBind() throws Exception {
void createAndBind() {
testBindPojo("pojo", this.testMethod.annotPresent(ModelAttribute.class).arg(Pojo.class), value -> {
assertThat(value.getClass()).isEqualTo(Pojo.class);
return (Pojo) value;
@ -120,7 +119,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -120,7 +119,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void createAndBindToMono() throws Exception {
void createAndBindToMono() {
MethodParameter parameter = this.testMethod
.annotNotPresent(ModelAttribute.class).arg(Mono.class, Pojo.class);
@ -133,7 +132,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -133,7 +132,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void createAndBindToSingle() throws Exception {
void createAndBindToSingle() {
MethodParameter parameter = this.testMethod
.annotPresent(ModelAttribute.class).arg(Single.class, Pojo.class);
@ -146,7 +145,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -146,7 +145,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void createButDoNotBind() throws Exception {
void createButDoNotBind() {
MethodParameter parameter =
this.testMethod.annotPresent(ModelAttribute.class).arg(NonBindingPojo.class);
@ -157,7 +156,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -157,7 +156,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void createButDoNotBindToMono() throws Exception {
void createButDoNotBindToMono() {
MethodParameter parameter =
this.testMethod.annotPresent(ModelAttribute.class).arg(Mono.class, NonBindingPojo.class);
@ -170,7 +169,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -170,7 +169,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void createButDoNotBindToSingle() throws Exception {
void createButDoNotBindToSingle() {
MethodParameter parameter =
this.testMethod.annotPresent(ModelAttribute.class).arg(Single.class, NonBindingPojo.class);
@ -183,7 +182,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -183,7 +182,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
private void createButDoNotBindToPojo(String modelKey, MethodParameter methodParameter,
Function<Object, NonBindingPojo> valueExtractor) throws Exception {
Function<Object, NonBindingPojo> valueExtractor) {
Object value = createResolver()
.resolveArgument(methodParameter, this.bindContext, postForm("name=Enigma"))
@ -202,7 +201,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -202,7 +201,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void bindExisting() throws Exception {
void bindExisting() {
Pojo pojo = new Pojo();
pojo.setName("Jim");
this.bindContext.getModel().addAttribute(pojo);
@ -217,7 +216,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -217,7 +216,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void bindExistingMono() throws Exception {
void bindExistingMono() {
Pojo pojo = new Pojo();
pojo.setName("Jim");
this.bindContext.getModel().addAttribute("pojoMono", Mono.just(pojo));
@ -232,7 +231,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -232,7 +231,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void bindExistingSingle() throws Exception {
void bindExistingSingle() {
Pojo pojo = new Pojo();
pojo.setName("Jim");
this.bindContext.getModel().addAttribute("pojoSingle", Single.just(pojo));
@ -247,7 +246,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -247,7 +246,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void bindExistingMonoToMono() throws Exception {
void bindExistingMonoToMono() {
Pojo pojo = new Pojo();
pojo.setName("Jim");
String modelKey = "pojoMono";
@ -264,8 +263,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -264,8 +263,7 @@ class ModelAttributeMethodArgumentResolverTests {
});
}
private void testBindPojo(String modelKey, MethodParameter param, Function<Object, Pojo> valueExtractor)
throws Exception {
private void testBindPojo(String modelKey, MethodParameter param, Function<Object, Pojo> valueExtractor) {
Object value = createResolver()
.resolveArgument(param, this.bindContext, postForm("name=Robert&age=25"))
@ -284,13 +282,13 @@ class ModelAttributeMethodArgumentResolverTests { @@ -284,13 +282,13 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void validationErrorForPojo() throws Exception {
void validationErrorForPojo() {
MethodParameter parameter = this.testMethod.annotNotPresent(ModelAttribute.class).arg(Pojo.class);
testValidationError(parameter, Function.identity());
}
@Test
void validationErrorForMono() throws Exception {
void validationErrorForMono() {
MethodParameter parameter = this.testMethod
.annotNotPresent(ModelAttribute.class).arg(Mono.class, Pojo.class);
@ -303,7 +301,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -303,7 +301,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void validationErrorForSingle() throws Exception {
void validationErrorForSingle() {
MethodParameter parameter = this.testMethod
.annotPresent(ModelAttribute.class).arg(Single.class, Pojo.class);
@ -316,13 +314,13 @@ class ModelAttributeMethodArgumentResolverTests { @@ -316,13 +314,13 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void validationErrorWithoutBindingForPojo() throws Exception {
void validationErrorWithoutBindingForPojo() {
MethodParameter parameter = this.testMethod.annotPresent(ModelAttribute.class).arg(ValidatedPojo.class);
testValidationErrorWithoutBinding(parameter, Function.identity());
}
@Test
void validationErrorWithoutBindingForMono() throws Exception {
void validationErrorWithoutBindingForMono() {
MethodParameter parameter = this.testMethod.annotPresent(ModelAttribute.class).arg(Mono.class, ValidatedPojo.class);
testValidationErrorWithoutBinding(parameter, resolvedArgumentMono -> {
@ -343,20 +341,16 @@ class ModelAttributeMethodArgumentResolverTests { @@ -343,20 +341,16 @@ class ModelAttributeMethodArgumentResolverTests {
});
}
private void testValidationError(MethodParameter parameter, Function<Mono<?>, Mono<?>> valueMonoExtractor)
throws URISyntaxException {
private void testValidationError(MethodParameter parameter, Function<Mono<?>, Mono<?>> valueMonoExtractor) {
testValidationError(parameter, valueMonoExtractor, "age=invalid", "age", "invalid");
}
private void testValidationErrorWithoutBinding(MethodParameter parameter, Function<Mono<?>, Mono<?>> valueMonoExtractor)
throws URISyntaxException {
private void testValidationErrorWithoutBinding(MethodParameter parameter, Function<Mono<?>, Mono<?>> valueMonoExtractor) {
testValidationError(parameter, valueMonoExtractor, "name=Enigma", "name", null);
}
private void testValidationError(MethodParameter param, Function<Mono<?>, Mono<?>> valueMonoExtractor,
String formData, String field, String rejectedValue) throws URISyntaxException {
String formData, String field, String rejectedValue) {
Mono<?> mono = createResolver().resolveArgument(param, this.bindContext, postForm(formData));
mono = valueMonoExtractor.apply(mono);
@ -373,7 +367,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -373,7 +367,7 @@ class ModelAttributeMethodArgumentResolverTests {
}
@Test
void bindDataClass() throws Exception {
void bindDataClass() {
MethodParameter parameter = this.testMethod.annotNotPresent(ModelAttribute.class).arg(DataClass.class);
Object value = createResolver()
@ -401,7 +395,7 @@ class ModelAttributeMethodArgumentResolverTests { @@ -401,7 +395,7 @@ class ModelAttributeMethodArgumentResolverTests {
return new ModelAttributeMethodArgumentResolver(ReactiveAdapterRegistry.getSharedInstance(), false);
}
private ServerWebExchange postForm(String formData) throws URISyntaxException {
private ServerWebExchange postForm(String formData) {
return MockServerWebExchange.from(MockServerHttpRequest.post("/")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.body(formData));

Loading…
Cancel
Save