|
|
|
@ -60,6 +60,7 @@ import static org.springframework.web.method.MvcAnnotationPredicates.requestPart |
|
|
|
/** |
|
|
|
/** |
|
|
|
* Unit tests for {@link RequestPartMethodArgumentResolver}. |
|
|
|
* Unit tests for {@link RequestPartMethodArgumentResolver}. |
|
|
|
* @author Rossen Stoyanchev |
|
|
|
* @author Rossen Stoyanchev |
|
|
|
|
|
|
|
* @author Ilya Lukyanovich |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class RequestPartMethodArgumentResolverTests { |
|
|
|
public class RequestPartMethodArgumentResolverTests { |
|
|
|
|
|
|
|
|
|
|
|
@ -131,6 +132,15 @@ public class RequestPartMethodArgumentResolverTests { |
|
|
|
assertThat(actual.get(1).getName()).isEqualTo("James"); |
|
|
|
assertThat(actual.get(1).getName()).isEqualTo("James"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test // gh-23060
|
|
|
|
|
|
|
|
public void listPersonNotRequired() { |
|
|
|
|
|
|
|
MethodParameter param = this.testMethod.annot(requestPart().notRequired()).arg(List.class, Person.class); |
|
|
|
|
|
|
|
MultipartBodyBuilder bodyBuilder = new MultipartBodyBuilder(); |
|
|
|
|
|
|
|
List<Person> actual = resolveArgument(param, bodyBuilder); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(actual).isEmpty(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void monoPerson() { |
|
|
|
public void monoPerson() { |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Mono.class, Person.class); |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Mono.class, Person.class); |
|
|
|
@ -141,6 +151,15 @@ public class RequestPartMethodArgumentResolverTests { |
|
|
|
assertThat(actual.block().getName()).isEqualTo("Jones"); |
|
|
|
assertThat(actual.block().getName()).isEqualTo("Jones"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test // gh-23060
|
|
|
|
|
|
|
|
public void monoPersonNotRequired() { |
|
|
|
|
|
|
|
MethodParameter param = this.testMethod.annot(requestPart().notRequired()).arg(Mono.class, Person.class); |
|
|
|
|
|
|
|
MultipartBodyBuilder bodyBuilder = new MultipartBodyBuilder(); |
|
|
|
|
|
|
|
Mono<Person> actual = resolveArgument(param, bodyBuilder); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(actual.block()).isNull(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void fluxPerson() { |
|
|
|
public void fluxPerson() { |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Flux.class, Person.class); |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Flux.class, Person.class); |
|
|
|
@ -154,6 +173,15 @@ public class RequestPartMethodArgumentResolverTests { |
|
|
|
assertThat(persons.get(1).getName()).isEqualTo("James"); |
|
|
|
assertThat(persons.get(1).getName()).isEqualTo("James"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test // gh-23060
|
|
|
|
|
|
|
|
public void fluxPersonNotRequired() { |
|
|
|
|
|
|
|
MethodParameter param = this.testMethod.annot(requestPart().notRequired()).arg(Flux.class, Person.class); |
|
|
|
|
|
|
|
MultipartBodyBuilder bodyBuilder = new MultipartBodyBuilder(); |
|
|
|
|
|
|
|
Flux<Person> actual = resolveArgument(param, bodyBuilder); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(actual.collectList().block()).isEmpty(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void part() { |
|
|
|
public void part() { |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Part.class); |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Part.class); |
|
|
|
@ -177,6 +205,15 @@ public class RequestPartMethodArgumentResolverTests { |
|
|
|
assertThat(partToUtf8String(actual.get(1))).isEqualTo("{\"name\":\"James\"}"); |
|
|
|
assertThat(partToUtf8String(actual.get(1))).isEqualTo("{\"name\":\"James\"}"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test // gh-23060
|
|
|
|
|
|
|
|
public void listPartNotRequired() { |
|
|
|
|
|
|
|
MethodParameter param = this.testMethod.annot(requestPart().notRequired()).arg(List.class, Part.class); |
|
|
|
|
|
|
|
MultipartBodyBuilder bodyBuilder = new MultipartBodyBuilder(); |
|
|
|
|
|
|
|
List<Part> actual = resolveArgument(param, bodyBuilder); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(actual).isEmpty(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void monoPart() { |
|
|
|
public void monoPart() { |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Mono.class, Part.class); |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Mono.class, Part.class); |
|
|
|
@ -188,6 +225,15 @@ public class RequestPartMethodArgumentResolverTests { |
|
|
|
assertThat(partToUtf8String(part)).isEqualTo("{\"name\":\"Jones\"}"); |
|
|
|
assertThat(partToUtf8String(part)).isEqualTo("{\"name\":\"Jones\"}"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test // gh-23060
|
|
|
|
|
|
|
|
public void monoPartNotRequired() { |
|
|
|
|
|
|
|
MethodParameter param = this.testMethod.annot(requestPart().notRequired()).arg(Mono.class, Part.class); |
|
|
|
|
|
|
|
MultipartBodyBuilder bodyBuilder = new MultipartBodyBuilder(); |
|
|
|
|
|
|
|
Mono<Part> actual = resolveArgument(param, bodyBuilder); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(actual.block()).isNull(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void fluxPart() { |
|
|
|
public void fluxPart() { |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Flux.class, Part.class); |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Flux.class, Part.class); |
|
|
|
@ -201,6 +247,15 @@ public class RequestPartMethodArgumentResolverTests { |
|
|
|
assertThat(partToUtf8String(parts.get(1))).isEqualTo("{\"name\":\"James\"}"); |
|
|
|
assertThat(partToUtf8String(parts.get(1))).isEqualTo("{\"name\":\"James\"}"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test // gh-23060
|
|
|
|
|
|
|
|
public void fluxPartNotRequired() { |
|
|
|
|
|
|
|
MethodParameter param = this.testMethod.annot(requestPart().notRequired()).arg(Flux.class, Part.class); |
|
|
|
|
|
|
|
MultipartBodyBuilder bodyBuilder = new MultipartBodyBuilder(); |
|
|
|
|
|
|
|
Flux<Part> actual = resolveArgument(param, bodyBuilder); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertThat(actual.collectList().block()).isEmpty(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void personRequired() { |
|
|
|
public void personRequired() { |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Person.class); |
|
|
|
MethodParameter param = this.testMethod.annot(requestPart()).arg(Person.class); |
|
|
|
@ -278,7 +333,13 @@ public class RequestPartMethodArgumentResolverTests { |
|
|
|
@RequestPart("name") Flux<Part> partFlux, |
|
|
|
@RequestPart("name") Flux<Part> partFlux, |
|
|
|
@RequestPart("name") List<Part> partList, |
|
|
|
@RequestPart("name") List<Part> partList, |
|
|
|
@RequestPart(name = "anotherPart", required = false) Person anotherPerson, |
|
|
|
@RequestPart(name = "anotherPart", required = false) Person anotherPerson, |
|
|
|
|
|
|
|
@RequestPart(name = "name", required = false) Mono<Person> anotherPersonMono, |
|
|
|
|
|
|
|
@RequestPart(name = "name", required = false) Flux<Person> anotherPersonFlux, |
|
|
|
|
|
|
|
@RequestPart(name = "name", required = false) List<Person> anotherPersonList, |
|
|
|
@RequestPart(name = "anotherPart", required = false) Part anotherPart, |
|
|
|
@RequestPart(name = "anotherPart", required = false) Part anotherPart, |
|
|
|
|
|
|
|
@RequestPart(name = "name", required = false) Mono<Part> anotherPartMono, |
|
|
|
|
|
|
|
@RequestPart(name = "name", required = false) Flux<Part> anotherPartFlux, |
|
|
|
|
|
|
|
@RequestPart(name = "name", required = false) List<Part> anotherPartList, |
|
|
|
Person notAnnotated) {} |
|
|
|
Person notAnnotated) {} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|