Skip to content

Commit 5bd0b6d

Browse files
authored
Add method getHttpUrl for ClickHouseContainer (#10526)
1 parent a7213af commit 5bd0b6d

File tree

3 files changed

+35
-0
lines changed

3 files changed

+35
-0
lines changed

modules/clickhouse/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ dependencies {
1313

1414
testImplementation 'org.apache.httpcomponents.client5:httpclient5:5.4.2'
1515
testImplementation 'org.assertj:assertj-core:3.27.3'
16+
testImplementation 'com.clickhouse:client-v2:0.9.0'
1617
testImplementation testFixtures(project(':r2dbc'))
1718
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.7.2', classifier: 'http')
1819
}

modules/clickhouse/src/main/java/org/testcontainers/clickhouse/ClickHouseContainer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@ public String getJdbcUrl() {
101101
);
102102
}
103103

104+
public String getHttpUrl() {
105+
return "http://" + getHost() + ":" + getMappedPort(HTTP_PORT);
106+
}
107+
104108
@Override
105109
public String getUsername() {
106110
return username;

modules/clickhouse/src/test/java/org/testcontainers/clickhouse/ClickHouseContainerTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
package org.testcontainers.clickhouse;
22

3+
import com.clickhouse.client.api.Client;
4+
import com.clickhouse.client.api.data_formats.ClickHouseBinaryFormatReader;
5+
import com.clickhouse.client.api.query.QueryResponse;
36
import org.junit.Test;
47
import org.testcontainers.ClickhouseTestImages;
58
import org.testcontainers.db.AbstractContainerDatabaseTest;
69

710
import java.sql.ResultSet;
811
import java.sql.SQLException;
12+
import java.util.concurrent.ExecutionException;
13+
import java.util.concurrent.TimeUnit;
14+
import java.util.concurrent.TimeoutException;
915

1016
import static org.assertj.core.api.Assertions.assertThat;
17+
import static org.assertj.core.api.Assertions.fail;
1118

1219
public class ClickHouseContainerTest extends AbstractContainerDatabaseTest {
1320

@@ -56,4 +63,27 @@ public void testNewAuth() throws SQLException {
5663
assertThat(resultSetInt).isEqualTo(1);
5764
}
5865
}
66+
67+
@Test
68+
public void testGetHttpMethodWithHttpClient() {
69+
ClickHouseContainer clickhouse = new ClickHouseContainer(ClickhouseTestImages.CLICKHOUSE_24_12_IMAGE);
70+
clickhouse.start();
71+
Client client = new Client.Builder()
72+
.addEndpoint(clickhouse.getHttpUrl())
73+
.setUsername(clickhouse.getUsername())
74+
.setPassword(clickhouse.getPassword())
75+
.build();
76+
try {
77+
QueryResponse queryResponse = client.query("SELECT 1").get(1, TimeUnit.MINUTES);
78+
ClickHouseBinaryFormatReader reader = client.newBinaryFormatReader(queryResponse);
79+
reader.next();
80+
int result = reader.getInteger(1);
81+
assertThat(result).isEqualTo(1);
82+
} catch (ExecutionException | InterruptedException | TimeoutException e) {
83+
fail("Cannot get sql result:" + e);
84+
} finally {
85+
clickhouse.close();
86+
client.close();
87+
}
88+
}
5989
}

0 commit comments

Comments
 (0)