Add jdk client buffering test (#5280)
* Add jdk client buffering test
Signed-off-by: jansupol <jan.supol@oracle.com>
diff --git a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/BufferingTest.java b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/BufferingTest.java
index 6963634..18346e8 100644
--- a/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/BufferingTest.java
+++ b/tests/e2e-client/src/test/java/org/glassfish/jersey/tests/e2e/client/BufferingTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2023 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -32,14 +32,22 @@
import org.glassfish.jersey.apache5.connector.Apache5ConnectorProvider;
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.client.ClientProperties;
+import org.glassfish.jersey.client.HttpUrlConnectorProvider;
import org.glassfish.jersey.client.RequestEntityProcessing;
+import org.glassfish.jersey.client.spi.ConnectorProvider;
import org.glassfish.jersey.grizzly.connector.GrizzlyConnectorProvider;
+import org.glassfish.jersey.jdk.connector.JdkConnectorProvider;
import org.glassfish.jersey.logging.LoggingFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import java.util.function.Supplier;
+import java.util.stream.Stream;
/**
* Tests chunk encoding and possibility of buffering the entity.
@@ -65,56 +73,42 @@
}
}
- @Test
- public void testApacheConnector() {
- testWithBuffering(getApacheConnectorConfig());
- testWithChunkEncodingWithoutPropertyDefinition(getApacheConnectorConfig());
- testWithChunkEncodingWithPropertyDefinition(getApacheConnectorConfig());
- testWithChunkEncodingPerRequest(getApacheConnectorConfig());
- testDefaultOption(getApacheConnectorConfig(), RequestEntityProcessing.CHUNKED);
+ public static Stream<Arguments> clientConfigs() {
+ return Stream.of(
+ Arguments.of(new TestArguments(() -> new ApacheConnectorProvider(), RequestEntityProcessing.CHUNKED)),
+ Arguments.of(new TestArguments(() -> new Apache5ConnectorProvider(), RequestEntityProcessing.CHUNKED)),
+ Arguments.of(new TestArguments(() -> new GrizzlyConnectorProvider(), RequestEntityProcessing.CHUNKED)),
+ Arguments.of(new TestArguments(() -> new HttpUrlConnectorProvider(), RequestEntityProcessing.BUFFERED)),
+ Arguments.of(new TestArguments(() -> new JdkConnectorProvider(), RequestEntityProcessing.BUFFERED))
+ );
}
- @Test
- public void testApache5Connector() {
- testWithBuffering(getApache5ConnectorConfig());
- testWithChunkEncodingWithoutPropertyDefinition(getApache5ConnectorConfig());
- testWithChunkEncodingWithPropertyDefinition(getApache5ConnectorConfig());
- testWithChunkEncodingPerRequest(getApache5ConnectorConfig());
- testDefaultOption(getApache5ConnectorConfig(), RequestEntityProcessing.CHUNKED);
+ private static final class TestArguments {
+ private final Supplier<ConnectorProvider> connectorProviderSupplier;
+ private final RequestEntityProcessing defaultProcessing;
+
+ private TestArguments(Supplier<ConnectorProvider> connectorProviderSupplier, RequestEntityProcessing defaultProcessing) {
+ this.connectorProviderSupplier = connectorProviderSupplier;
+ this.defaultProcessing = defaultProcessing;
+ }
+
+ private ClientConfig clientConfig() {
+ return new ClientConfig().connectorProvider(connectorProviderSupplier.get());
+ }
+
+ private RequestEntityProcessing defaultProcessing() {
+ return defaultProcessing;
+ }
}
- @Test
- public void testGrizzlyConnector() {
- testWithBuffering(getGrizzlyConnectorConfig());
- testWithChunkEncodingWithoutPropertyDefinition(getGrizzlyConnectorConfig());
- testWithChunkEncodingWithPropertyDefinition(getGrizzlyConnectorConfig());
- testWithChunkEncodingPerRequest(getGrizzlyConnectorConfig());
- testDefaultOption(getGrizzlyConnectorConfig(), RequestEntityProcessing.CHUNKED);
- }
-
- @Test
- public void testHttpUrlConnector() {
- testWithBuffering(getHttpUrlConnectorConfig());
- testWithChunkEncodingWithoutPropertyDefinition(getHttpUrlConnectorConfig());
- testWithChunkEncodingWithPropertyDefinition(getHttpUrlConnectorConfig());
- testWithChunkEncodingPerRequest(getHttpUrlConnectorConfig());
- testDefaultOption(getHttpUrlConnectorConfig(), RequestEntityProcessing.BUFFERED);
- }
-
- private ClientConfig getApacheConnectorConfig() {
- return new ClientConfig().connectorProvider(new ApacheConnectorProvider());
- }
-
- private ClientConfig getApache5ConnectorConfig() {
- return new ClientConfig().connectorProvider(new Apache5ConnectorProvider());
- }
-
- private ClientConfig getGrizzlyConnectorConfig() {
- return new ClientConfig().connectorProvider(new GrizzlyConnectorProvider());
- }
-
- private ClientConfig getHttpUrlConnectorConfig() {
- return new ClientConfig();
+ @ParameterizedTest
+ @MethodSource("clientConfigs")
+ public void testConnector(TestArguments arguments) {
+ testWithBuffering(arguments.clientConfig());
+ testWithChunkEncodingWithoutPropertyDefinition(arguments.clientConfig());
+ testWithChunkEncodingWithPropertyDefinition(arguments.clientConfig());
+ testWithChunkEncodingPerRequest(arguments.clientConfig());
+ testDefaultOption(arguments.clientConfig(), arguments.defaultProcessing());
}
private void testDefaultOption(ClientConfig cc, RequestEntityProcessing mode) {