From ae6405fa0b5044788c5cd5b9d8a2d877459a3086 Mon Sep 17 00:00:00 2001 From: SBushmelev Date: Sun, 20 Jul 2025 18:49:18 +0400 Subject: [PATCH 1/3] Add method getHttpUrl for ClickHouseContainer --- .../testcontainers/clickhouse/ClickHouseContainer.java | 4 ++++ .../clickhouse/ClickHouseContainerTest.java | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/modules/clickhouse/src/main/java/org/testcontainers/clickhouse/ClickHouseContainer.java b/modules/clickhouse/src/main/java/org/testcontainers/clickhouse/ClickHouseContainer.java index d3256124de1..02a02267ec5 100644 --- a/modules/clickhouse/src/main/java/org/testcontainers/clickhouse/ClickHouseContainer.java +++ b/modules/clickhouse/src/main/java/org/testcontainers/clickhouse/ClickHouseContainer.java @@ -101,6 +101,10 @@ public String getJdbcUrl() { ); } + public String getHttpUrl() { + return "http://" + getHost() + ":" + getMappedPort(HTTP_PORT); + } + @Override public String getUsername() { return username; diff --git a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java index d5389b610c4..e13eddd8ff4 100644 --- a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java +++ b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java @@ -56,4 +56,13 @@ public void testNewAuth() throws SQLException { assertThat(resultSetInt).isEqualTo(1); } } + + @Test + public void getHttpUrlTest() { + try (ClickHouseContainer clickhouse = new ClickHouseContainer(ClickhouseTestImages.CLICKHOUSE_24_12_IMAGE)) { + clickhouse.start(); + assertThat(clickhouse.getHttpUrl()).isEqualTo("http://" + clickhouse.getHost() + ":" + clickhouse.getMappedPort(ClickHouseContainer.HTTP_PORT)); + } + } + } From f5395a99cf79d86777cb1077455583f6e46e3a36 Mon Sep 17 00:00:00 2001 From: SBushmelev Date: Tue, 29 Jul 2025 21:40:32 +0400 Subject: [PATCH 2/3] Update test, add com.clickhouse:client-v2:0.9.0 for testing --- modules/clickhouse/build.gradle | 1 + .../clickhouse/ClickHouseContainerTest.java | 30 ++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/modules/clickhouse/build.gradle b/modules/clickhouse/build.gradle index d366825e261..8fabc3a3397 100644 --- a/modules/clickhouse/build.gradle +++ b/modules/clickhouse/build.gradle @@ -13,6 +13,7 @@ dependencies { testImplementation 'org.apache.httpcomponents.client5:httpclient5:5.4.2' testImplementation 'org.assertj:assertj-core:3.27.3' + testImplementation 'com.clickhouse:client-v2:0.9.0' testImplementation testFixtures(project(':r2dbc')) testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.7.2', classifier: 'http') } diff --git a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java index e13eddd8ff4..45831d67158 100644 --- a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java +++ b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java @@ -1,13 +1,20 @@ package org.testcontainers.clickhouse; +import com.clickhouse.client.api.Client; +import com.clickhouse.client.api.data_formats.ClickHouseBinaryFormatReader; +import com.clickhouse.client.api.query.QueryResponse; import org.junit.Test; import org.testcontainers.ClickhouseTestImages; import org.testcontainers.db.AbstractContainerDatabaseTest; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; public class ClickHouseContainerTest extends AbstractContainerDatabaseTest { @@ -58,10 +65,25 @@ public void testNewAuth() throws SQLException { } @Test - public void getHttpUrlTest() { - try (ClickHouseContainer clickhouse = new ClickHouseContainer(ClickhouseTestImages.CLICKHOUSE_24_12_IMAGE)) { - clickhouse.start(); - assertThat(clickhouse.getHttpUrl()).isEqualTo("http://" + clickhouse.getHost() + ":" + clickhouse.getMappedPort(ClickHouseContainer.HTTP_PORT)); + public void testGetHttpMethodWithHttpClient() { + ClickHouseContainer clickhouse = new ClickHouseContainer(ClickhouseTestImages.CLICKHOUSE_24_12_IMAGE); + clickhouse.start(); + Client client = new Client.Builder() + .addEndpoint(clickhouse.getHttpUrl()) + .setUsername(clickhouse.getUsername()) + .setPassword(clickhouse.getPassword()) + .build(); + try { + QueryResponse queryResponse = client.query("SELECT 1").get(1, TimeUnit.MINUTES); + ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(queryResponse); + reader.next(); + int result = reader.getInteger(1); + assertThat(result).isEqualTo(1); + } catch (ExecutionException | InterruptedException | TimeoutException e) { + fail("Cannot get sql result:" + e); + } finally { + clickhouse.close(); + client.close(); } } From 043073e61966b9f436f02b3ab3b219e0fc4128d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 29 Jul 2025 14:00:38 -0500 Subject: [PATCH 3/3] Fix format --- .../org/testcontainers/clickhouse/ClickHouseContainerTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java index 45831d67158..0e7a3d1c119 100644 --- a/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java +++ b/modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java @@ -86,5 +86,4 @@ public void testGetHttpMethodWithHttpClient() { client.close(); } } - }