This is an automated email from the ASF dual-hosted git repository. maciej pushed a commit to branch java-integration-tests in repository https://gitbox.apache.org/repos/asf/iggy.git
commit 8c74a87d2c7ca4ba6a29b892cc77966b05f79ccf Author: Maciej Modzelewski <[email protected]> AuthorDate: Mon Feb 16 22:06:12 2026 +0100 refactor(java): extract base integration test and decouple from container internals Tests directly accessed container details (host, mapped ports) and the blocking IntegrationTest class owned all Testcontainers lifecycle, forcing async tests to extend it despite not needing its blocking-client scaffolding. --- .../apache/iggy/client/BaseIntegrationTest.java | 87 ++++++++++++ .../client/async/AsyncClientIntegrationTest.java | 6 +- .../iggy/client/async/AsyncPollMessageTest.java | 8 +- .../async/tcp/AsyncIggyTcpClientBuilderTest.java | 146 +++++++++++++-------- .../iggy/client/blocking/IntegrationTest.java | 56 +------- .../http/ConsumerGroupsHttpClientTest.java | 2 +- .../http/ConsumerOffsetsHttpClientTest.java | 2 +- .../client/blocking/http/HttpClientFactory.java | 15 +-- .../blocking/http/MessagesHttpClientTest.java | 2 +- .../blocking/http/PartitionsHttpClientTest.java | 2 +- .../http/PersonalAccessTokensHttpClientTest.java | 2 +- .../client/blocking/http/StreamHttpClientTest.java | 2 +- .../client/blocking/http/SystemHttpClientTest.java | 2 +- .../client/blocking/http/TopicsHttpClientTest.java | 2 +- .../client/blocking/http/UsersHttpClientTest.java | 2 +- .../blocking/tcp/ConsumerGroupsTcpClientTest.java | 2 +- .../blocking/tcp/ConsumerOffsetsTcpClientTest.java | 2 +- .../blocking/tcp/IggyTcpClientBuilderTest.java | 44 +++---- .../client/blocking/tcp/MessagesTcpClientTest.java | 2 +- .../blocking/tcp/PartitionsTcpClientTest.java | 2 +- .../tcp/PersonalAccessTokensTcpClientTest.java | 2 +- .../client/blocking/tcp/StreamTcpClientTest.java | 2 +- .../client/blocking/tcp/SystemTcpClientTest.java | 2 +- .../iggy/client/blocking/tcp/TcpClientFactory.java | 17 +-- .../client/blocking/tcp/TopicsTcpClientTest.java | 2 +- .../client/blocking/tcp/UsersTcpClientTest.java | 2 +- 26 files changed, 232 insertions(+), 183 deletions(-) diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/BaseIntegrationTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/BaseIntegrationTest.java new file mode 100644 index 000000000..98ca95424 --- /dev/null +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/BaseIntegrationTest.java @@ -0,0 +1,87 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iggy.client; + +import com.github.dockerjava.api.model.Capability; +import com.github.dockerjava.api.model.Ulimit; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.utility.DockerImageName; + +import java.util.List; + +@Testcontainers +public abstract class BaseIntegrationTest { + + private static final String LOCALHOST_IP = "127.0.0.1"; + private static final int HTTP_PORT = 3000; + private static final int TCP_PORT = 8090; + protected static GenericContainer<?> iggyServer; + private static final Logger log = LoggerFactory.getLogger(BaseIntegrationTest.class); + private static final boolean USE_EXTERNAL_SERVER = System.getenv("USE_EXTERNAL_SERVER") != null; + + public static int serverTcpPort() { + return USE_EXTERNAL_SERVER ? TCP_PORT : iggyServer.getMappedPort(TCP_PORT); + } + + public static int serverHttpPort() { + return USE_EXTERNAL_SERVER ? HTTP_PORT : iggyServer.getMappedPort(HTTP_PORT); + } + + public static String serverHost() { + return USE_EXTERNAL_SERVER ? LOCALHOST_IP : iggyServer.getHost(); + } + + @BeforeAll + static void setupContainer() { + if (!USE_EXTERNAL_SERVER) { + log.info("Starting Iggy Server Container..."); + iggyServer = new GenericContainer<>(DockerImageName.parse("apache/iggy:edge")) + .withExposedPorts(HTTP_PORT, TCP_PORT) + .withEnv("IGGY_ROOT_USERNAME", "iggy") + .withEnv("IGGY_ROOT_PASSWORD", "iggy") + .withEnv("IGGY_TCP_ADDRESS", "0.0.0.0:8090") + .withEnv("IGGY_HTTP_ADDRESS", "0.0.0.0:3000") + .withCreateContainerCmdModifier(cmd -> cmd.getHostConfig() + .withCapAdd(Capability.SYS_NICE) + .withSecurityOpts(List.of("seccomp:unconfined")) + .withUlimits(List.of(new Ulimit("memlock", -1L, -1L)))) + .withLogConsumer(frame -> System.out.print(frame.getUtf8String())); + iggyServer.start(); + } else { + log.info("Using external Iggy Server"); + } + } + + @AfterAll + static void stopContainer() { + if (iggyServer != null && iggyServer.isRunning()) { + // Print last logs before stopping + System.out.println("=== Iggy Server Container Logs ==="); + System.out.println(iggyServer.getLogs()); + System.out.println("================================="); + iggyServer.stop(); + } + } +} diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncClientIntegrationTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncClientIntegrationTest.java index 41af17b60..f529cffc7 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncClientIntegrationTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncClientIntegrationTest.java @@ -19,8 +19,8 @@ package org.apache.iggy.client.async; +import org.apache.iggy.client.BaseIntegrationTest; import org.apache.iggy.client.async.tcp.AsyncIggyTcpClient; -import org.apache.iggy.client.blocking.IntegrationTest; import org.apache.iggy.consumergroup.Consumer; import org.apache.iggy.identifier.StreamId; import org.apache.iggy.identifier.TopicId; @@ -53,7 +53,7 @@ import static org.assertj.core.api.Assertions.assertThat; * Tests connection, authentication, stream/topic management, and message operations. */ @TestMethodOrder(MethodOrderer.OrderAnnotation.class) -public abstract class AsyncClientIntegrationTest extends IntegrationTest { +public class AsyncClientIntegrationTest extends BaseIntegrationTest { private static final Logger log = LoggerFactory.getLogger(AsyncClientIntegrationTest.class); private static final String USERNAME = "iggy"; @@ -68,7 +68,7 @@ public abstract class AsyncClientIntegrationTest extends IntegrationTest { @BeforeAll public static void setup() throws Exception { log.info("Setting up async client for integration tests"); - client = new AsyncIggyTcpClient(LOCALHOST_IP, tcpPort()); + client = new AsyncIggyTcpClient(serverHost(), serverTcpPort()); // Connect and login client.connect() diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncPollMessageTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncPollMessageTest.java index 18233e759..62011dd60 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncPollMessageTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/AsyncPollMessageTest.java @@ -19,8 +19,8 @@ package org.apache.iggy.client.async; +import org.apache.iggy.client.BaseIntegrationTest; import org.apache.iggy.client.async.tcp.AsyncIggyTcpClient; -import org.apache.iggy.client.blocking.IntegrationTest; import org.apache.iggy.consumergroup.Consumer; import org.apache.iggy.identifier.StreamId; import org.apache.iggy.identifier.TopicId; @@ -58,7 +58,7 @@ import static org.assertj.core.api.Assertions.assertThat; * 3. Polling with valid consumer group member works correctly */ @TestMethodOrder(MethodOrderer.OrderAnnotation.class) -public abstract class AsyncPollMessageTest extends IntegrationTest { +public abstract class AsyncPollMessageTest extends BaseIntegrationTest { private static final Logger log = LoggerFactory.getLogger(AsyncPollMessageTest.class); private static AsyncIggyTcpClient client; @@ -80,7 +80,7 @@ public abstract class AsyncPollMessageTest extends IntegrationTest { // Ignore close errors } } - client = new AsyncIggyTcpClient(LOCALHOST_IP, tcpPort()); + client = new AsyncIggyTcpClient(serverHost(), serverTcpPort()); client.connect().get(5, TimeUnit.SECONDS); client.users().login("iggy", "iggy").get(5, TimeUnit.SECONDS); log.info("Client reconnected successfully"); @@ -102,7 +102,7 @@ public abstract class AsyncPollMessageTest extends IntegrationTest { log.info("Setting up async client for poll message tests"); // Initialize client - client = new AsyncIggyTcpClient(LOCALHOST_IP, tcpPort()); + client = new AsyncIggyTcpClient(serverHost(), serverTcpPort()); client.connect().get(5, TimeUnit.SECONDS); client.users().login("iggy", "iggy").get(5, TimeUnit.SECONDS); log.info("Successfully connected and logged in"); diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientBuilderTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientBuilderTest.java index db8aa9bae..aa27421dd 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientBuilderTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientBuilderTest.java @@ -19,8 +19,7 @@ package org.apache.iggy.client.async.tcp; -import org.apache.iggy.client.blocking.IggyBaseClient; -import org.apache.iggy.client.blocking.IntegrationTest; +import org.apache.iggy.client.BaseIntegrationTest; import org.apache.iggy.config.RetryPolicy; import org.apache.iggy.exception.IggyInvalidArgumentException; import org.apache.iggy.exception.IggyMissingCredentialsException; @@ -42,7 +41,7 @@ import static org.junit.jupiter.api.Assumptions.assumeTrue; * Integration tests for AsyncIggyTcpClient builder pattern. * Tests the builder functionality against a running Iggy server. */ -class AsyncIggyTcpClientBuilderTest extends IntegrationTest { +class AsyncIggyTcpClientBuilderTest extends BaseIntegrationTest { private static final String TEST_USERNAME = "iggy"; private static final String TEST_PASSWORD = "iggy"; @@ -60,7 +59,10 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void shouldCreateClientWithBuilder() throws Exception { // Given: Builder with basic configuration - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(tcpPort()).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); // When: Connect to server client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -94,7 +96,7 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { void shouldThrowExceptionForEmptyHost() { // Given: Builder with empty host AsyncIggyTcpClientBuilder builder = - AsyncIggyTcpClient.builder().host("").port(TCP_PORT); + AsyncIggyTcpClient.builder().host("").port(serverTcpPort()); // When/Then: Building should throw IggyInvalidArgumentException assertThrows(IggyInvalidArgumentException.class, builder::build); @@ -104,7 +106,7 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { void shouldThrowExceptionForNullHost() { // Given: Builder with null host AsyncIggyTcpClientBuilder builder = - AsyncIggyTcpClient.builder().host(null).port(TCP_PORT); + AsyncIggyTcpClient.builder().host(null).port(serverTcpPort()); // When/Then: Building should throw IggyInvalidArgumentException assertThrows(IggyInvalidArgumentException.class, builder::build); @@ -114,7 +116,7 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { void shouldThrowExceptionForInvalidPort() { // Given: Builder with invalid port AsyncIggyTcpClientBuilder builder = - AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(-1); + AsyncIggyTcpClient.builder().host(serverHost()).port(-1); // When/Then: Building should throw IggyInvalidArgumentException assertThrows(IggyInvalidArgumentException.class, builder::build); @@ -124,7 +126,7 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { void shouldThrowExceptionForZeroPort() { // Given: Builder with zero port AsyncIggyTcpClientBuilder builder = - AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(0); + AsyncIggyTcpClient.builder().host(serverHost()).port(0); // When/Then: Building should throw IggyInvalidArgumentException assertThrows(IggyInvalidArgumentException.class, builder::build); @@ -133,7 +135,7 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void shouldMaintainBackwardCompatibilityWithOldConstructor() throws Exception { // Given: Old constructor approach - client = new AsyncIggyTcpClient(LOCALHOST_IP, tcpPort()); + client = new AsyncIggyTcpClient(serverHost(), serverTcpPort()); // When: Connect to server client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -145,7 +147,10 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void shouldConnectAndPerformOperations() throws Exception { // Given: Client - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(tcpPort()).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); // When: Connect client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -161,7 +166,10 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void shouldCloseConnectionGracefully() throws Exception { // Given: Connected client - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(tcpPort()).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); client.connect().get(5, TimeUnit.SECONDS); // When: Close connection @@ -176,8 +184,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testThrowExceptionWhenLoginBeforeConnect() { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(TCP_PORT) + .host(serverHost()) + .port(serverTcpPort()) .credentials(TEST_USERNAME, TEST_PASSWORD) .build(); @@ -186,42 +194,60 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testThrowExceptionWhenAccessingUsersBeforeConnect() { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); assertThrows(IggyNotConnectedException.class, () -> client.users()); } @Test void testThrowExceptionWhenAccessingMessagesBeforeConnect() { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); assertThrows(IggyNotConnectedException.class, () -> client.messages()); } @Test void testThrowExceptionWhenAccessingStreamsBeforeConnect() { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); assertThrows(IggyNotConnectedException.class, () -> client.streams()); } @Test void testThrowExceptionWhenAccessingTopicsBeforeConnect() { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); assertThrows(IggyNotConnectedException.class, () -> client.topics()); } @Test void testThrowExceptionWhenAccessingConsumerGroupsBeforeConnect() { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); assertThrows(IggyNotConnectedException.class, () -> client.consumerGroups()); } @Test void testThrowExceptionWhenLoginWithoutCredentials() throws Exception { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(tcpPort()).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); client.connect().get(5, TimeUnit.SECONDS); assertThrows(IggyMissingCredentialsException.class, () -> client.login()); @@ -230,23 +256,27 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testThrowExceptionWhenBuildAndLoginWithoutCredentials() { AsyncIggyTcpClientBuilder builder = - AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT); + AsyncIggyTcpClient.builder().host(serverHost()).port(serverTcpPort()); assertThrows(IggyMissingCredentialsException.class, builder::buildAndLogin); } @Test void testThrowExceptionWhenBuildAndLoginWithNullUsername() { - AsyncIggyTcpClientBuilder builder = - AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT).credentials(null, TEST_PASSWORD); + AsyncIggyTcpClientBuilder builder = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .credentials(null, TEST_PASSWORD); assertThrows(IggyMissingCredentialsException.class, builder::buildAndLogin); } @Test void testThrowExceptionWhenBuildAndLoginWithNullPassword() { - AsyncIggyTcpClientBuilder builder = - AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT).credentials(TEST_USERNAME, null); + AsyncIggyTcpClientBuilder builder = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .credentials(TEST_USERNAME, null); assertThrows(IggyMissingCredentialsException.class, builder::buildAndLogin); } @@ -254,8 +284,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithCredentials() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .credentials(TEST_USERNAME, TEST_PASSWORD) .build(); client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -266,8 +296,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithConnectionTimeout() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .connectionTimeout(Duration.ofSeconds(10)) .build(); client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -278,8 +308,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithRequestTimeout() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .requestTimeout(Duration.ofSeconds(30)) .build(); client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -290,8 +320,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithConnectionPoolSize() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .connectionPoolSize(5) .build(); client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -302,8 +332,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithExponentialBackoffRetryPolicy() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .retryPolicy(RetryPolicy.exponentialBackoff()) .build(); client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -314,8 +344,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithFixedDelayRetryPolicy() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .retryPolicy(RetryPolicy.fixedDelay(3, Duration.ofMillis(100))) .build(); client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -326,8 +356,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithNoRetryPolicy() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .retryPolicy(RetryPolicy.noRetry()) .build(); client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -338,8 +368,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithTlsBoolean() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .tls(false) .build(); client.connect().get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -350,8 +380,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithEnableTls() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(TCP_PORT) + .host(serverHost()) + .port(serverTcpPort()) .enableTls() .build(); @@ -361,8 +391,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildClientWithAllConfigurationOptions() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .credentials(TEST_USERNAME, TEST_PASSWORD) .connectionTimeout(Duration.ofSeconds(10)) .requestTimeout(Duration.ofSeconds(30)) @@ -382,8 +412,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildAndLoginSuccessfully() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .credentials(TEST_USERNAME, TEST_PASSWORD) .buildAndLogin() .get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -397,7 +427,10 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testHandleCloseOnUnconnectedClient() throws Exception { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(TCP_PORT).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); CompletableFuture<Void> closeFuture = client.close(); closeFuture.get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); @@ -408,7 +441,10 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testHandleMultipleCloseCalls() throws Exception { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(tcpPort()).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); client.connect().get(5, TimeUnit.SECONDS); CompletableFuture<Void> firstClose = client.close(); @@ -446,8 +482,8 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildConnectAndLoginManually() throws Exception { client = AsyncIggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .credentials(TEST_USERNAME, TEST_PASSWORD) .build(); @@ -459,16 +495,14 @@ class AsyncIggyTcpClientBuilderTest extends IntegrationTest { @Test void testBuildAndConnectWithoutCredentialsThenLoginExplicitly() throws Exception { - client = AsyncIggyTcpClient.builder().host(LOCALHOST_IP).port(tcpPort()).build(); + client = AsyncIggyTcpClient.builder() + .host(serverHost()) + .port(serverTcpPort()) + .build(); client.connect().get(5, TimeUnit.SECONDS); client.users().login(TEST_USERNAME, TEST_PASSWORD).get(TEST_TIMEOUT_SECONDS, TimeUnit.SECONDS); assertNotNull(client.users()); } - - @Override - protected IggyBaseClient getClient() { - return null; - } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/IntegrationTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/IntegrationTest.java index c539d8e16..c41b0f75a 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/IntegrationTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/IntegrationTest.java @@ -19,19 +19,11 @@ package org.apache.iggy.client.blocking; -import com.github.dockerjava.api.model.Capability; -import com.github.dockerjava.api.model.Ulimit; +import org.apache.iggy.client.BaseIntegrationTest; import org.apache.iggy.stream.StreamDetails; import org.apache.iggy.topic.CompressionAlgorithm; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; import java.math.BigInteger; import java.util.ArrayList; @@ -41,57 +33,13 @@ import static java.util.Optional.empty; import static org.apache.iggy.TestConstants.STREAM_NAME; import static org.apache.iggy.TestConstants.TOPIC_NAME; -@Testcontainers -public abstract class IntegrationTest { - - public static final String LOCALHOST_IP = "127.0.0.1"; - public static final int HTTP_PORT = 3000; - public static final int TCP_PORT = 8090; - protected static GenericContainer<?> iggyServer; - private static final Logger log = LoggerFactory.getLogger(IntegrationTest.class); - private static final boolean USE_EXTERNAL_SERVER = System.getenv("USE_EXTERNAL_SERVER") != null; +public abstract class IntegrationTest extends BaseIntegrationTest { // Track created resources for cleanup protected List<Long> createdStreamIds = new ArrayList<>(); protected List<Long> createdUserIds = new ArrayList<>(); protected IggyBaseClient client; - public static int tcpPort() { - return USE_EXTERNAL_SERVER ? TCP_PORT : iggyServer.getMappedPort(TCP_PORT); - } - - @BeforeAll - static void setupContainer() { - if (!USE_EXTERNAL_SERVER) { - log.info("Starting Iggy Server Container..."); - iggyServer = new GenericContainer<>(DockerImageName.parse("apache/iggy:edge")) - .withExposedPorts(HTTP_PORT, TCP_PORT) - .withEnv("IGGY_ROOT_USERNAME", "iggy") - .withEnv("IGGY_ROOT_PASSWORD", "iggy") - .withEnv("IGGY_TCP_ADDRESS", "0.0.0.0:8090") - .withEnv("IGGY_HTTP_ADDRESS", "0.0.0.0:3000") - .withCreateContainerCmdModifier(cmd -> cmd.getHostConfig() - .withCapAdd(Capability.SYS_NICE) - .withSecurityOpts(List.of("seccomp:unconfined")) - .withUlimits(List.of(new Ulimit("memlock", -1L, -1L)))) - .withLogConsumer(frame -> System.out.print(frame.getUtf8String())); - iggyServer.start(); - } else { - log.info("Using external Iggy Server"); - } - } - - @AfterAll - static void stopContainer() { - if (iggyServer != null && iggyServer.isRunning()) { - // Print last logs before stopping - System.out.println("=== Iggy Server Container Logs ==="); - System.out.println(iggyServer.getLogs()); - System.out.println("================================="); - iggyServer.stop(); - } - } - @BeforeEach void beforeEachIntegrationTest() { client = getClient(); diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/ConsumerGroupsHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/ConsumerGroupsHttpClientTest.java index 538f3d913..64db4e016 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/ConsumerGroupsHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/ConsumerGroupsHttpClientTest.java @@ -26,6 +26,6 @@ class ConsumerGroupsHttpClientTest extends ConsumerGroupsClientBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/ConsumerOffsetsHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/ConsumerOffsetsHttpClientTest.java index deec22dc6..f2a7b3dfa 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/ConsumerOffsetsHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/ConsumerOffsetsHttpClientTest.java @@ -26,6 +26,6 @@ class ConsumerOffsetsHttpClientTest extends ConsumerOffsetsClientBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/HttpClientFactory.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/HttpClientFactory.java index 6f17c9ac6..842048b66 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/HttpClientFactory.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/HttpClientFactory.java @@ -19,22 +19,13 @@ package org.apache.iggy.client.blocking.http; -import org.testcontainers.containers.GenericContainer; - -import static org.apache.iggy.client.blocking.IntegrationTest.HTTP_PORT; -import static org.apache.iggy.client.blocking.IntegrationTest.LOCALHOST_IP; +import org.apache.iggy.Iggy; final class HttpClientFactory { private HttpClientFactory() {} - static IggyHttpClient create(GenericContainer<?> iggyServer) { - if (iggyServer == null) { - // Server is running externally - return new IggyHttpClient("http://" + LOCALHOST_IP + ":" + HTTP_PORT); - } - String address = iggyServer.getHost(); - Integer port = iggyServer.getMappedPort(HTTP_PORT); - return new IggyHttpClient("http://" + address + ":" + port); + static IggyHttpClient create(String host, int port) { + return Iggy.httpClientBuilder().blocking().host(host).port(port).build(); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/MessagesHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/MessagesHttpClientTest.java index 5e4521e5a..30459db0b 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/MessagesHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/MessagesHttpClientTest.java @@ -26,6 +26,6 @@ class MessagesHttpClientTest extends MessagesClientBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/PartitionsHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/PartitionsHttpClientTest.java index 9330eac25..03dbb918b 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/PartitionsHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/PartitionsHttpClientTest.java @@ -26,6 +26,6 @@ class PartitionsHttpClientTest extends PartitionsClientBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/PersonalAccessTokensHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/PersonalAccessTokensHttpClientTest.java index 6ea9c085b..f6bc8011a 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/PersonalAccessTokensHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/PersonalAccessTokensHttpClientTest.java @@ -26,6 +26,6 @@ class PersonalAccessTokensHttpClientTest extends PersonalAccessTokensBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/StreamHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/StreamHttpClientTest.java index 0368d2664..30ae81b5c 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/StreamHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/StreamHttpClientTest.java @@ -26,6 +26,6 @@ class StreamHttpClientTest extends StreamClientBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/SystemHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/SystemHttpClientTest.java index 4e8610428..acff8a2b0 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/SystemHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/SystemHttpClientTest.java @@ -26,6 +26,6 @@ class SystemHttpClientTest extends SystemClientBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/TopicsHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/TopicsHttpClientTest.java index 603c4499c..74d23669a 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/TopicsHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/TopicsHttpClientTest.java @@ -26,6 +26,6 @@ class TopicsHttpClientTest extends TopicsClientBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/UsersHttpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/UsersHttpClientTest.java index 92bc68735..a180cc0c2 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/UsersHttpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/http/UsersHttpClientTest.java @@ -29,7 +29,7 @@ class UsersHttpClientTest extends UsersClientBaseTest { @Override protected IggyBaseClient getClient() { - return HttpClientFactory.create(iggyServer); + return HttpClientFactory.create(serverHost(), serverHttpPort()); } @Test diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/ConsumerGroupsTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/ConsumerGroupsTcpClientTest.java index e9c458177..9ed756555 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/ConsumerGroupsTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/ConsumerGroupsTcpClientTest.java @@ -32,7 +32,7 @@ class ConsumerGroupsTcpClientTest extends ConsumerGroupsClientBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } @Test diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/ConsumerOffsetsTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/ConsumerOffsetsTcpClientTest.java index 4676ed555..be8547431 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/ConsumerOffsetsTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/ConsumerOffsetsTcpClientTest.java @@ -26,6 +26,6 @@ class ConsumerOffsetsTcpClientTest extends ConsumerOffsetsClientBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/IggyTcpClientBuilderTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/IggyTcpClientBuilderTest.java index 433336906..b2e523975 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/IggyTcpClientBuilderTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/IggyTcpClientBuilderTest.java @@ -41,15 +41,15 @@ class IggyTcpClientBuilderTest extends IntegrationTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } @Test void shouldCreateClientWithBuilder() { // Given: Builder with basic configuration and credentials IggyTcpClient client = IggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .credentials("iggy", "iggy") .buildAndLogin(); @@ -62,8 +62,8 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldCreateClientWithCredentials() { // Given: Builder with credentials configured IggyTcpClient client = IggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .credentials("iggy", "iggy") .buildAndLogin(); @@ -77,8 +77,8 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldCreateClientWithTimeoutConfiguration() { // Given: Builder with timeout configuration IggyTcpClient client = IggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .connectionTimeout(Duration.ofSeconds(30)) .requestTimeout(Duration.ofSeconds(10)) .credentials("iggy", "iggy") @@ -93,8 +93,8 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldCreateClientWithConnectionPoolSize() { // Given: Builder with connection pool size IggyTcpClient client = IggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .connectionPoolSize(10) .credentials("iggy", "iggy") .buildAndLogin(); @@ -108,8 +108,8 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldCreateClientWithRetryPolicy() { // Given: Builder with exponential backoff retry policy IggyTcpClient client = IggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .retryPolicy(RetryPolicy.exponentialBackoff()) .credentials("iggy", "iggy") .buildAndLogin(); @@ -123,8 +123,8 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldCreateClientWithCustomRetryPolicy() { // Given: Builder with custom retry policy IggyTcpClient client = IggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .retryPolicy(RetryPolicy.fixedDelay(5, Duration.ofMillis(500))) .credentials("iggy", "iggy") .buildAndLogin(); @@ -138,8 +138,8 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldCreateClientWithNoRetryPolicy() { // Given: Builder with no retry policy IggyTcpClient client = IggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .retryPolicy(RetryPolicy.noRetry()) .credentials("iggy", "iggy") .buildAndLogin(); @@ -153,8 +153,8 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldCreateClientWithAllOptions() { // Given: Builder with all configuration options IggyTcpClient client = IggyTcpClient.builder() - .host(LOCALHOST_IP) - .port(tcpPort()) + .host(serverHost()) + .port(serverTcpPort()) .connectionTimeout(Duration.ofSeconds(30)) .requestTimeout(Duration.ofSeconds(10)) .connectionPoolSize(10) @@ -186,7 +186,7 @@ class IggyTcpClientBuilderTest extends IntegrationTest { @Test void shouldThrowExceptionForEmptyHost() { // Given: Builder with empty host - IggyTcpClientBuilder builder = IggyTcpClient.builder().host("").port(TCP_PORT); + IggyTcpClientBuilder builder = IggyTcpClient.builder().host("").port(serverTcpPort()); // When/Then: Building should throw IggyInvalidArgumentException assertThrows(IggyInvalidArgumentException.class, builder::build); @@ -195,7 +195,7 @@ class IggyTcpClientBuilderTest extends IntegrationTest { @Test void shouldThrowExceptionForNullHost() { // Given: Builder with null host - IggyTcpClientBuilder builder = IggyTcpClient.builder().host(null).port(TCP_PORT); + IggyTcpClientBuilder builder = IggyTcpClient.builder().host(null).port(serverTcpPort()); // When/Then: Building should throw IggyInvalidArgumentException assertThrows(IggyInvalidArgumentException.class, builder::build); @@ -205,7 +205,7 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldThrowExceptionForInvalidPort() { // Given: Builder with invalid port IggyTcpClientBuilder builder = - IggyTcpClient.builder().host(LOCALHOST_IP).port(-1); + IggyTcpClient.builder().host(serverHost()).port(-1); // When/Then: Building should throw IggyInvalidArgumentException assertThrows(IggyInvalidArgumentException.class, builder::build); @@ -215,7 +215,7 @@ class IggyTcpClientBuilderTest extends IntegrationTest { void shouldThrowExceptionForZeroPort() { // Given: Builder with zero port IggyTcpClientBuilder builder = - IggyTcpClient.builder().host(LOCALHOST_IP).port(0); + IggyTcpClient.builder().host(serverHost()).port(0); // When/Then: Building should throw IggyInvalidArgumentException assertThrows(IggyInvalidArgumentException.class, builder::build); @@ -224,7 +224,7 @@ class IggyTcpClientBuilderTest extends IntegrationTest { @Test void shouldWorkWithConstructorAndExplicitConnect() { // Given: Constructor approach with explicit connect - IggyTcpClient client = new IggyTcpClient(LOCALHOST_IP, tcpPort()); + IggyTcpClient client = new IggyTcpClient(serverHost(), serverTcpPort()); // When: Connect, login and perform operation client.connect(); diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/MessagesTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/MessagesTcpClientTest.java index 7b14f24c0..aabdf19e0 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/MessagesTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/MessagesTcpClientTest.java @@ -26,6 +26,6 @@ class MessagesTcpClientTest extends MessagesClientBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/PartitionsTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/PartitionsTcpClientTest.java index 763754ddb..67de7fa82 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/PartitionsTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/PartitionsTcpClientTest.java @@ -26,6 +26,6 @@ class PartitionsTcpClientTest extends PartitionsClientBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/PersonalAccessTokensTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/PersonalAccessTokensTcpClientTest.java index c40857c5d..c2e4cc874 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/PersonalAccessTokensTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/PersonalAccessTokensTcpClientTest.java @@ -26,6 +26,6 @@ class PersonalAccessTokensTcpClientTest extends PersonalAccessTokensBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/StreamTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/StreamTcpClientTest.java index ac490c088..a3954f189 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/StreamTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/StreamTcpClientTest.java @@ -26,6 +26,6 @@ class StreamTcpClientTest extends StreamClientBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/SystemTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/SystemTcpClientTest.java index e752a48c0..db00a876f 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/SystemTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/SystemTcpClientTest.java @@ -33,7 +33,7 @@ class SystemTcpClientTest extends SystemClientBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } @Test diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/TcpClientFactory.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/TcpClientFactory.java index d7be63057..cac9f02e5 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/TcpClientFactory.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/TcpClientFactory.java @@ -19,25 +19,14 @@ package org.apache.iggy.client.blocking.tcp; -import org.testcontainers.containers.GenericContainer; - -import static org.apache.iggy.client.blocking.IntegrationTest.LOCALHOST_IP; -import static org.apache.iggy.client.blocking.IntegrationTest.TCP_PORT; +import org.apache.iggy.Iggy; final class TcpClientFactory { private TcpClientFactory() {} - static IggyTcpClient create(GenericContainer<?> iggyServer) { - IggyTcpClient client; - if (iggyServer == null) { - // Server is running externally - client = new IggyTcpClient(LOCALHOST_IP, TCP_PORT); - } else { - String address = iggyServer.getHost(); - Integer port = iggyServer.getMappedPort(TCP_PORT); - client = new IggyTcpClient(address, port); - } + static IggyTcpClient create(String host, int port) { + var client = Iggy.tcpClientBuilder().blocking().host(host).port(port).build(); client.connect(); return client; } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/TopicsTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/TopicsTcpClientTest.java index 926fb9782..6e5e80f14 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/TopicsTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/TopicsTcpClientTest.java @@ -26,6 +26,6 @@ class TopicsTcpClientTest extends TopicsClientBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } } diff --git a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/UsersTcpClientTest.java b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/UsersTcpClientTest.java index 5066b0eb8..3745aeb4b 100644 --- a/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/UsersTcpClientTest.java +++ b/foreign/java/java-sdk/src/test/java/org/apache/iggy/client/blocking/tcp/UsersTcpClientTest.java @@ -30,7 +30,7 @@ class UsersTcpClientTest extends UsersClientBaseTest { @Override protected IggyBaseClient getClient() { - return TcpClientFactory.create(iggyServer); + return TcpClientFactory.create(serverHost(), serverTcpPort()); } @BeforeEach
