Merge branch '5.3.x'
# Conflicts: # spring-test/src/test/java/org/springframework/mock/http/server/reactive/MockServerHttpRequestTests.java # spring-web/src/test/java/org/springframework/http/server/reactive/HeadersAdaptersTests.java # spring-web/src/test/java/org/springframework/web/client/RestTemplateIntegrationTests.java # spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java # spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/SseIntegrationTests.java # spring-webmvc/src/test/java/org/springframework/web/servlet/handler/MappedInterceptorTests.java # spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/HandlerMethodAnnotationDetectionTests.java # spring-websocket/src/test/java/org/springframework/web/socket/AbstractWebSocketIntegrationTests.java
This commit is contained in:
commit
9764f0e59b
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -35,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
|
|||
class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void byteCountsAndPositions(String displayName, DataBufferFactory bufferFactory) {
|
||||
void byteCountsAndPositions(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(2);
|
||||
|
|
@ -78,7 +78,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readPositionSmallerThanZero(String displayName, DataBufferFactory bufferFactory) {
|
||||
void readPositionSmallerThanZero(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -92,7 +92,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readPositionGreaterThanWritePosition(String displayName, DataBufferFactory bufferFactory) {
|
||||
void readPositionGreaterThanWritePosition(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -106,7 +106,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writePositionSmallerThanReadPosition(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writePositionSmallerThanReadPosition(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(2);
|
||||
|
|
@ -122,7 +122,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writePositionGreaterThanCapacity(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writePositionGreaterThanCapacity(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -136,7 +136,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeAndRead(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeAndRead(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(5);
|
||||
|
|
@ -157,7 +157,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeNullString(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeNullString(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -171,7 +171,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeNullCharset(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeNullCharset(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -185,7 +185,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeEmptyString(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeEmptyString(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -197,7 +197,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeUtf8String(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeUtf8String(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(6);
|
||||
|
|
@ -211,7 +211,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeUtf8StringOutGrowsCapacity(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeUtf8StringOutGrowsCapacity(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(5);
|
||||
|
|
@ -225,7 +225,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeIsoString(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeIsoString(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(3);
|
||||
|
|
@ -239,7 +239,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeMultipleUtf8String(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeMultipleUtf8String(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -261,7 +261,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void toStringNullCharset(String displayName, DataBufferFactory bufferFactory) {
|
||||
void toStringNullCharset(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -275,7 +275,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void toStringUtf8(String displayName, DataBufferFactory bufferFactory) {
|
||||
void toStringUtf8(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
String spring = "Spring";
|
||||
|
|
@ -290,7 +290,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void toStringSection(String displayName, DataBufferFactory bufferFactory) {
|
||||
void toStringSection(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
String spring = "Spring";
|
||||
|
|
@ -305,7 +305,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void inputStream(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void inputStream(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(4);
|
||||
|
|
@ -339,7 +339,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void inputStreamReleaseOnClose(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void inputStreamReleaseOnClose(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(3);
|
||||
|
|
@ -357,7 +357,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void outputStream(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void outputStream(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(4);
|
||||
|
|
@ -377,7 +377,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void expand(String displayName, DataBufferFactory bufferFactory) {
|
||||
void expand(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -391,7 +391,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void increaseCapacity(String displayName, DataBufferFactory bufferFactory) {
|
||||
void increaseCapacity(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -404,7 +404,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void decreaseCapacityLowReadPosition(String displayName, DataBufferFactory bufferFactory) {
|
||||
void decreaseCapacityLowReadPosition(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(2);
|
||||
|
|
@ -416,7 +416,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void decreaseCapacityHighReadPosition(String displayName, DataBufferFactory bufferFactory) {
|
||||
void decreaseCapacityHighReadPosition(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(2);
|
||||
|
|
@ -429,7 +429,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void capacityLessThanZero(String displayName, DataBufferFactory bufferFactory) {
|
||||
void capacityLessThanZero(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -443,7 +443,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeByteBuffer(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeByteBuffer(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer1 = createDataBuffer(1);
|
||||
|
|
@ -472,7 +472,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeDataBuffer(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeDataBuffer(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer1 = createDataBuffer(1);
|
||||
|
|
@ -495,7 +495,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void asByteBuffer(String displayName, DataBufferFactory bufferFactory) {
|
||||
void asByteBuffer(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(4);
|
||||
|
|
@ -516,7 +516,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void asByteBufferIndexLength(String displayName, DataBufferFactory bufferFactory) {
|
||||
void asByteBufferIndexLength(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(3);
|
||||
|
|
@ -536,7 +536,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void byteBufferContainsDataBufferChanges(String displayName, DataBufferFactory bufferFactory) {
|
||||
void byteBufferContainsDataBufferChanges(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer dataBuffer = createDataBuffer(1);
|
||||
|
|
@ -552,7 +552,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void dataBufferContainsByteBufferChanges(String displayName, DataBufferFactory bufferFactory) {
|
||||
void dataBufferContainsByteBufferChanges(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer dataBuffer = createDataBuffer(1);
|
||||
|
|
@ -568,7 +568,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void emptyAsByteBuffer(String displayName, DataBufferFactory bufferFactory) {
|
||||
void emptyAsByteBuffer(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(1);
|
||||
|
|
@ -580,7 +580,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void indexOf(String displayName, DataBufferFactory bufferFactory) {
|
||||
void indexOf(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(3);
|
||||
|
|
@ -602,7 +602,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void lastIndexOf(String displayName, DataBufferFactory bufferFactory) {
|
||||
void lastIndexOf(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(3);
|
||||
|
|
@ -633,7 +633,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void slice(String displayName, DataBufferFactory bufferFactory) {
|
||||
void slice(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(3);
|
||||
|
|
@ -662,7 +662,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void retainedSlice(String displayName, DataBufferFactory bufferFactory) {
|
||||
void retainedSlice(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(3);
|
||||
|
|
@ -691,7 +691,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void spr16351(String displayName, DataBufferFactory bufferFactory) {
|
||||
void spr16351(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = createDataBuffer(6);
|
||||
|
|
@ -711,7 +711,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void join(String displayName, DataBufferFactory bufferFactory) {
|
||||
void join(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer composite = this.bufferFactory.join(Arrays.asList(stringBuffer("a"),
|
||||
|
|
@ -726,7 +726,7 @@ class DataBufferTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void getByte(String displayName, DataBufferFactory bufferFactory) {
|
||||
void getByte(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = stringBuffer("abc");
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -76,7 +76,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readInputStream(String displayName, DataBufferFactory bufferFactory) {
|
||||
void readInputStream(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> flux = DataBufferUtils.readInputStream(
|
||||
|
|
@ -86,7 +86,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readByteChannel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readByteChannel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
URI uri = this.resource.getURI();
|
||||
|
|
@ -98,7 +98,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readByteChannelError(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readByteChannelError(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
ReadableByteChannel channel = mock(ReadableByteChannel.class);
|
||||
|
|
@ -121,7 +121,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readByteChannelCancel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readByteChannelCancel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
URI uri = this.resource.getURI();
|
||||
|
|
@ -136,7 +136,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readAsynchronousFileChannel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readAsynchronousFileChannel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
URI uri = this.resource.getURI();
|
||||
|
|
@ -148,7 +148,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readAsynchronousFileChannelPosition(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readAsynchronousFileChannelPosition(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
URI uri = this.resource.getURI();
|
||||
|
|
@ -163,7 +163,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readAsynchronousFileChannelError(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readAsynchronousFileChannelError(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
AsynchronousFileChannel channel = mock(AsynchronousFileChannel.class);
|
||||
|
|
@ -195,7 +195,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readAsynchronousFileChannelCancel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readAsynchronousFileChannelCancel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
URI uri = this.resource.getURI();
|
||||
|
|
@ -210,7 +210,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest // gh-22107
|
||||
void readAsynchronousFileChannelCancelWithoutDemand(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readAsynchronousFileChannelCancelWithoutDemand(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
URI uri = this.resource.getURI();
|
||||
|
|
@ -224,7 +224,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readPath(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readPath(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> flux = DataBufferUtils.read(this.resource.getFile().toPath(), super.bufferFactory, 3);
|
||||
|
|
@ -233,7 +233,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readResource(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readResource(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> flux = DataBufferUtils.read(this.resource, super.bufferFactory, 3);
|
||||
|
|
@ -242,7 +242,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readResourcePosition(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readResourcePosition(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> flux = DataBufferUtils.read(this.resource, 9, super.bufferFactory, 3);
|
||||
|
|
@ -264,7 +264,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readResourcePositionAndTakeUntil(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readResourcePositionAndTakeUntil(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Resource resource = new ClassPathResource("DataBufferUtilsTests.txt", getClass());
|
||||
|
|
@ -281,7 +281,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readByteArrayResourcePositionAndTakeUntil(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readByteArrayResourcePositionAndTakeUntil(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Resource resource = new ByteArrayResource("foobarbazqux" .getBytes());
|
||||
|
|
@ -298,7 +298,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeOutputStream(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeOutputStream(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -315,7 +315,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeWritableByteChannel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeWritableByteChannel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -332,7 +332,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeWritableByteChannelErrorInFlux(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeWritableByteChannelErrorInFlux(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -355,7 +355,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeWritableByteChannelErrorInWrite(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeWritableByteChannelErrorInWrite(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -383,7 +383,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeWritableByteChannelCancel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeWritableByteChannelCancel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -407,7 +407,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeAsynchronousFileChannel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeAsynchronousFileChannel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -439,7 +439,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeAsynchronousFileChannelErrorInFlux(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeAsynchronousFileChannelErrorInFlux(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -465,7 +465,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
@SuppressWarnings("unchecked")
|
||||
void writeAsynchronousFileChannelErrorInWrite(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeAsynchronousFileChannelErrorInWrite(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -506,7 +506,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeAsynchronousFileChannelCanceled(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writeAsynchronousFileChannelCanceled(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -531,7 +531,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writePath(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void writePath(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -548,7 +548,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readAndWriteByteChannel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readAndWriteByteChannel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Path source = Paths.get(
|
||||
|
|
@ -582,7 +582,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void readAndWriteAsynchronousFileChannel(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void readAndWriteAsynchronousFileChannel(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Path source = Paths.get(
|
||||
|
|
@ -623,7 +623,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void takeUntilByteCount(String displayName, DataBufferFactory bufferFactory) {
|
||||
void takeUntilByteCount(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> result = DataBufferUtils.takeUntilByteCount(
|
||||
|
|
@ -637,7 +637,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void takeUntilByteCountCanceled(String displayName, DataBufferFactory bufferFactory) {
|
||||
void takeUntilByteCountCanceled(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> source = Flux.concat(
|
||||
|
|
@ -654,7 +654,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void takeUntilByteCountError(String displayName, DataBufferFactory bufferFactory) {
|
||||
void takeUntilByteCountError(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> source = Flux.concat(
|
||||
|
|
@ -671,7 +671,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void takeUntilByteCountExact(String displayName, DataBufferFactory bufferFactory) {
|
||||
void takeUntilByteCountExact(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> source = Flux.concat(
|
||||
|
|
@ -690,7 +690,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void skipUntilByteCount(String displayName, DataBufferFactory bufferFactory) {
|
||||
void skipUntilByteCount(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> source = Flux.concat(
|
||||
|
|
@ -708,7 +708,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void skipUntilByteCountCancelled(String displayName, DataBufferFactory bufferFactory) {
|
||||
void skipUntilByteCountCancelled(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> source = Flux.concat(
|
||||
|
|
@ -724,7 +724,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void skipUntilByteCountErrorInFlux(String displayName, DataBufferFactory bufferFactory) {
|
||||
void skipUntilByteCountErrorInFlux(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -738,7 +738,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void skipUntilByteCountShouldSkipAll(String displayName, DataBufferFactory bufferFactory) {
|
||||
void skipUntilByteCountShouldSkipAll(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -753,7 +753,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void releaseConsumer(String displayName, DataBufferFactory bufferFactory) {
|
||||
void releaseConsumer(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -776,7 +776,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void SPR16070(String displayName, DataBufferFactory bufferFactory) throws Exception {
|
||||
void SPR16070(DataBufferFactory bufferFactory) throws Exception {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
ReadableByteChannel channel = mock(ReadableByteChannel.class);
|
||||
|
|
@ -807,7 +807,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void join(String displayName, DataBufferFactory bufferFactory) {
|
||||
void join(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -825,7 +825,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void joinWithLimit(String displayName, DataBufferFactory bufferFactory) {
|
||||
void joinWithLimit(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -855,7 +855,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void joinErrors(String displayName, DataBufferFactory bufferFactory) {
|
||||
void joinErrors(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -869,7 +869,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void joinCanceled(String displayName, DataBufferFactory bufferFactory) {
|
||||
void joinCanceled(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
Flux<DataBuffer> source = Flux.concat(
|
||||
|
|
@ -885,7 +885,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void matcher(String displayName, DataBufferFactory bufferFactory) {
|
||||
void matcher(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foo");
|
||||
|
|
@ -903,7 +903,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void matcher2(String displayName, DataBufferFactory bufferFactory) {
|
||||
void matcher2(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foooobar");
|
||||
|
|
@ -923,7 +923,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void matcher3(String displayName, DataBufferFactory bufferFactory) {
|
||||
void matcher3(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer foo = stringBuffer("foooobar");
|
||||
|
|
@ -943,7 +943,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void propagateContextByteChannel(String displayName, DataBufferFactory bufferFactory) throws IOException {
|
||||
void propagateContextByteChannel(DataBufferFactory bufferFactory) throws IOException {
|
||||
Path path = Paths.get(this.resource.getURI());
|
||||
try (SeekableByteChannel out = Files.newByteChannel(this.tempFile, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING)) {
|
||||
Flux<DataBuffer> result = DataBufferUtils.read(path, bufferFactory, 1024, StandardOpenOption.READ)
|
||||
|
|
@ -967,7 +967,7 @@ class DataBufferUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void propagateContextAsynchronousFileChannel(String displayName, DataBufferFactory bufferFactory) throws IOException {
|
||||
void propagateContextAsynchronousFileChannel(DataBufferFactory bufferFactory) throws IOException {
|
||||
Path path = Paths.get(this.resource.getURI());
|
||||
try (AsynchronousFileChannel out = AsynchronousFileChannel.open(this.tempFile, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING)) {
|
||||
Flux<DataBuffer> result = DataBufferUtils.read(path, bufferFactory, 1024, StandardOpenOption.READ)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -32,7 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
class DataBufferTestUtilsTests extends AbstractDataBufferAllocatingTests {
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void dumpBytes(String displayName, DataBufferFactory bufferFactory) {
|
||||
void dumpBytes(DataBufferFactory bufferFactory) {
|
||||
this.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = this.bufferFactory.allocateBuffer(4);
|
||||
|
|
@ -47,7 +47,7 @@ class DataBufferTestUtilsTests extends AbstractDataBufferAllocatingTests {
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void dumpString(String displayName, DataBufferFactory bufferFactory) {
|
||||
void dumpString(DataBufferFactory bufferFactory) {
|
||||
this.bufferFactory = bufferFactory;
|
||||
|
||||
DataBuffer buffer = this.bufferFactory.allocateBuffer(4);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -49,6 +49,7 @@ import org.springframework.core.io.buffer.NettyDataBufferFactory;
|
|||
|
||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
|
|
@ -161,20 +162,20 @@ public abstract class AbstractDataBufferAllocatingTests {
|
|||
@SuppressWarnings("deprecation") // PooledByteBufAllocator no longer supports tinyCacheSize.
|
||||
public static Stream<Arguments> dataBufferFactories() {
|
||||
return Stream.of(
|
||||
arguments("NettyDataBufferFactory - UnpooledByteBufAllocator - preferDirect = true",
|
||||
new NettyDataBufferFactory(new UnpooledByteBufAllocator(true))),
|
||||
arguments("NettyDataBufferFactory - UnpooledByteBufAllocator - preferDirect = false",
|
||||
new NettyDataBufferFactory(new UnpooledByteBufAllocator(false))),
|
||||
arguments(named("NettyDataBufferFactory - UnpooledByteBufAllocator - preferDirect = true",
|
||||
new NettyDataBufferFactory(new UnpooledByteBufAllocator(true)))),
|
||||
arguments(named("NettyDataBufferFactory - UnpooledByteBufAllocator - preferDirect = false",
|
||||
new NettyDataBufferFactory(new UnpooledByteBufAllocator(false)))),
|
||||
// 1) Disable caching for reliable leak detection, see https://github.com/netty/netty/issues/5275
|
||||
// 2) maxOrder is 4 (vs default 11) but can be increased if necessary
|
||||
arguments("NettyDataBufferFactory - PooledByteBufAllocator - preferDirect = true",
|
||||
new NettyDataBufferFactory(new PooledByteBufAllocator(true, 1, 1, 4096, 4, 0, 0, 0, true))),
|
||||
arguments("NettyDataBufferFactory - PooledByteBufAllocator - preferDirect = false",
|
||||
new NettyDataBufferFactory(new PooledByteBufAllocator(false, 1, 1, 4096, 4, 0, 0, 0, true))),
|
||||
arguments("DefaultDataBufferFactory - preferDirect = true",
|
||||
new DefaultDataBufferFactory(true)),
|
||||
arguments("DefaultDataBufferFactory - preferDirect = false",
|
||||
new DefaultDataBufferFactory(false))
|
||||
arguments(named("NettyDataBufferFactory - PooledByteBufAllocator - preferDirect = true",
|
||||
new NettyDataBufferFactory(new PooledByteBufAllocator(true, 1, 1, 4096, 4, 0, 0, 0, true)))),
|
||||
arguments(named("NettyDataBufferFactory - PooledByteBufAllocator - preferDirect = false",
|
||||
new NettyDataBufferFactory(new PooledByteBufAllocator(false, 1, 1, 4096, 4, 0, 0, 0, true)))),
|
||||
arguments(named("DefaultDataBufferFactory - preferDirect = true",
|
||||
new DefaultDataBufferFactory(true))),
|
||||
arguments(named("DefaultDataBufferFactory - preferDirect = false",
|
||||
new DefaultDataBufferFactory(false)))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@ package org.springframework.mock.http.server.reactive;
|
|||
import java.util.Arrays;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.function.Executable;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
|
|
@ -31,6 +31,8 @@ import org.springframework.http.HttpMethod;
|
|||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link MockServerHttpRequest}.
|
||||
|
|
@ -63,22 +65,23 @@ class MockServerHttpRequestTests {
|
|||
assertThat(request.getURI().toString()).isEqualTo("/foo%20bar?a=b&name%20A=value%20A1&name%20A=value%20A2&name%20B=value%20B1");
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ParameterizedTest(name = "[{index}] {0}")
|
||||
@MethodSource
|
||||
void httpMethodNotNullOrEmpty(Executable executable) {
|
||||
Exception ex = Assertions.assertThrows(IllegalArgumentException.class, executable);
|
||||
assertThat(ex.getMessage()).contains("HTTP method is required.");
|
||||
void httpMethodNotNullOrEmpty(ThrowingCallable callable) {
|
||||
assertThatIllegalArgumentException()
|
||||
.isThrownBy(callable)
|
||||
.withMessageContaining("HTTP method is required.");
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static Stream<Executable> httpMethodNotNullOrEmpty() {
|
||||
static Stream<Named<ThrowingCallable>> httpMethodNotNullOrEmpty() {
|
||||
String uriTemplate = "/foo bar?a=b";
|
||||
return Stream.of(
|
||||
() -> MockServerHttpRequest.method(null, UriComponentsBuilder.fromUriString(uriTemplate).build("")).build(),
|
||||
() -> MockServerHttpRequest.method((HttpMethod) null, uriTemplate).build(),
|
||||
() -> MockServerHttpRequest.method((String) null, uriTemplate).build(),
|
||||
() -> MockServerHttpRequest.method("", uriTemplate).build(),
|
||||
() -> MockServerHttpRequest.method(" ", uriTemplate).build()
|
||||
named("null HttpMethod, URI", () -> MockServerHttpRequest.method(null, UriComponentsBuilder.fromUriString(uriTemplate).build("")).build()),
|
||||
named("null HttpMethod, uriTemplate", () -> MockServerHttpRequest.method((HttpMethod) null, uriTemplate).build()),
|
||||
named("null String, uriTemplate", () -> MockServerHttpRequest.method((String) null, uriTemplate).build()),
|
||||
named("empty String, uriTemplate", () -> MockServerHttpRequest.method("", uriTemplate).build()),
|
||||
named("blank String, uriTemplate", () -> MockServerHttpRequest.method(" ", uriTemplate).build())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import org.springframework.test.context.web.WebTestContextBootstrapper;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.springframework.test.context.BootstrapUtils.resolveTestContextBootstrapper;
|
||||
|
|
@ -104,9 +105,9 @@ class BootstrapUtilsTests {
|
|||
/**
|
||||
* @since 5.3
|
||||
*/
|
||||
@ParameterizedTest(name = "{0}")
|
||||
@ParameterizedTest(name = "[{index}] {0}")
|
||||
@MethodSource
|
||||
void resolveTestContextBootstrapperInEnclosingClassHierarchy(String name, Class<?> testClass, Class<?> expectedBootstrapper) {
|
||||
void resolveTestContextBootstrapperInEnclosingClassHierarchy(Class<?> testClass, Class<?> expectedBootstrapper) {
|
||||
assertBootstrapper(testClass, expectedBootstrapper);
|
||||
}
|
||||
|
||||
|
|
@ -129,7 +130,7 @@ class BootstrapUtilsTests {
|
|||
}
|
||||
|
||||
private static Arguments args(Class<?> testClass, Class<? extends TestContextBootstrapper> expectedBootstrapper) {
|
||||
return arguments(testClass.getSimpleName(), testClass, expectedBootstrapper);
|
||||
return arguments(named(testClass.getSimpleName(), testClass), expectedBootstrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -27,10 +27,10 @@ import org.junit.jupiter.params.provider.MethodSource;
|
|||
import org.springframework.core.annotation.AnnotationUtils;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.ContextLoader;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
|
|
@ -53,13 +53,11 @@ class GenericXmlContextLoaderResourceLocationsTests {
|
|||
|
||||
@ParameterizedTest(name = "[{index}] {0}")
|
||||
@MethodSource("contextConfigurationLocationsData")
|
||||
void assertContextConfigurationLocations(String testClassName, String[] expectedLocations) throws Exception {
|
||||
Class<?> testClass = ClassUtils.forName(getClass().getName() + "$" + testClassName, getClass().getClassLoader());
|
||||
|
||||
final ContextConfiguration contextConfig = testClass.getAnnotation(ContextConfiguration.class);
|
||||
final ContextLoader contextLoader = new GenericXmlContextLoader();
|
||||
final String[] configuredLocations = (String[]) AnnotationUtils.getValue(contextConfig);
|
||||
final String[] processedLocations = contextLoader.processLocations(testClass, configuredLocations);
|
||||
void assertContextConfigurationLocations(Class<?> testClass, String[] expectedLocations) throws Exception {
|
||||
ContextConfiguration contextConfig = testClass.getAnnotation(ContextConfiguration.class);
|
||||
ContextLoader contextLoader = new GenericXmlContextLoader();
|
||||
String[] configuredLocations = (String[]) AnnotationUtils.getValue(contextConfig);
|
||||
String[] processedLocations = contextLoader.processLocations(testClass, configuredLocations);
|
||||
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("----------------------------------------------------------------------");
|
||||
|
|
@ -73,29 +71,32 @@ class GenericXmlContextLoaderResourceLocationsTests {
|
|||
|
||||
static Stream<Arguments> contextConfigurationLocationsData() {
|
||||
return Stream.of(
|
||||
arguments(ClasspathNonExistentDefaultLocationsTestCase.class.getSimpleName(), array()),
|
||||
args(ClasspathNonExistentDefaultLocationsTestCase.class, array()),
|
||||
|
||||
arguments(ClasspathExistentDefaultLocationsTestCase.class.getSimpleName(), array(
|
||||
args(ClasspathExistentDefaultLocationsTestCase.class, array(
|
||||
"classpath:org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests$ClasspathExistentDefaultLocationsTestCase-context.xml")),
|
||||
|
||||
arguments(ImplicitClasspathLocationsTestCase.class.getSimpleName(),
|
||||
args(ImplicitClasspathLocationsTestCase.class,
|
||||
array("classpath:/org/springframework/test/context/support/context1.xml",
|
||||
"classpath:/org/springframework/test/context/support/context2.xml")),
|
||||
|
||||
arguments(ExplicitClasspathLocationsTestCase.class.getSimpleName(), array("classpath:context.xml")),
|
||||
args(ExplicitClasspathLocationsTestCase.class, array("classpath:context.xml")),
|
||||
|
||||
arguments(ExplicitFileLocationsTestCase.class.getSimpleName(),
|
||||
array("file:/testing/directory/context.xml")),
|
||||
args(ExplicitFileLocationsTestCase.class, array("file:/testing/directory/context.xml")),
|
||||
|
||||
arguments(ExplicitUrlLocationsTestCase.class.getSimpleName(), array("https://example.com/context.xml")),
|
||||
args(ExplicitUrlLocationsTestCase.class, array("https://example.com/context.xml")),
|
||||
|
||||
arguments(ExplicitMixedPathTypesLocationsTestCase.class.getSimpleName(),
|
||||
args(ExplicitMixedPathTypesLocationsTestCase.class,
|
||||
array("classpath:/org/springframework/test/context/support/context1.xml", "classpath:context2.xml",
|
||||
"classpath:/context3.xml", "file:/testing/directory/context.xml",
|
||||
"https://example.com/context.xml"))
|
||||
);
|
||||
}
|
||||
|
||||
private static Arguments args(Class<?> testClass, String[] expectedLocations) {
|
||||
return arguments(named(testClass.getSimpleName(), testClass), expectedLocations);
|
||||
}
|
||||
|
||||
private static String[] array(String... elements) {
|
||||
return elements;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -37,6 +37,7 @@ import okhttp3.mockwebserver.RecordedRequest;
|
|||
import okio.Buffer;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
|
@ -54,6 +55,7 @@ import org.springframework.lang.NonNull;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.fail;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
|
||||
/**
|
||||
* @author Arjen Poutsma
|
||||
|
|
@ -202,22 +204,22 @@ public class ClientHttpConnectorTests {
|
|||
@Target(ElementType.METHOD)
|
||||
// Do not auto-close arguments since HttpComponentsClientHttpConnector implements
|
||||
// AutoCloseable and is shared between parameterized test invocations.
|
||||
@ParameterizedTest(autoCloseArguments = false)
|
||||
@ParameterizedTest(name = "{0}", autoCloseArguments = false)
|
||||
@MethodSource("org.springframework.http.client.reactive.ClientHttpConnectorTests#connectors")
|
||||
public @interface ParameterizedConnectorTest {
|
||||
}
|
||||
|
||||
static List<ClientHttpConnector> connectors() {
|
||||
static List<Named<ClientHttpConnector>> connectors() {
|
||||
return Arrays.asList(
|
||||
new ReactorClientHttpConnector(),
|
||||
new JettyClientHttpConnector(),
|
||||
new HttpComponentsClientHttpConnector()
|
||||
named("Reactor Netty", new ReactorClientHttpConnector()),
|
||||
named("Jetty", new JettyClientHttpConnector()),
|
||||
named("HttpComponents", new HttpComponentsClientHttpConnector())
|
||||
);
|
||||
}
|
||||
|
||||
static List<Arguments> methodsWithConnectors() {
|
||||
List<Arguments> result = new ArrayList<>();
|
||||
for (ClientHttpConnector connector : connectors()) {
|
||||
for (Named<ClientHttpConnector> connector : connectors()) {
|
||||
for (HttpMethod method : HttpMethod.values()) {
|
||||
result.add(Arguments.of(connector, method));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -58,7 +58,7 @@ class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAllocating
|
|||
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void canWrite(String displayName, DataBufferFactory bufferFactory) {
|
||||
void canWrite(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
assertThat(this.messageWriter.canWrite(forClass(Object.class), null)).isTrue();
|
||||
|
|
@ -73,7 +73,7 @@ class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAllocating
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeServerSentEvent(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeServerSentEvent(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
ServerSentEvent<?> event = ServerSentEvent.builder().data("bar").id("c42").event("foo")
|
||||
|
|
@ -91,7 +91,7 @@ class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAllocating
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeString(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeString(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
MockServerHttpResponse outputMessage = new MockServerHttpResponse(super.bufferFactory);
|
||||
|
|
@ -106,7 +106,7 @@ class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAllocating
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writeMultiLineString(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeMultiLineString(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
MockServerHttpResponse outputMessage = new MockServerHttpResponse(super.bufferFactory);
|
||||
|
|
@ -121,7 +121,7 @@ class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAllocating
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest // SPR-16516
|
||||
void writeStringWithCustomCharset(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writeStringWithCustomCharset(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
MockServerHttpResponse outputMessage = new MockServerHttpResponse(super.bufferFactory);
|
||||
|
|
@ -142,7 +142,7 @@ class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAllocating
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void writePojo(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writePojo(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
MockServerHttpResponse outputMessage = new MockServerHttpResponse(super.bufferFactory);
|
||||
|
|
@ -161,7 +161,7 @@ class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAllocating
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest // SPR-14899
|
||||
void writePojoWithPrettyPrint(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writePojoWithPrettyPrint(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
ObjectMapper mapper = Jackson2ObjectMapperBuilder.json().indentOutput(true).build();
|
||||
|
|
@ -187,7 +187,7 @@ class ServerSentEventHttpMessageWriterTests extends AbstractDataBufferAllocating
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest // SPR-16516, SPR-16539
|
||||
void writePojoWithCustomEncoding(String displayName, DataBufferFactory bufferFactory) {
|
||||
void writePojoWithCustomEncoding(DataBufferFactory bufferFactory) {
|
||||
super.bufferFactory = bufferFactory;
|
||||
|
||||
MockServerHttpResponse outputMessage = new MockServerHttpResponse(super.bufferFactory);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -55,6 +55,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
|
|||
import static java.util.Collections.emptyMap;
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
import static org.springframework.core.ResolvableType.forClass;
|
||||
import static org.springframework.core.io.buffer.DataBufferUtils.release;
|
||||
|
|
@ -62,7 +63,7 @@ import static org.springframework.core.io.buffer.DataBufferUtils.release;
|
|||
/**
|
||||
* @author Arjen Poutsma
|
||||
*/
|
||||
public class DefaultPartHttpMessageReaderTests {
|
||||
class DefaultPartHttpMessageReaderTests {
|
||||
|
||||
private static final String LOREM_IPSUM = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer iaculis metus id vestibulum nullam.";
|
||||
|
||||
|
|
@ -73,12 +74,12 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
private static final DataBufferFactory bufferFactory = new NettyDataBufferFactory(new PooledByteBufAllocator());
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void canRead(String displayName, DefaultPartHttpMessageReader reader) {
|
||||
void canRead(DefaultPartHttpMessageReader reader) {
|
||||
assertThat(reader.canRead(forClass(Part.class), MediaType.MULTIPART_FORM_DATA)).isTrue();
|
||||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void simple(String displayName, DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
void simple(DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("simple.multipart", getClass()), "simple-boundary");
|
||||
|
||||
|
|
@ -96,7 +97,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void noHeaders(String displayName, DefaultPartHttpMessageReader reader) {
|
||||
void noHeaders(DefaultPartHttpMessageReader reader) {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("no-header.multipart", getClass()), "boundary");
|
||||
Flux<Part> result = reader.read(forClass(Part.class), request, emptyMap());
|
||||
|
|
@ -110,7 +111,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void noEndBoundary(String displayName, DefaultPartHttpMessageReader reader) {
|
||||
void noEndBoundary(DefaultPartHttpMessageReader reader) {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("no-end-boundary.multipart", getClass()), "boundary");
|
||||
|
||||
|
|
@ -122,7 +123,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void garbage(String displayName, DefaultPartHttpMessageReader reader) {
|
||||
void garbage(DefaultPartHttpMessageReader reader) {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("garbage-1.multipart", getClass()), "boundary");
|
||||
|
||||
|
|
@ -134,7 +135,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void noEndHeader(String displayName, DefaultPartHttpMessageReader reader) {
|
||||
void noEndHeader(DefaultPartHttpMessageReader reader) {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("no-end-header.multipart", getClass()), "boundary");
|
||||
Flux<Part> result = reader.read(forClass(Part.class), request, emptyMap());
|
||||
|
|
@ -145,7 +146,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void noEndBody(String displayName, DefaultPartHttpMessageReader reader) {
|
||||
void noEndBody(DefaultPartHttpMessageReader reader) {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("no-end-body.multipart", getClass()), "boundary");
|
||||
Flux<Part> result = reader.read(forClass(Part.class), request, emptyMap());
|
||||
|
|
@ -156,7 +157,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void cancelPart(String displayName, DefaultPartHttpMessageReader reader) {
|
||||
void cancelPart(DefaultPartHttpMessageReader reader) {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("simple.multipart", getClass()), "simple-boundary");
|
||||
Flux<Part> result = reader.read(forClass(Part.class), request, emptyMap());
|
||||
|
|
@ -168,7 +169,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void cancelBody(String displayName, DefaultPartHttpMessageReader reader) throws Exception {
|
||||
void cancelBody(DefaultPartHttpMessageReader reader) throws Exception {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("simple.multipart", getClass()), "simple-boundary");
|
||||
Flux<Part> result = reader.read(forClass(Part.class), request, emptyMap());
|
||||
|
|
@ -185,7 +186,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void cancelBodyThenPart(String displayName, DefaultPartHttpMessageReader reader) {
|
||||
void cancelBodyThenPart(DefaultPartHttpMessageReader reader) {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("simple.multipart", getClass()), "simple-boundary");
|
||||
Flux<Part> result = reader.read(forClass(Part.class), request, emptyMap());
|
||||
|
|
@ -197,25 +198,25 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void firefox(String displayName, DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
void firefox(DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
testBrowser(reader, new ClassPathResource("firefox.multipart", getClass()),
|
||||
"---------------------------18399284482060392383840973206");
|
||||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void chrome(String displayName, DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
void chrome(DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
testBrowser(reader, new ClassPathResource("chrome.multipart", getClass()),
|
||||
"----WebKitFormBoundaryEveBLvRT65n21fwU");
|
||||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void safari(String displayName, DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
void safari(DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
testBrowser(reader, new ClassPathResource("safari.multipart", getClass()),
|
||||
"----WebKitFormBoundaryG8fJ50opQOML0oGD");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void tooManyParts() throws InterruptedException {
|
||||
void tooManyParts() throws InterruptedException {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("simple.multipart", getClass()), "simple-boundary");
|
||||
|
||||
|
|
@ -235,7 +236,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void quotedBoundary(String displayName, DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
void quotedBoundary(DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("simple.multipart", getClass()), "\"simple-boundary\"");
|
||||
|
||||
|
|
@ -253,7 +254,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
}
|
||||
|
||||
@ParameterizedDefaultPartHttpMessageReaderTest
|
||||
public void utf8Headers(String displayName, DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
void utf8Headers(DefaultPartHttpMessageReader reader) throws InterruptedException {
|
||||
MockServerHttpRequest request = createRequest(
|
||||
new ClassPathResource("utf8.multipart", getClass()), "\"simple-boundary\"");
|
||||
|
||||
|
|
@ -272,7 +273,7 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
|
||||
// gh-27612
|
||||
@Test
|
||||
public void exceedHeaderLimit() throws InterruptedException {
|
||||
void exceedHeaderLimit() throws InterruptedException {
|
||||
Flux<DataBuffer> body = DataBufferUtils
|
||||
.readByteChannel((new ClassPathResource("files.multipart", getClass()))::readableChannel, bufferFactory, 282);
|
||||
|
||||
|
|
@ -410,10 +411,10 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
@Target(ElementType.METHOD)
|
||||
@ParameterizedTest(name = "[{index}] {0}")
|
||||
@MethodSource("org.springframework.http.codec.multipart.DefaultPartHttpMessageReaderTests#messageReaders()")
|
||||
public @interface ParameterizedDefaultPartHttpMessageReaderTest {
|
||||
@interface ParameterizedDefaultPartHttpMessageReaderTest {
|
||||
}
|
||||
|
||||
public static Stream<Arguments> messageReaders() {
|
||||
static Stream<Arguments> messageReaders() {
|
||||
DefaultPartHttpMessageReader streaming = new DefaultPartHttpMessageReader();
|
||||
streaming.setStreaming(true);
|
||||
|
||||
|
|
@ -426,11 +427,9 @@ public class DefaultPartHttpMessageReaderTests {
|
|||
onDisk.setMaxInMemorySize(100);
|
||||
|
||||
return Stream.of(
|
||||
arguments("streaming", streaming),
|
||||
arguments("in-memory", inMemory),
|
||||
arguments("on-disk", onDisk)
|
||||
);
|
||||
arguments(named("streaming", streaming)),
|
||||
arguments(named("in-memory", inMemory)),
|
||||
arguments(named("on-disk", onDisk)));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -39,6 +39,7 @@ import org.springframework.util.MultiValueMap;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
|
|
@ -50,24 +51,24 @@ import static org.junit.jupiter.params.provider.Arguments.arguments;
|
|||
class HeadersAdaptersTests {
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void getWithUnknownHeaderShouldReturnNull(String displayName, MultiValueMap<String, String> headers) {
|
||||
void getWithUnknownHeaderShouldReturnNull(MultiValueMap<String, String> headers) {
|
||||
assertThat(headers.get("Unknown")).isNull();
|
||||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void getFirstWithUnknownHeaderShouldReturnNull(String displayName, MultiValueMap<String, String> headers) {
|
||||
void getFirstWithUnknownHeaderShouldReturnNull(MultiValueMap<String, String> headers) {
|
||||
assertThat(headers.getFirst("Unknown")).isNull();
|
||||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void sizeWithMultipleValuesForHeaderShouldCountHeaders(String displayName, MultiValueMap<String, String> headers) {
|
||||
void sizeWithMultipleValuesForHeaderShouldCountHeaders(MultiValueMap<String, String> headers) {
|
||||
headers.add("TestHeader", "first");
|
||||
headers.add("TestHeader", "second");
|
||||
assertThat(headers.size()).isEqualTo(1);
|
||||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void keySetShouldNotDuplicateHeaderNames(String displayName, MultiValueMap<String, String> headers) {
|
||||
void keySetShouldNotDuplicateHeaderNames(MultiValueMap<String, String> headers) {
|
||||
headers.add("TestHeader", "first");
|
||||
headers.add("OtherHeader", "test");
|
||||
headers.add("TestHeader", "second");
|
||||
|
|
@ -75,13 +76,13 @@ class HeadersAdaptersTests {
|
|||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void containsKeyShouldBeCaseInsensitive(String displayName, MultiValueMap<String, String> headers) {
|
||||
void containsKeyShouldBeCaseInsensitive(MultiValueMap<String, String> headers) {
|
||||
headers.add("TestHeader", "first");
|
||||
assertThat(headers.containsKey("testheader")).isTrue();
|
||||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void addShouldKeepOrdering(String displayName, MultiValueMap<String, String> headers) {
|
||||
void addShouldKeepOrdering(MultiValueMap<String, String> headers) {
|
||||
headers.add("TestHeader", "first");
|
||||
headers.add("TestHeader", "second");
|
||||
assertThat(headers.getFirst("TestHeader")).isEqualTo("first");
|
||||
|
|
@ -89,7 +90,7 @@ class HeadersAdaptersTests {
|
|||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void putShouldOverrideExisting(String displayName, MultiValueMap<String, String> headers) {
|
||||
void putShouldOverrideExisting(MultiValueMap<String, String> headers) {
|
||||
headers.add("TestHeader", "first");
|
||||
headers.put("TestHeader", Arrays.asList("override"));
|
||||
assertThat(headers.getFirst("TestHeader")).isEqualTo("override");
|
||||
|
|
@ -97,7 +98,7 @@ class HeadersAdaptersTests {
|
|||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void nullValuesShouldNotFail(String displayName, MultiValueMap<String, String> headers) {
|
||||
void nullValuesShouldNotFail(MultiValueMap<String, String> headers) {
|
||||
headers.add("TestHeader", null);
|
||||
assertThat(headers.getFirst("TestHeader")).isNull();
|
||||
headers.set("TestHeader", null);
|
||||
|
|
@ -105,7 +106,7 @@ class HeadersAdaptersTests {
|
|||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void shouldReflectChangesOnKeyset(String displayName, MultiValueMap<String, String> headers) {
|
||||
void shouldReflectChangesOnKeyset(MultiValueMap<String, String> headers) {
|
||||
headers.add("TestHeader", "first");
|
||||
assertThat(headers.keySet()).hasSize(1);
|
||||
headers.keySet().removeIf("TestHeader"::equals);
|
||||
|
|
@ -113,7 +114,7 @@ class HeadersAdaptersTests {
|
|||
}
|
||||
|
||||
@ParameterizedHeadersTest
|
||||
void shouldFailIfHeaderRemovedFromKeyset(String displayName, MultiValueMap<String, String> headers) {
|
||||
void shouldFailIfHeaderRemovedFromKeyset(MultiValueMap<String, String> headers) {
|
||||
headers.add("TestHeader", "first");
|
||||
assertThat(headers.keySet()).hasSize(1);
|
||||
Iterator<String> names = headers.keySet().iterator();
|
||||
|
|
@ -132,11 +133,11 @@ class HeadersAdaptersTests {
|
|||
|
||||
static Stream<Arguments> headers() {
|
||||
return Stream.of(
|
||||
arguments("Map", CollectionUtils.toMultiValueMap(new LinkedCaseInsensitiveMap<>(8, Locale.ENGLISH))),
|
||||
arguments("Netty", new NettyHeadersAdapter(new DefaultHttpHeaders())),
|
||||
arguments("Tomcat", new TomcatHeadersAdapter(new MimeHeaders())),
|
||||
arguments("Undertow", new UndertowHeadersAdapter(new HeaderMap())),
|
||||
arguments("Jetty", new JettyHeadersAdapter(HttpFields.build()))
|
||||
arguments(named("Map", CollectionUtils.toMultiValueMap(new LinkedCaseInsensitiveMap<>(8, Locale.ENGLISH)))),
|
||||
arguments(named("Netty", new NettyHeadersAdapter(new DefaultHttpHeaders()))),
|
||||
arguments(named("Tomcat", new TomcatHeadersAdapter(new MimeHeaders()))),
|
||||
arguments(named("Undertow", new UndertowHeadersAdapter(new HeaderMap()))),
|
||||
arguments(named("Jetty", new JettyHeadersAdapter(HttpFields.build())))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2022 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,8 +16,11 @@
|
|||
|
||||
package org.springframework.web.client;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
import org.springframework.http.HttpHeaders;
|
||||
|
|
@ -27,6 +30,8 @@ import org.springframework.http.client.ClientHttpResponse;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
import static org.mockito.BDDMockito.given;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.springframework.http.HttpStatus.BAD_GATEWAY;
|
||||
|
|
@ -65,7 +70,7 @@ class DefaultResponseErrorHandlerHttpStatusTests {
|
|||
assertThat(this.handler.hasError(this.response)).isTrue();
|
||||
}
|
||||
|
||||
@ParameterizedTest(name = "[{index}] error: [{0}], exception: [{1}]")
|
||||
@ParameterizedTest(name = "[{index}] error: {0}, exception: {1}")
|
||||
@DisplayName("handleError() throws an exception")
|
||||
@MethodSource("errorCodes")
|
||||
void handleErrorException(HttpStatus httpStatus, Class<? extends Throwable> expectedExceptionClass) throws Exception {
|
||||
|
|
@ -78,27 +83,33 @@ class DefaultResponseErrorHandlerHttpStatusTests {
|
|||
assertThatExceptionOfType(expectedExceptionClass).isThrownBy(() -> this.handler.handleError(this.response));
|
||||
}
|
||||
|
||||
static Object[][] errorCodes() {
|
||||
return new Object[][]{
|
||||
static Stream<Arguments> errorCodes() {
|
||||
return Stream.of(
|
||||
// 4xx
|
||||
{BAD_REQUEST, HttpClientErrorException.BadRequest.class},
|
||||
{UNAUTHORIZED, HttpClientErrorException.Unauthorized.class},
|
||||
{FORBIDDEN, HttpClientErrorException.Forbidden.class},
|
||||
{NOT_FOUND, HttpClientErrorException.NotFound.class},
|
||||
{METHOD_NOT_ALLOWED, HttpClientErrorException.MethodNotAllowed.class},
|
||||
{NOT_ACCEPTABLE, HttpClientErrorException.NotAcceptable.class},
|
||||
{CONFLICT, HttpClientErrorException.Conflict.class},
|
||||
{TOO_MANY_REQUESTS, HttpClientErrorException.TooManyRequests.class},
|
||||
{UNPROCESSABLE_ENTITY, HttpClientErrorException.UnprocessableEntity.class},
|
||||
{I_AM_A_TEAPOT, HttpClientErrorException.class},
|
||||
args(BAD_REQUEST, HttpClientErrorException.BadRequest.class),
|
||||
args(UNAUTHORIZED, HttpClientErrorException.Unauthorized.class),
|
||||
args(FORBIDDEN, HttpClientErrorException.Forbidden.class),
|
||||
args(NOT_FOUND, HttpClientErrorException.NotFound.class),
|
||||
args(METHOD_NOT_ALLOWED, HttpClientErrorException.MethodNotAllowed.class),
|
||||
args(NOT_ACCEPTABLE, HttpClientErrorException.NotAcceptable.class),
|
||||
args(CONFLICT, HttpClientErrorException.Conflict.class),
|
||||
args(TOO_MANY_REQUESTS, HttpClientErrorException.TooManyRequests.class),
|
||||
args(UNPROCESSABLE_ENTITY, HttpClientErrorException.UnprocessableEntity.class),
|
||||
args(I_AM_A_TEAPOT, HttpClientErrorException.class),
|
||||
// 5xx
|
||||
{INTERNAL_SERVER_ERROR, HttpServerErrorException.InternalServerError.class},
|
||||
{NOT_IMPLEMENTED, HttpServerErrorException.NotImplemented.class},
|
||||
{BAD_GATEWAY, HttpServerErrorException.BadGateway.class},
|
||||
{SERVICE_UNAVAILABLE, HttpServerErrorException.ServiceUnavailable.class},
|
||||
{GATEWAY_TIMEOUT, HttpServerErrorException.GatewayTimeout.class},
|
||||
{HTTP_VERSION_NOT_SUPPORTED, HttpServerErrorException.class}
|
||||
};
|
||||
args(INTERNAL_SERVER_ERROR, HttpServerErrorException.InternalServerError.class),
|
||||
args(NOT_IMPLEMENTED, HttpServerErrorException.NotImplemented.class),
|
||||
args(BAD_GATEWAY, HttpServerErrorException.BadGateway.class),
|
||||
args(SERVICE_UNAVAILABLE, HttpServerErrorException.ServiceUnavailable.class),
|
||||
args(GATEWAY_TIMEOUT, HttpServerErrorException.GatewayTimeout.class),
|
||||
args(HTTP_VERSION_NOT_SUPPORTED, HttpServerErrorException.class)
|
||||
);
|
||||
}
|
||||
|
||||
private static Arguments args(HttpStatus httpStatus, Class<? extends Throwable> exceptionType) {
|
||||
return arguments(
|
||||
named(String.valueOf(httpStatus.value()), httpStatus),
|
||||
named(exceptionType.getSimpleName(), exceptionType));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -30,6 +30,7 @@ import java.util.stream.Stream;
|
|||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
import org.junit.jupiter.api.extension.TestExecutionExceptionHandler;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
|
|
@ -57,6 +58,7 @@ import org.springframework.util.MultiValueMap;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||
import static org.junit.jupiter.api.Assumptions.assumeFalse;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.springframework.http.HttpMethod.POST;
|
||||
import static org.springframework.http.MediaType.MULTIPART_MIXED;
|
||||
|
||||
|
|
@ -87,11 +89,11 @@ class RestTemplateIntegrationTests extends AbstractMockWebServerTests {
|
|||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
static Stream<ClientHttpRequestFactory> clientHttpRequestFactories() {
|
||||
static Stream<Named<ClientHttpRequestFactory>> clientHttpRequestFactories() {
|
||||
return Stream.of(
|
||||
new SimpleClientHttpRequestFactory(),
|
||||
new HttpComponentsClientHttpRequestFactory(),
|
||||
new OkHttp3ClientHttpRequestFactory()
|
||||
named("JDK", new SimpleClientHttpRequestFactory()),
|
||||
named("HttpComponents", new HttpComponentsClientHttpRequestFactory()),
|
||||
named("OkHttp", new OkHttp3ClientHttpRequestFactory())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -23,6 +23,7 @@ import java.lang.annotation.Target;
|
|||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
|
@ -34,6 +35,7 @@ import org.springframework.web.util.UrlPathHelper;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link UrlBasedCorsConfigurationSource}.
|
||||
|
|
@ -42,62 +44,35 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
|
|||
*/
|
||||
class UrlBasedCorsConfigurationSourceTests {
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@ParameterizedTest
|
||||
@MethodSource("pathPatternsArguments")
|
||||
@interface PathPatternsParameterizedTest {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static Stream<Function<String, MockHttpServletRequest>> pathPatternsArguments() {
|
||||
return Stream.of(
|
||||
requestUri -> {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
|
||||
ServletRequestPathUtils.parseAndCache(request);
|
||||
return request;
|
||||
},
|
||||
requestUri -> {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
|
||||
UrlPathHelper.defaultInstance.getLookupPathForRequest(request);
|
||||
return request;
|
||||
}
|
||||
);
|
||||
}
|
||||
private final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void empty(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
CorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
assertThat(source.getCorsConfiguration(requestFactory.apply("/bar/test.html"))).isNull();
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void registerAndMatch(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
CorsConfiguration config = new CorsConfiguration();
|
||||
UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
|
||||
configSource.registerCorsConfiguration("/bar/**", config);
|
||||
source.registerCorsConfiguration("/bar/**", config);
|
||||
|
||||
MockHttpServletRequest request = requestFactory.apply("/foo/test.html");
|
||||
assertThat(configSource.getCorsConfiguration(request)).isNull();
|
||||
assertThat(source.getCorsConfiguration(request)).isNull();
|
||||
|
||||
request = requestFactory.apply("/bar/test.html");
|
||||
assertThat(configSource.getCorsConfiguration(request)).isEqualTo(config);
|
||||
assertThat(source.getCorsConfiguration(request)).isEqualTo(config);
|
||||
}
|
||||
|
||||
@Test
|
||||
void unmodifiableConfigurationsMap() {
|
||||
assertThatExceptionOfType(UnsupportedOperationException.class)
|
||||
.isThrownBy(() -> {
|
||||
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
source.getCorsConfigurations().put("/**", new CorsConfiguration());
|
||||
});
|
||||
.isThrownBy(() -> source.getCorsConfigurations().put("/**", new CorsConfiguration()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void allowInitLookupPath() {
|
||||
CorsConfiguration config = new CorsConfiguration();
|
||||
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
||||
source.registerCorsConfiguration("/**", config);
|
||||
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo");
|
||||
|
|
@ -108,4 +83,29 @@ class UrlBasedCorsConfigurationSourceTests {
|
|||
source.setAllowInitLookupPath(false);
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> source.getCorsConfiguration(request));
|
||||
}
|
||||
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@ParameterizedTest(name = "[{index}] {0}")
|
||||
@MethodSource("pathPatternsArguments")
|
||||
private @interface PathPatternsParameterizedTest {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static Stream<Named<Function<String, MockHttpServletRequest>>> pathPatternsArguments() {
|
||||
return Stream.of(
|
||||
named("ServletRequestPathUtils", requestUri -> {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
|
||||
ServletRequestPathUtils.parseAndCache(request);
|
||||
return request;
|
||||
}),
|
||||
named("UrlPathHelper", requestUri -> {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUri);
|
||||
UrlPathHelper.defaultInstance.getLookupPathForRequest(request);
|
||||
return request;
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -26,6 +26,7 @@ import java.util.stream.Stream;
|
|||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
import org.junit.jupiter.api.extension.TestExecutionExceptionHandler;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
|
|
@ -36,6 +37,8 @@ import org.springframework.http.server.reactive.HttpHandler;
|
|||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.client.HttpServerErrorException;
|
||||
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
|
||||
public abstract class AbstractHttpHandlerIntegrationTests {
|
||||
|
||||
/**
|
||||
|
|
@ -120,12 +123,12 @@ public abstract class AbstractHttpHandlerIntegrationTests {
|
|||
public @interface ParameterizedHttpServerTest {
|
||||
}
|
||||
|
||||
static Stream<HttpServer> httpServers() {
|
||||
static Stream<Named<HttpServer>> httpServers() {
|
||||
return Stream.of(
|
||||
new JettyHttpServer(),
|
||||
new ReactorHttpServer(),
|
||||
new TomcatHttpServer(),
|
||||
new UndertowHttpServer()
|
||||
named("Jetty", new JettyHttpServer()),
|
||||
named("Reactor Netty", new ReactorHttpServer()),
|
||||
named("Tomcat", new TomcatHttpServer()),
|
||||
named("Undertow", new UndertowHttpServer())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -45,7 +45,7 @@ import org.springframework.web.util.UriUtils;
|
|||
* values from the model or with URI variables from the current request.
|
||||
*
|
||||
* <p>By default {@link HttpStatus#SEE_OTHER} is used but alternate status codes
|
||||
* may be via constructor or setters arguments.
|
||||
* may be supplied via constructor or setters arguments.
|
||||
*
|
||||
* @author Sebastien Deleuze
|
||||
* @author Rossen Stoyanchev
|
||||
|
|
@ -74,7 +74,7 @@ public class RedirectView extends AbstractUrlBasedView {
|
|||
|
||||
/**
|
||||
* Create a new {@code RedirectView} with the given redirect URL.
|
||||
* Status code {@link HttpStatus#SEE_OTHER} is used by default.
|
||||
* <p>Status code {@link HttpStatus#SEE_OTHER} is used by default.
|
||||
*/
|
||||
public RedirectView(String redirectUrl) {
|
||||
super(redirectUrl);
|
||||
|
|
@ -109,9 +109,9 @@ public class RedirectView extends AbstractUrlBasedView {
|
|||
}
|
||||
|
||||
/**
|
||||
* Whether to interpret a given redirect URLs that starts with a slash ("/")
|
||||
* as relative to the current context path ({@code true}, the default) or to
|
||||
* the web server root ({@code false}).
|
||||
* Whether to interpret a given redirect URL that starts with a slash ("/")
|
||||
* as relative to the current context path ({@code true}, the default) or
|
||||
* relative to the web server root ({@code false}).
|
||||
*/
|
||||
public void setContextRelative(boolean contextRelative) {
|
||||
this.contextRelative = contextRelative;
|
||||
|
|
@ -141,7 +141,7 @@ public class RedirectView extends AbstractUrlBasedView {
|
|||
|
||||
/**
|
||||
* Configure one or more hosts associated with the application.
|
||||
* All other hosts will be considered external hosts.
|
||||
* <p>All other hosts will be considered external hosts.
|
||||
* <p>In effect this provides a way turn off encoding for URLs that
|
||||
* have a host and that host is not listed as a known host.
|
||||
* <p>If not set (the default) all redirect URLs are encoded.
|
||||
|
|
@ -301,7 +301,7 @@ public class RedirectView extends AbstractUrlBasedView {
|
|||
* property is configured and the target URL has a host that does not match.
|
||||
* @param targetUrl the target redirect URL
|
||||
* @return {@code true} the target URL has a remote host, {@code false} if it
|
||||
* the URL does not have a host or the "host" property is not configured.
|
||||
* the URL does not have a host or the "host" property is not configured
|
||||
*/
|
||||
protected boolean isRemoteHost(String targetUrl) {
|
||||
if (ObjectUtils.isEmpty(this.hosts)) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2018 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -34,7 +34,7 @@ import org.springframework.ui.Model;
|
|||
* Or controllers may return model attribute(s) and rely on a default view name
|
||||
* being selected based on the request path.
|
||||
*
|
||||
* <p>{@link Rendering} can be used to combine a view name with model attributes,
|
||||
* <p>{@code Rendering} can be used to combine a view name with model attributes,
|
||||
* set the HTTP status or headers, and for other more advanced options around
|
||||
* redirect scenarios.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -96,7 +96,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void bodyToMonoVoid(String displayName, DataBufferFactory bufferFactory) {
|
||||
void bodyToMonoVoid(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
this.server.enqueue(new MockResponse()
|
||||
|
|
@ -114,7 +114,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest // SPR-17482
|
||||
void bodyToMonoVoidWithoutContentType(String displayName, DataBufferFactory bufferFactory) {
|
||||
void bodyToMonoVoidWithoutContentType(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
this.server.enqueue(new MockResponse()
|
||||
|
|
@ -131,7 +131,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void onStatusWithBodyNotConsumed(String displayName, DataBufferFactory bufferFactory) {
|
||||
void onStatusWithBodyNotConsumed(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
RuntimeException ex = new RuntimeException("response error");
|
||||
|
|
@ -139,7 +139,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void onStatusWithBodyConsumed(String displayName, DataBufferFactory bufferFactory) {
|
||||
void onStatusWithBodyConsumed(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
RuntimeException ex = new RuntimeException("response error");
|
||||
|
|
@ -147,7 +147,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest // SPR-17473
|
||||
void onStatusWithMonoErrorAndBodyNotConsumed(String displayName, DataBufferFactory bufferFactory) {
|
||||
void onStatusWithMonoErrorAndBodyNotConsumed(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
RuntimeException ex = new RuntimeException("response error");
|
||||
|
|
@ -155,7 +155,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void onStatusWithMonoErrorAndBodyConsumed(String displayName, DataBufferFactory bufferFactory) {
|
||||
void onStatusWithMonoErrorAndBodyConsumed(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
RuntimeException ex = new RuntimeException("response error");
|
||||
|
|
@ -163,7 +163,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest // gh-23230
|
||||
void onStatusWithImmediateErrorAndBodyNotConsumed(String displayName, DataBufferFactory bufferFactory) {
|
||||
void onStatusWithImmediateErrorAndBodyNotConsumed(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
RuntimeException ex = new RuntimeException("response error");
|
||||
|
|
@ -173,7 +173,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void releaseBody(String displayName, DataBufferFactory bufferFactory) {
|
||||
void releaseBody(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
this.server.enqueue(new MockResponse()
|
||||
|
|
@ -190,7 +190,7 @@ class WebClientDataBufferAllocatingTests extends AbstractDataBufferAllocatingTes
|
|||
}
|
||||
|
||||
@ParameterizedDataBufferAllocatingTest
|
||||
void exchangeToBodilessEntity(String displayName, DataBufferFactory bufferFactory) {
|
||||
void exchangeToBodilessEntity(DataBufferFactory bufferFactory) {
|
||||
setUp(bufferFactory);
|
||||
|
||||
this.server.enqueue(new MockResponse()
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ import okhttp3.mockwebserver.MockResponse;
|
|||
import okhttp3.mockwebserver.MockWebServer;
|
||||
import okhttp3.mockwebserver.RecordedRequest;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
|
@ -76,6 +77,7 @@ import org.springframework.web.reactive.function.client.WebClient.ResponseSpec;
|
|||
import org.springframework.web.testfixture.xml.Pojo;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
|
||||
/**
|
||||
* Integration tests using an {@link ExchangeFunction} through {@link WebClient}.
|
||||
|
|
@ -91,17 +93,17 @@ class WebClientIntegrationTests {
|
|||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@ParameterizedTest(name = "[{index}] {displayName} [{0}]")
|
||||
@ParameterizedTest(name = "[{index}] {0}")
|
||||
@MethodSource("arguments")
|
||||
@interface ParameterizedWebClientTest {
|
||||
}
|
||||
|
||||
static Stream<ClientHttpConnector> arguments() {
|
||||
static Stream<Named<ClientHttpConnector>> arguments() {
|
||||
return Stream.of(
|
||||
new ReactorClientHttpConnector(),
|
||||
new JdkClientHttpConnector(),
|
||||
new JettyClientHttpConnector(),
|
||||
new HttpComponentsClientHttpConnector()
|
||||
named("Reactor Netty", new ReactorClientHttpConnector()),
|
||||
named("JDK", new JdkClientHttpConnector()),
|
||||
named("Jetty", new JettyClientHttpConnector()),
|
||||
named("HttpComponents", new HttpComponentsClientHttpConnector())
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -21,9 +21,11 @@ import java.lang.annotation.Retention;
|
|||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
import java.time.Duration;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
|
@ -36,7 +38,6 @@ import org.springframework.context.annotation.Configuration;
|
|||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.http.client.reactive.ClientHttpConnector;
|
||||
import org.springframework.http.client.reactive.HttpComponentsClientHttpConnector;
|
||||
import org.springframework.http.client.reactive.JdkClientHttpConnector;
|
||||
import org.springframework.http.client.reactive.JettyClientHttpConnector;
|
||||
import org.springframework.http.client.reactive.ReactorClientHttpConnector;
|
||||
import org.springframework.http.codec.ServerSentEvent;
|
||||
|
|
@ -57,6 +58,7 @@ import org.springframework.web.testfixture.http.server.reactive.bootstrap.Undert
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Assumptions.assumeTrue;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.springframework.http.MediaType.TEXT_EVENT_STREAM;
|
||||
|
||||
/**
|
||||
|
|
@ -65,35 +67,6 @@ import static org.springframework.http.MediaType.TEXT_EVENT_STREAM;
|
|||
*/
|
||||
class SseIntegrationTests extends AbstractHttpHandlerIntegrationTests {
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@ParameterizedTest(name = "[{index}] server [{0}], webClient [{1}]")
|
||||
@MethodSource("arguments")
|
||||
protected @interface ParameterizedSseTest {
|
||||
}
|
||||
|
||||
static Object[][] arguments() {
|
||||
return new Object[][] {
|
||||
{new JettyHttpServer(), new ReactorClientHttpConnector()},
|
||||
{new JettyHttpServer(), new JdkClientHttpConnector()},
|
||||
{new JettyHttpServer(), new JettyClientHttpConnector()},
|
||||
{new JettyHttpServer(), new HttpComponentsClientHttpConnector()},
|
||||
{new ReactorHttpServer(), new ReactorClientHttpConnector()},
|
||||
{new ReactorHttpServer(), new JdkClientHttpConnector()},
|
||||
{new ReactorHttpServer(), new JettyClientHttpConnector()},
|
||||
{new ReactorHttpServer(), new HttpComponentsClientHttpConnector()},
|
||||
{new TomcatHttpServer(), new ReactorClientHttpConnector()},
|
||||
{new TomcatHttpServer(), new JdkClientHttpConnector()},
|
||||
{new TomcatHttpServer(), new JettyClientHttpConnector()},
|
||||
{new TomcatHttpServer(), new HttpComponentsClientHttpConnector()},
|
||||
{new UndertowHttpServer(), new ReactorClientHttpConnector()},
|
||||
{new UndertowHttpServer(), new JdkClientHttpConnector()},
|
||||
{new UndertowHttpServer(), new JettyClientHttpConnector()},
|
||||
{new UndertowHttpServer(), new HttpComponentsClientHttpConnector()},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private AnnotationConfigApplicationContext wac;
|
||||
|
||||
private WebClient webClient;
|
||||
|
|
@ -317,4 +290,35 @@ class SseIntegrationTests extends AbstractHttpHandlerIntegrationTests {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@ParameterizedTest(name = "[{index}] server = {0}, webClient = {1}")
|
||||
@MethodSource("arguments")
|
||||
private @interface ParameterizedSseTest {
|
||||
}
|
||||
|
||||
static Stream<Arguments> arguments() {
|
||||
return Stream.of(
|
||||
args(new JettyHttpServer(), new ReactorClientHttpConnector()),
|
||||
args(new JettyHttpServer(), new JettyClientHttpConnector()),
|
||||
args(new JettyHttpServer(), new HttpComponentsClientHttpConnector()),
|
||||
args(new ReactorHttpServer(), new ReactorClientHttpConnector()),
|
||||
args(new ReactorHttpServer(), new JettyClientHttpConnector()),
|
||||
args(new ReactorHttpServer(), new HttpComponentsClientHttpConnector()),
|
||||
args(new TomcatHttpServer(), new ReactorClientHttpConnector()),
|
||||
args(new TomcatHttpServer(), new JettyClientHttpConnector()),
|
||||
args(new TomcatHttpServer(), new HttpComponentsClientHttpConnector()),
|
||||
args(new UndertowHttpServer(), new ReactorClientHttpConnector()),
|
||||
args(new UndertowHttpServer(), new JettyClientHttpConnector()),
|
||||
args(new UndertowHttpServer(), new HttpComponentsClientHttpConnector())
|
||||
);
|
||||
}
|
||||
|
||||
private static Arguments args(HttpServer httpServer, ClientHttpConnector connector) {
|
||||
return Arguments.of(
|
||||
named(httpServer.getClass().getSimpleName(), httpServer),
|
||||
named(connector.getClass().getSimpleName(), connector));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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,9 +16,7 @@
|
|||
|
||||
package org.springframework.web.servlet.handler;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
|
@ -31,6 +29,7 @@ import org.springframework.web.servlet.HandlerInterceptor;
|
|||
import org.springframework.web.testfixture.servlet.MockHttpServletRequest;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
/**
|
||||
|
|
@ -43,19 +42,12 @@ class HandlerMappingTests {
|
|||
|
||||
@SuppressWarnings("unused")
|
||||
private static Stream<Arguments> pathPatternsArguments() {
|
||||
List<Function<String, MockHttpServletRequest>> factories =
|
||||
PathPatternsTestUtils.requestArguments().collect(Collectors.toList());
|
||||
return Stream.of(
|
||||
Arguments.arguments(new TestHandlerMapping(), factories.get(0)),
|
||||
Arguments.arguments(new TestHandlerMapping(), factories.get(1))
|
||||
);
|
||||
return PathPatternsTestUtils.requestArguments().map(function -> arguments(function, new TestHandlerMapping()));
|
||||
}
|
||||
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void orderedInterceptors(
|
||||
TestHandlerMapping mapping, Function<String, MockHttpServletRequest> requestFactory)
|
||||
throws Exception {
|
||||
void orderedInterceptors(Function<String, MockHttpServletRequest> requestFactory, TestHandlerMapping mapping) throws Exception {
|
||||
|
||||
MappedInterceptor i1 = new MappedInterceptor(new String[] {"/**"}, mock(HandlerInterceptor.class));
|
||||
HandlerInterceptor i2 = mock(HandlerInterceptor.class);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -23,6 +23,7 @@ import java.util.stream.Stream;
|
|||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.util.PathMatcher;
|
||||
|
|
@ -46,7 +47,7 @@ class MappedInterceptorTests {
|
|||
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static Stream<Function<String, MockHttpServletRequest>> pathPatternsArguments() {
|
||||
private static Stream<Named<Function<String, MockHttpServletRequest>>> pathPatternsArguments() {
|
||||
return PathPatternsTestUtils.requestArguments();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -21,6 +21,9 @@ import java.lang.annotation.Retention;
|
|||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
/**
|
||||
* Annotation for tests parameterized to use either
|
||||
* {@link org.springframework.web.util.pattern.PathPatternParser} or
|
||||
|
|
@ -33,7 +36,7 @@ import java.lang.annotation.Target;
|
|||
@Target(ElementType.METHOD)
|
||||
// Do not auto-close arguments since ConfigurableWebApplicationContext implements
|
||||
// AutoCloseable and is shared between parameterized test invocations.
|
||||
@org.junit.jupiter.params.ParameterizedTest(autoCloseArguments = false)
|
||||
@org.junit.jupiter.params.provider.MethodSource("pathPatternsArguments")
|
||||
@ParameterizedTest(name = "[{index}] {0}", autoCloseArguments = false)
|
||||
@MethodSource("pathPatternsArguments")
|
||||
public @interface PathPatternsParameterizedTest {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -20,11 +20,15 @@ import java.util.function.Consumer;
|
|||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Named;
|
||||
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.web.testfixture.servlet.MockHttpServletRequest;
|
||||
import org.springframework.web.util.ServletRequestPathUtils;
|
||||
import org.springframework.web.util.UrlPathHelper;
|
||||
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
|
||||
/**
|
||||
* Utility methods to help with parameterized tests for URL pattern matching
|
||||
* via pre-parsed {@code PathPattern}s or String pattern matching with
|
||||
|
|
@ -35,22 +39,22 @@ import org.springframework.web.util.UrlPathHelper;
|
|||
*/
|
||||
public abstract class PathPatternsTestUtils {
|
||||
|
||||
public static Stream<Function<String, MockHttpServletRequest>> requestArguments() {
|
||||
public static Stream<Named<Function<String, MockHttpServletRequest>>> requestArguments() {
|
||||
return requestArguments(null);
|
||||
}
|
||||
|
||||
public static Stream<Function<String, MockHttpServletRequest>> requestArguments(@Nullable String contextPath) {
|
||||
public static Stream<Named<Function<String, MockHttpServletRequest>>> requestArguments(@Nullable String contextPath) {
|
||||
return Stream.of(
|
||||
path -> {
|
||||
named("ServletRequestPathUtils", path -> {
|
||||
MockHttpServletRequest request = createRequest("GET", contextPath, path);
|
||||
ServletRequestPathUtils.parseAndCache(request);
|
||||
return request;
|
||||
},
|
||||
path -> {
|
||||
}),
|
||||
named("UrlPathHelper", path -> {
|
||||
MockHttpServletRequest request = createRequest("GET", contextPath, path);
|
||||
UrlPathHelper.defaultInstance.resolveAndCacheLookupPath(request);
|
||||
return request;
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -19,6 +19,7 @@ package org.springframework.web.servlet.mvc;
|
|||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.ui.ModelMap;
|
||||
|
|
@ -42,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
class UrlFilenameViewControllerTests {
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static Stream<Function<String, MockHttpServletRequest>> pathPatternsArguments() {
|
||||
private static Stream<Named<Function<String, MockHttpServletRequest>>> pathPatternsArguments() {
|
||||
return PathPatternsTestUtils.requestArguments();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -20,6 +20,7 @@ import java.util.Properties;
|
|||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Named;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.web.servlet.handler.PathPatternsParameterizedTest;
|
||||
|
|
@ -46,7 +47,7 @@ class WebContentInterceptorTests {
|
|||
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static Stream<Function<String, MockHttpServletRequest>> pathPatternsArguments() {
|
||||
private static Stream<Named<Function<String, MockHttpServletRequest>>> pathPatternsArguments() {
|
||||
return PathPatternsTestUtils.requestArguments();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -19,8 +19,10 @@ package org.springframework.web.servlet.mvc.method.annotation;
|
|||
import java.lang.reflect.Method;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
|
||||
import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
|
||||
|
|
@ -49,6 +51,8 @@ import org.springframework.web.testfixture.servlet.MockHttpServletRequest;
|
|||
import org.springframework.web.testfixture.servlet.MockHttpServletResponse;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
* Test various scenarios for detecting method-level and method parameter annotations depending
|
||||
|
|
@ -60,34 +64,39 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
*/
|
||||
class HandlerMethodAnnotationDetectionTests {
|
||||
|
||||
static Object[][] handlerTypes() {
|
||||
return new Object[][] {
|
||||
{ SimpleController.class, true }, // CGLIB proxy
|
||||
{ SimpleController.class, false },
|
||||
static Stream<Arguments> handlerTypes() {
|
||||
return Stream.of(
|
||||
args(SimpleController.class, true), // CGLIB proxy
|
||||
args(SimpleController.class, false),
|
||||
|
||||
{ AbstractClassController.class, true }, // CGLIB proxy
|
||||
{ AbstractClassController.class, false },
|
||||
args(AbstractClassController.class, true), // CGLIB proxy
|
||||
args(AbstractClassController.class, false),
|
||||
|
||||
{ ParameterizedAbstractClassController.class, true }, // CGLIB proxy
|
||||
{ ParameterizedAbstractClassController.class, false },
|
||||
args(ParameterizedAbstractClassController.class, true), // CGLIB proxy
|
||||
args(ParameterizedAbstractClassController.class, false),
|
||||
|
||||
{ ParameterizedSubclassOverridesDefaultMappings.class, true }, // CGLIB proxy
|
||||
{ ParameterizedSubclassOverridesDefaultMappings.class, false },
|
||||
args(ParameterizedSubclassOverridesDefaultMappings.class, true), // CGLIB proxy
|
||||
args(ParameterizedSubclassOverridesDefaultMappings.class, false),
|
||||
|
||||
// TODO [SPR-9517] Enable ParameterizedSubclassDoesNotOverrideConcreteImplementationsFromGenericAbstractSuperclass test cases
|
||||
// { ParameterizedSubclassDoesNotOverrideConcreteImplementationsFromGenericAbstractSuperclass.class, true }, // CGLIB proxy
|
||||
// { ParameterizedSubclassDoesNotOverrideConcreteImplementationsFromGenericAbstractSuperclass.class, false },
|
||||
// args(ParameterizedSubclassDoesNotOverrideConcreteImplementationsFromGenericAbstractSuperclass.class, true), // CGLIB proxy
|
||||
// args(ParameterizedSubclassDoesNotOverrideConcreteImplementationsFromGenericAbstractSuperclass.class, false),
|
||||
|
||||
// { InterfaceController.class, true }, // JDK dynamic proxy (gh-22154: no longer supported))
|
||||
{ InterfaceController.class, false },
|
||||
// args(InterfaceController.class, true), // JDK dynamic proxy (gh-22154: no longer supported))
|
||||
args(InterfaceController.class, false),
|
||||
|
||||
{ ParameterizedInterfaceController.class, false }, // no AOP
|
||||
args(ParameterizedInterfaceController.class, false), // no AOP
|
||||
|
||||
{ SupportClassController.class, true }, // CGLIB proxy
|
||||
{ SupportClassController.class, false }
|
||||
};
|
||||
args(SupportClassController.class, true), // CGLIB proxy
|
||||
args(SupportClassController.class, false)
|
||||
);
|
||||
}
|
||||
|
||||
private static Arguments args(Class<?> controllerType, boolean useAutoProxy) {
|
||||
return arguments(named(controllerType.getSimpleName(), controllerType), useAutoProxy);
|
||||
}
|
||||
|
||||
|
||||
private RequestMappingHandlerMapping handlerMapping;
|
||||
|
||||
private RequestMappingHandlerAdapter handlerAdapter;
|
||||
|
|
@ -116,9 +125,9 @@ class HandlerMethodAnnotationDetectionTests {
|
|||
}
|
||||
|
||||
|
||||
@ParameterizedTest(name = "[{index}] controller [{0}], auto-proxy [{1}]")
|
||||
@ParameterizedTest(name = "[{index}] controller = {0}, auto-proxy = {1}")
|
||||
@MethodSource("handlerTypes")
|
||||
void testRequestMappingMethod(Class<?> controllerType, boolean useAutoProxy) throws Exception {
|
||||
void requestMappingMethod(Class<?> controllerType, boolean useAutoProxy) throws Exception {
|
||||
setUp(controllerType, useAutoProxy);
|
||||
|
||||
String datePattern = "MM:dd:yyyy";
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -19,6 +19,8 @@ package org.springframework.web.servlet.view;
|
|||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Named;
|
||||
|
||||
import org.springframework.web.servlet.handler.PathPatternsParameterizedTest;
|
||||
import org.springframework.web.servlet.handler.PathPatternsTestUtils;
|
||||
import org.springframework.web.testfixture.servlet.MockHttpServletRequest;
|
||||
|
|
@ -38,59 +40,59 @@ public class DefaultRequestToViewNameTranslatorTests {
|
|||
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static Stream<Function<String, MockHttpServletRequest>> pathPatternsArguments() {
|
||||
private static Stream<Named<Function<String, MockHttpServletRequest>>> pathPatternsArguments() {
|
||||
return PathPatternsTestUtils.requestArguments("/sundays");
|
||||
}
|
||||
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameLeavesLeadingSlashIfSoConfigured(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameLeavesLeadingSlashIfSoConfigured(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME + "/");
|
||||
this.translator.setStripLeadingSlash(false);
|
||||
assertViewName(request, "/" + VIEW_NAME);
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameLeavesTrailingSlashIfSoConfigured(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameLeavesTrailingSlashIfSoConfigured(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME + "/");
|
||||
this.translator.setStripTrailingSlash(false);
|
||||
assertViewName(request, VIEW_NAME + "/");
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameLeavesExtensionIfSoConfigured(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameLeavesExtensionIfSoConfigured(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME + EXTENSION);
|
||||
this.translator.setStripExtension(false);
|
||||
assertViewName(request, VIEW_NAME + EXTENSION);
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameWithDefaultConfiguration(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameWithDefaultConfiguration(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME + EXTENSION);
|
||||
assertViewName(request, VIEW_NAME);
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameWithCustomSeparator(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameWithCustomSeparator(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME + "/fiona" + EXTENSION);
|
||||
this.translator.setSeparator("_");
|
||||
assertViewName(request, VIEW_NAME + "_fiona");
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameWithNoExtension(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameWithNoExtension(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME);
|
||||
assertViewName(request, VIEW_NAME);
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameWithSemicolonContent(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameWithSemicolonContent(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME + ";a=A;b=B");
|
||||
assertViewName(request, VIEW_NAME);
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameWithPrefix(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameWithPrefix(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
final String prefix = "fiona_";
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME);
|
||||
this.translator.setPrefix(prefix);
|
||||
|
|
@ -98,14 +100,14 @@ public class DefaultRequestToViewNameTranslatorTests {
|
|||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameWithNullPrefix(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameWithNullPrefix(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME);
|
||||
this.translator.setPrefix(null);
|
||||
assertViewName(request, VIEW_NAME);
|
||||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameWithSuffix(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameWithSuffix(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
final String suffix = ".fiona";
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME);
|
||||
this.translator.setSuffix(suffix);
|
||||
|
|
@ -113,7 +115,7 @@ public class DefaultRequestToViewNameTranslatorTests {
|
|||
}
|
||||
|
||||
@PathPatternsParameterizedTest
|
||||
void testGetViewNameWithNullSuffix(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
void getViewNameWithNullSuffix(Function<String, MockHttpServletRequest> requestFactory) {
|
||||
MockHttpServletRequest request = requestFactory.apply(VIEW_NAME);
|
||||
this.translator.setSuffix(null);
|
||||
assertViewName(request, VIEW_NAME);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2021 the original author or authors.
|
||||
* Copyright 2002-2022 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.
|
||||
|
|
@ -46,6 +46,7 @@ import org.springframework.web.socket.server.standard.TomcatRequestUpgradeStrate
|
|||
import org.springframework.web.socket.server.standard.UndertowRequestUpgradeStrategy;
|
||||
import org.springframework.web.socket.server.support.DefaultHandshakeHandler;
|
||||
|
||||
import static org.junit.jupiter.api.Named.named;
|
||||
import static org.junit.jupiter.params.provider.Arguments.arguments;
|
||||
|
||||
/**
|
||||
|
|
@ -66,15 +67,15 @@ public abstract class AbstractWebSocketIntegrationTests {
|
|||
|
||||
static Stream<Arguments> argumentsFactory() {
|
||||
return Stream.of(
|
||||
arguments(new JettyWebSocketTestServer(), new JettyWebSocketClient()),
|
||||
arguments(new TomcatWebSocketTestServer(), new StandardWebSocketClient()),
|
||||
arguments(new UndertowTestServer(), new StandardWebSocketClient()));
|
||||
arguments(named("Jetty", new JettyWebSocketTestServer()), named("Jetty", new JettyWebSocketClient())),
|
||||
arguments(named("Tomcat", new TomcatWebSocketTestServer()), named("Standard", new StandardWebSocketClient())),
|
||||
arguments(named("Undertow", new UndertowTestServer()), named("Standard", new StandardWebSocketClient())));
|
||||
}
|
||||
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
@ParameterizedTest(name = "[{index}] server [{0}], client [{1}]")
|
||||
@ParameterizedTest(name = "[{index}] server = {0}, client = {1}")
|
||||
@MethodSource("argumentsFactory")
|
||||
protected @interface ParameterizedWebSocketTest {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -104,6 +104,7 @@
|
|||
<suppress files="ExtractingResponseErrorHandlerTests" checks="MutableException" />
|
||||
<suppress files="ServletAnnotationControllerHandlerMethodTests" checks="InterfaceIsType" />
|
||||
<suppress files="src[\\/]test[\\/]java[\\/]org[\\/]springframework[\\/]web[\\/]servlet[\\/]resource[\\/]GzipSupport" checks="IllegalImport" id="bannedJUnitJupiterImports" />
|
||||
<suppress files="src[\\/]test[\\/]java[\\/]org[\\/]springframework[\\/]web[\\/]servlet[\\/]handler[\\/]PathPatterns.+" checks="IllegalImport" id="bannedJUnitJupiterImports" />
|
||||
|
||||
<!-- spring-websocket -->
|
||||
<suppress files="web[\\/]socket[\\/]CloseStatus" checks="JavadocStyle" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue