|
8 | 8 | import org.slf4j.Logger; |
9 | 9 | import org.slf4j.LoggerFactory; |
10 | 10 | import org.testcontainers.clickhouse.ClickHouseContainer; |
| 11 | +import org.testcontainers.containers.wait.strategy.Wait; |
11 | 12 |
|
12 | 13 | import java.net.InetSocketAddress; |
| 14 | +import java.time.Duration; |
13 | 15 | import java.util.Collections; |
14 | 16 |
|
15 | 17 | import static com.clickhouse.benchmark.clients.BenchmarkBase.runQuery; |
| 18 | +import static java.time.temporal.ChronoUnit.SECONDS; |
16 | 19 |
|
17 | 20 | public class TestEnvironment { |
18 | 21 | private static final Logger LOGGER = LoggerFactory.getLogger(TestEnvironment.class); |
@@ -40,7 +43,7 @@ public static int getPort() { |
40 | 43 | if (isCloud()) {//Default handling for ClickHouse Cloud |
41 | 44 | port = "8443"; |
42 | 45 | } else { |
43 | | - port = String.valueOf(container.getFirstMappedPort()); |
| 46 | + port = String.valueOf(container.getMappedPort(8123)); |
44 | 47 | } |
45 | 48 | } |
46 | 49 |
|
@@ -80,20 +83,23 @@ public static void setupEnvironment() { |
80 | 83 | if (isCloud()) { |
81 | 84 | LOGGER.info("Using ClickHouse Cloud"); |
82 | 85 | container = null; |
83 | | - serverNode = ClickHouseNode.builder(ClickHouseNode.builder().build()) |
84 | | - .address(ClickHouseProtocol.HTTP, new InetSocketAddress(getHost(), getPort())) |
85 | | - .credentials(ClickHouseCredentials.fromUserAndPassword(getUsername(), getPassword())) |
86 | | - .options(Collections.singletonMap(ClickHouseClientOption.SSL.getKey(), "true")) |
87 | | - .database(DB_NAME) |
88 | | - .build(); |
89 | 86 | } else { |
90 | 87 | LOGGER.info("Using ClickHouse Docker container"); |
91 | | - container = new ClickHouseContainer(CLICKHOUSE_DOCKER_IMAGE).withPassword(getPassword()).withEnv("CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT", "1"); |
| 88 | + container = new ClickHouseContainer(CLICKHOUSE_DOCKER_IMAGE) |
| 89 | + .withPassword("testing_password") |
| 90 | + .withEnv("CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT", "1") |
| 91 | + .withExposedPorts(8123, 8443) |
| 92 | + .waitingFor(Wait.forHttp("/ping").forPort(8123).forStatusCode(200).withStartupTimeout(Duration.of(600, SECONDS))); |
92 | 93 | container.start(); |
93 | | - |
94 | | - serverNode = ClickHouseServerForTest.getClickHouseNode(ClickHouseProtocol.HTTP, isCloud(), ClickHouseNode.builder().build()); |
95 | 94 | } |
96 | 95 |
|
| 96 | + serverNode = ClickHouseNode.builder(ClickHouseNode.builder().build()) |
| 97 | + .address(ClickHouseProtocol.HTTP, new InetSocketAddress(getHost(), getPort())) |
| 98 | + .credentials(ClickHouseCredentials.fromUserAndPassword(getUsername(), getPassword())) |
| 99 | + .options(Collections.singletonMap(ClickHouseClientOption.SSL.getKey(), isCloud() ? "true" : "false")) |
| 100 | + .database(DB_NAME) |
| 101 | + .build(); |
| 102 | + |
97 | 103 | createDatabase(); |
98 | 104 | } |
99 | 105 |
|
|
0 commit comments