Skip to content

Commit b709c77

Browse files
committed
Multipart file tests reliably pass on Windows as well
Issue: SPR-14546
1 parent 817e80c commit b709c77

File tree

3 files changed

+20
-23
lines changed

3 files changed

+20
-23
lines changed

spring-web/src/test/java/org/springframework/http/codec/multipart/SynchronossMultipartHttpMessageReaderTests.java

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,17 @@
3939
import org.springframework.util.LinkedMultiValueMap;
4040
import org.springframework.util.MultiValueMap;
4141

42-
import static java.util.Collections.emptyMap;
43-
import static org.junit.Assert.assertEquals;
44-
import static org.junit.Assert.assertFalse;
45-
import static org.junit.Assert.assertTrue;
46-
import static org.springframework.core.ResolvableType.forClassWithGenerics;
47-
import static org.springframework.http.HttpHeaders.CONTENT_LENGTH;
48-
import static org.springframework.http.HttpHeaders.CONTENT_TYPE;
49-
import static org.springframework.http.MediaType.MULTIPART_FORM_DATA;
50-
42+
import static java.util.Collections.*;
43+
import static org.junit.Assert.*;
44+
import static org.springframework.http.HttpHeaders.*;
45+
import static org.springframework.http.MediaType.*;
5146

5247
/**
5348
* @author Sebastien Deleuze
5449
*/
5550
public class SynchronossMultipartHttpMessageReaderTests {
5651

57-
private final HttpMessageReader<MultiValueMap<String, Part>> reader =
58-
new SynchronossMultipartHttpMessageReader();
52+
private final HttpMessageReader<MultiValueMap<String, Part>> reader = new SynchronossMultipartHttpMessageReader();
5953

6054

6155
@Test
@@ -84,7 +78,7 @@ public void canRead() {
8478
@Test
8579
public void resolveParts() throws IOException {
8680
ServerHttpRequest request = generateMultipartRequest();
87-
ResolvableType elementType = forClassWithGenerics(MultiValueMap.class, String.class, Part.class);
81+
ResolvableType elementType = ResolvableType.forClassWithGenerics(MultiValueMap.class, String.class, Part.class);
8882
MultiValueMap<String, Part> parts = this.reader.readMono(elementType, request, emptyMap()).block();
8983
assertEquals(2, parts.size());
9084

@@ -98,7 +92,7 @@ public void resolveParts() throws IOException {
9892
assertEquals(12, buffer.readableByteCount());
9993
byte[] byteContent = new byte[12];
10094
buffer.read(byteContent);
101-
assertEquals("Lorem\nIpsum\n", new String(byteContent));
95+
assertEquals("Lorem Ipsum.", new String(byteContent));
10296

10397
assertTrue(parts.containsKey("barPart"));
10498
part = parts.getFirst("barPart");
@@ -111,10 +105,11 @@ public void resolveParts() throws IOException {
111105
@Test
112106
public void bodyError() {
113107
ServerHttpRequest request = generateErrorMultipartRequest();
114-
ResolvableType elementType = forClassWithGenerics(MultiValueMap.class, String.class, Part.class);
108+
ResolvableType elementType = ResolvableType.forClassWithGenerics(MultiValueMap.class, String.class, Part.class);
115109
StepVerifier.create(this.reader.readMono(elementType, request, emptyMap())).verifyError();
116110
}
117111

112+
118113
private ServerHttpRequest generateMultipartRequest() throws IOException {
119114
HttpHeaders fooHeaders = new HttpHeaders();
120115
fooHeaders.setContentType(MediaType.TEXT_PLAIN);

spring-web/src/test/java/org/springframework/http/server/reactive/MultipartIntegrationTests.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.net.URI;
2020
import java.util.Optional;
2121

22-
import static org.junit.Assert.*;
2322
import org.junit.Test;
2423
import reactor.core.publisher.Mono;
2524

@@ -31,20 +30,24 @@
3130
import org.springframework.http.MediaType;
3231
import org.springframework.http.RequestEntity;
3332
import org.springframework.http.ResponseEntity;
33+
import org.springframework.http.codec.multipart.Part;
3434
import org.springframework.util.LinkedMultiValueMap;
3535
import org.springframework.util.MultiValueMap;
3636
import org.springframework.web.client.RestTemplate;
37-
import org.springframework.http.codec.multipart.Part;
3837
import org.springframework.web.server.ServerWebExchange;
3938
import org.springframework.web.server.WebHandler;
4039
import org.springframework.web.server.adapter.HttpWebHandlerAdapter;
4140

41+
import static org.junit.Assert.*;
42+
43+
/**
44+
* @author Sebastien Deleuze
45+
*/
4246
public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTests {
4347

4448
@Override
4549
protected HttpHandler createHttpHandler() {
46-
HttpWebHandlerAdapter handler = new HttpWebHandlerAdapter(new CheckRequestHandler());
47-
return handler;
50+
return new HttpWebHandlerAdapter(new CheckRequestHandler());
4851
}
4952

5053
@Test
@@ -70,11 +73,11 @@ private MultiValueMap<String, Object> generateBody() {
7073
return parts;
7174
}
7275

76+
7377
public static class CheckRequestHandler implements WebHandler {
7478

7579
@Override
7680
public Mono<Void> handle(ServerWebExchange exchange) {
77-
7881
if (exchange.getRequest().getURI().getPath().equals("/form-parts")) {
7982
return assertGetFormParts(exchange);
8083
}
@@ -106,7 +109,7 @@ private void assertFooPart(Part part) {
106109
assertEquals(12, buffer.readableByteCount());
107110
byte[] byteContent = new byte[12];
108111
buffer.read(byteContent);
109-
assertEquals("Lorem\nIpsum\n", new String(byteContent));
112+
assertEquals("Lorem Ipsum.", new String(byteContent));
110113
}
111114

112115
private void assertBarPart(Part part) {
@@ -117,4 +120,4 @@ private void assertBarPart(Part part) {
117120
}
118121
}
119122

120-
}
123+
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
Lorem
2-
Ipsum
1+
Lorem Ipsum.

0 commit comments

Comments
 (0)