32
32
import org .springframework .http .codec .multipart .FilePart ;
33
33
import org .springframework .http .codec .multipart .FormFieldPart ;
34
34
import org .springframework .http .codec .multipart .Part ;
35
+ import org .springframework .http .converter .FormHttpMessageConverter ;
35
36
import org .springframework .util .LinkedMultiValueMap ;
36
37
import org .springframework .util .MultiValueMap ;
37
38
import org .springframework .web .client .RestTemplate ;
@@ -55,14 +56,38 @@ protected HttpHandler createHttpHandler() {
55
56
}
56
57
57
58
@ ParameterizedHttpServerTest
58
- void getFormParts (HttpServer httpServer ) throws Exception {
59
+ void getFormPartsFormdata (HttpServer httpServer ) throws Exception {
60
+ performTest (httpServer , MediaType .MULTIPART_FORM_DATA );
61
+ }
62
+
63
+ @ ParameterizedHttpServerTest
64
+ void getFormPartsMixed (HttpServer httpServer ) throws Exception {
65
+ performTest (httpServer , MediaType .MULTIPART_MIXED );
66
+ }
67
+
68
+ @ ParameterizedHttpServerTest
69
+ void getFormPartsRelated (HttpServer httpServer ) throws Exception {
70
+ RestTemplate restTemplate = new RestTemplate ();
71
+ restTemplate .getMessageConverters ().stream ()
72
+ .filter (FormHttpMessageConverter .class ::isInstance )
73
+ .map (FormHttpMessageConverter .class ::cast )
74
+ .findFirst ()
75
+ .orElseThrow ()
76
+ .addSupportedMediaTypes (MediaType .MULTIPART_RELATED );
77
+ performTest (httpServer , MediaType .MULTIPART_RELATED , restTemplate );
78
+ }
79
+
80
+ private void performTest (HttpServer httpServer , MediaType mediaType ) throws Exception {
81
+ performTest (httpServer , mediaType , new RestTemplate ());
82
+ }
83
+
84
+ private void performTest (HttpServer httpServer , MediaType mediaType , RestTemplate restTemplate ) throws Exception {
59
85
startServer (httpServer );
60
86
61
87
@ SuppressWarnings ("resource" )
62
- RestTemplate restTemplate = new RestTemplate ();
63
88
RequestEntity <MultiValueMap <String , Object >> request = RequestEntity
64
89
.post (URI .create ("http://localhost:" + port + "/form-parts" ))
65
- .contentType (MediaType . MULTIPART_FORM_DATA )
90
+ .contentType (mediaType )
66
91
.body (generateBody ());
67
92
ResponseEntity <Void > response = restTemplate .exchange (request , Void .class );
68
93
assertThat (response .getStatusCode ()).isEqualTo (HttpStatus .OK );
0 commit comments