Multipart file tests reliably pass on Windows as well
Issue: SPR-14546
This commit is contained in:
parent
817e80c56b
commit
b709c77329
|
|
@ -39,23 +39,17 @@ import org.springframework.mock.http.server.reactive.test.MockServerHttpRequest;
|
|||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
|
||||
import static java.util.Collections.emptyMap;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.springframework.core.ResolvableType.forClassWithGenerics;
|
||||
import static org.springframework.http.HttpHeaders.CONTENT_LENGTH;
|
||||
import static org.springframework.http.HttpHeaders.CONTENT_TYPE;
|
||||
import static org.springframework.http.MediaType.MULTIPART_FORM_DATA;
|
||||
|
||||
import static java.util.Collections.*;
|
||||
import static org.junit.Assert.*;
|
||||
import static org.springframework.http.HttpHeaders.*;
|
||||
import static org.springframework.http.MediaType.*;
|
||||
|
||||
/**
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
public class SynchronossMultipartHttpMessageReaderTests {
|
||||
|
||||
private final HttpMessageReader<MultiValueMap<String, Part>> reader =
|
||||
new SynchronossMultipartHttpMessageReader();
|
||||
private final HttpMessageReader<MultiValueMap<String, Part>> reader = new SynchronossMultipartHttpMessageReader();
|
||||
|
||||
|
||||
@Test
|
||||
|
|
@ -84,7 +78,7 @@ public class SynchronossMultipartHttpMessageReaderTests {
|
|||
@Test
|
||||
public void resolveParts() throws IOException {
|
||||
ServerHttpRequest request = generateMultipartRequest();
|
||||
ResolvableType elementType = forClassWithGenerics(MultiValueMap.class, String.class, Part.class);
|
||||
ResolvableType elementType = ResolvableType.forClassWithGenerics(MultiValueMap.class, String.class, Part.class);
|
||||
MultiValueMap<String, Part> parts = this.reader.readMono(elementType, request, emptyMap()).block();
|
||||
assertEquals(2, parts.size());
|
||||
|
||||
|
|
@ -98,7 +92,7 @@ public class SynchronossMultipartHttpMessageReaderTests {
|
|||
assertEquals(12, buffer.readableByteCount());
|
||||
byte[] byteContent = new byte[12];
|
||||
buffer.read(byteContent);
|
||||
assertEquals("Lorem\nIpsum\n", new String(byteContent));
|
||||
assertEquals("Lorem Ipsum.", new String(byteContent));
|
||||
|
||||
assertTrue(parts.containsKey("barPart"));
|
||||
part = parts.getFirst("barPart");
|
||||
|
|
@ -111,10 +105,11 @@ public class SynchronossMultipartHttpMessageReaderTests {
|
|||
@Test
|
||||
public void bodyError() {
|
||||
ServerHttpRequest request = generateErrorMultipartRequest();
|
||||
ResolvableType elementType = forClassWithGenerics(MultiValueMap.class, String.class, Part.class);
|
||||
ResolvableType elementType = ResolvableType.forClassWithGenerics(MultiValueMap.class, String.class, Part.class);
|
||||
StepVerifier.create(this.reader.readMono(elementType, request, emptyMap())).verifyError();
|
||||
}
|
||||
|
||||
|
||||
private ServerHttpRequest generateMultipartRequest() throws IOException {
|
||||
HttpHeaders fooHeaders = new HttpHeaders();
|
||||
fooHeaders.setContentType(MediaType.TEXT_PLAIN);
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ package org.springframework.http.server.reactive;
|
|||
import java.net.URI;
|
||||
import java.util.Optional;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
|
|
@ -31,20 +30,24 @@ import org.springframework.http.HttpStatus;
|
|||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.RequestEntity;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.http.codec.multipart.Part;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.http.codec.multipart.Part;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
import org.springframework.web.server.WebHandler;
|
||||
import org.springframework.web.server.adapter.HttpWebHandlerAdapter;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* @author Sebastien Deleuze
|
||||
*/
|
||||
public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTests {
|
||||
|
||||
@Override
|
||||
protected HttpHandler createHttpHandler() {
|
||||
HttpWebHandlerAdapter handler = new HttpWebHandlerAdapter(new CheckRequestHandler());
|
||||
return handler;
|
||||
return new HttpWebHandlerAdapter(new CheckRequestHandler());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -70,11 +73,11 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
|
|||
return parts;
|
||||
}
|
||||
|
||||
|
||||
public static class CheckRequestHandler implements WebHandler {
|
||||
|
||||
@Override
|
||||
public Mono<Void> handle(ServerWebExchange exchange) {
|
||||
|
||||
if (exchange.getRequest().getURI().getPath().equals("/form-parts")) {
|
||||
return assertGetFormParts(exchange);
|
||||
}
|
||||
|
|
@ -106,7 +109,7 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
|
|||
assertEquals(12, buffer.readableByteCount());
|
||||
byte[] byteContent = new byte[12];
|
||||
buffer.read(byteContent);
|
||||
assertEquals("Lorem\nIpsum\n", new String(byteContent));
|
||||
assertEquals("Lorem Ipsum.", new String(byteContent));
|
||||
}
|
||||
|
||||
private void assertBarPart(Part part) {
|
||||
|
|
@ -117,4 +120,4 @@ public class MultipartIntegrationTests extends AbstractHttpHandlerIntegrationTes
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
Lorem
|
||||
Ipsum
|
||||
Lorem Ipsum.
|
||||
Loading…
Reference in New Issue