DBZ-2868 move TestDatabase to debezium-testing-testcontainers project and rename to PostgresTestResourceLifecycleManager

This commit is contained in:
Ismail Simsek 2021-01-08 19:19:25 +01:00 committed by Gunnar Morling
parent a0ba33fddd
commit 0be379ab79
18 changed files with 80 additions and 47 deletions

View File

@ -17,6 +17,11 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-core</artifactId>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-testing-testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-health</artifactId>

View File

@ -16,6 +16,7 @@
import io.debezium.server.events.ConnectorCompletedEvent;
import io.debezium.server.events.ConnectorStartedEvent;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
import io.debezium.util.Testing;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
@ -26,7 +27,7 @@
* @author Jiri Pechanec
*/
@QuarkusTest
@QuarkusTestResource(TestDatabase.class)
@QuarkusTestResource(PostgresTestResourceLifecycleManager.class)
public class DebeziumServerIT {
private static final int MESSAGE_COUNT = 4;

View File

@ -12,6 +12,7 @@
import org.apache.kafka.connect.runtime.standalone.StandaloneConfig;
import org.eclipse.microprofile.config.spi.ConfigSource;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
import io.debezium.util.Testing;
public class TestConfigSource implements ConfigSource {
@ -31,11 +32,11 @@ public TestConfigSource() {
integrationTest.put("debezium.source.connector.class", "io.debezium.connector.postgresql.PostgresConnector");
integrationTest.put("debezium.source." + StandaloneConfig.OFFSET_STORAGE_FILE_FILENAME_CONFIG, OFFSET_STORE_PATH.toAbsolutePath().toString());
integrationTest.put("debezium.source.offset.flush.interval.ms", "0");
integrationTest.put("debezium.source.database.hostname", TestDatabase.POSTGRES_HOST);
integrationTest.put("debezium.source.database.port", Integer.toString(TestDatabase.POSTGRES_PORT));
integrationTest.put("debezium.source.database.user", TestDatabase.POSTGRES_USER);
integrationTest.put("debezium.source.database.password", TestDatabase.POSTGRES_PASSWORD);
integrationTest.put("debezium.source.database.dbname", TestDatabase.POSTGRES_DBNAME);
integrationTest.put("debezium.source.database.hostname", PostgresTestResourceLifecycleManager.POSTGRES_HOST);
integrationTest.put("debezium.source.database.port", Integer.toString(PostgresTestResourceLifecycleManager.POSTGRES_PORT));
integrationTest.put("debezium.source.database.user", PostgresTestResourceLifecycleManager.POSTGRES_USER);
integrationTest.put("debezium.source.database.password", PostgresTestResourceLifecycleManager.POSTGRES_PASSWORD);
integrationTest.put("debezium.source.database.dbname", PostgresTestResourceLifecycleManager.POSTGRES_DBNAME);
integrationTest.put("debezium.source.database.server.name", "testc");
integrationTest.put("debezium.source.schema.include.list", "inventory");
integrationTest.put("debezium.source.table.include.list", "inventory.customers");

View File

@ -33,6 +33,11 @@
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-testing-testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easytesting</groupId>
<artifactId>fest-assert</artifactId>

View File

@ -28,9 +28,9 @@
import com.azure.messaging.eventhubs.models.PartitionEvent;
import io.debezium.server.DebeziumServer;
import io.debezium.server.TestDatabase;
import io.debezium.server.events.ConnectorCompletedEvent;
import io.debezium.server.events.ConnectorStartedEvent;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
import io.debezium.util.Testing;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
@ -42,7 +42,7 @@
* @author Abhishek Gupta
*/
@QuarkusTest
@QuarkusTestResource(TestDatabase.class)
@QuarkusTestResource(PostgresTestResourceLifecycleManager.class)
public class EventHubsIT {
private static final Logger LOGGER = LoggerFactory.getLogger(EventHubsIT.class);

View File

@ -11,7 +11,7 @@
import org.apache.kafka.connect.runtime.standalone.StandaloneConfig;
import io.debezium.server.TestConfigSource;
import io.debezium.server.TestDatabase;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
public class EventHubsTestConfigSource extends TestConfigSource {
@ -34,11 +34,11 @@ public EventHubsTestConfigSource() {
eventHubsTest.put("debezium.source." + StandaloneConfig.OFFSET_STORAGE_FILE_FILENAME_CONFIG,
OFFSET_STORE_PATH.toAbsolutePath().toString());
eventHubsTest.put("debezium.source.offset.flush.interval.ms", "0");
eventHubsTest.put("debezium.source.database.hostname", TestDatabase.POSTGRES_HOST);
eventHubsTest.put("debezium.source.database.port", Integer.toString(TestDatabase.POSTGRES_PORT));
eventHubsTest.put("debezium.source.database.user", TestDatabase.POSTGRES_USER);
eventHubsTest.put("debezium.source.database.password", TestDatabase.POSTGRES_PASSWORD);
eventHubsTest.put("debezium.source.database.dbname", TestDatabase.POSTGRES_DBNAME);
eventHubsTest.put("debezium.source.database.hostname", PostgresTestResourceLifecycleManager.POSTGRES_HOST);
eventHubsTest.put("debezium.source.database.port", Integer.toString(PostgresTestResourceLifecycleManager.POSTGRES_PORT));
eventHubsTest.put("debezium.source.database.user", PostgresTestResourceLifecycleManager.POSTGRES_USER);
eventHubsTest.put("debezium.source.database.password", PostgresTestResourceLifecycleManager.POSTGRES_PASSWORD);
eventHubsTest.put("debezium.source.database.dbname", PostgresTestResourceLifecycleManager.POSTGRES_DBNAME);
eventHubsTest.put("debezium.source.database.server.name", "testc");
eventHubsTest.put("debezium.source.schema.include.list", "inventory");
eventHubsTest.put("debezium.source.table.include.list", "inventory.customers");

View File

@ -33,6 +33,11 @@
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-testing-testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easytesting</groupId>
<artifactId>fest-assert</artifactId>

View File

@ -16,9 +16,9 @@
import org.junit.jupiter.api.Test;
import io.debezium.server.DebeziumServer;
import io.debezium.server.TestDatabase;
import io.debezium.server.events.ConnectorCompletedEvent;
import io.debezium.server.events.ConnectorStartedEvent;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
import io.debezium.util.Testing;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
@ -39,7 +39,7 @@
* @author Jiri Pechanec
*/
@QuarkusTest
@QuarkusTestResource(TestDatabase.class)
@QuarkusTestResource(PostgresTestResourceLifecycleManager.class)
public class KinesisIT {
private static final int MESSAGE_COUNT = 4;

View File

@ -11,7 +11,7 @@
import org.apache.kafka.connect.runtime.standalone.StandaloneConfig;
import io.debezium.server.TestConfigSource;
import io.debezium.server.TestDatabase;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
public class KinesisTestConfigSource extends TestConfigSource {
@ -25,11 +25,11 @@ public KinesisTestConfigSource() {
kinesisTest.put("debezium.source.connector.class", "io.debezium.connector.postgresql.PostgresConnector");
kinesisTest.put("debezium.source." + StandaloneConfig.OFFSET_STORAGE_FILE_FILENAME_CONFIG, OFFSET_STORE_PATH.toAbsolutePath().toString());
kinesisTest.put("debezium.source.offset.flush.interval.ms", "0");
kinesisTest.put("debezium.source.database.hostname", TestDatabase.POSTGRES_HOST);
kinesisTest.put("debezium.source.database.port", Integer.toString(TestDatabase.POSTGRES_PORT));
kinesisTest.put("debezium.source.database.user", TestDatabase.POSTGRES_USER);
kinesisTest.put("debezium.source.database.password", TestDatabase.POSTGRES_PASSWORD);
kinesisTest.put("debezium.source.database.dbname", TestDatabase.POSTGRES_DBNAME);
kinesisTest.put("debezium.source.database.hostname", PostgresTestResourceLifecycleManager.POSTGRES_HOST);
kinesisTest.put("debezium.source.database.port", Integer.toString(PostgresTestResourceLifecycleManager.POSTGRES_PORT));
kinesisTest.put("debezium.source.database.user", PostgresTestResourceLifecycleManager.POSTGRES_USER);
kinesisTest.put("debezium.source.database.password", PostgresTestResourceLifecycleManager.POSTGRES_PASSWORD);
kinesisTest.put("debezium.source.database.dbname", PostgresTestResourceLifecycleManager.POSTGRES_DBNAME);
kinesisTest.put("debezium.source.database.server.name", "testc");
kinesisTest.put("debezium.source.schema.include.list", "inventory");
kinesisTest.put("debezium.source.table.include.list", "inventory.customers");

View File

@ -37,6 +37,11 @@
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-testing-testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easytesting</groupId>
<artifactId>fest-assert</artifactId>

View File

@ -31,9 +31,9 @@
import io.debezium.server.DebeziumServer;
import io.debezium.server.TestConfigSource;
import io.debezium.server.TestDatabase;
import io.debezium.server.events.ConnectorCompletedEvent;
import io.debezium.server.events.ConnectorStartedEvent;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
import io.debezium.util.Testing;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
@ -44,7 +44,7 @@
* @author Jiri Pechanec
*/
@QuarkusTest
@QuarkusTestResource(TestDatabase.class)
@QuarkusTestResource(PostgresTestResourceLifecycleManager.class)
public class PubSubIT {
private static final int MESSAGE_COUNT = 4;

View File

@ -11,7 +11,7 @@
import org.apache.kafka.connect.runtime.standalone.StandaloneConfig;
import io.debezium.server.TestConfigSource;
import io.debezium.server.TestDatabase;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
public class PubSubTestConfigSource extends TestConfigSource {
@ -23,11 +23,11 @@ public PubSubTestConfigSource() {
pubsubTest.put("debezium.source." + StandaloneConfig.OFFSET_STORAGE_FILE_FILENAME_CONFIG,
OFFSET_STORE_PATH.toAbsolutePath().toString());
pubsubTest.put("debezium.source.offset.flush.interval.ms", "0");
pubsubTest.put("debezium.source.database.hostname", TestDatabase.POSTGRES_HOST);
pubsubTest.put("debezium.source.database.port", Integer.toString(TestDatabase.POSTGRES_PORT));
pubsubTest.put("debezium.source.database.user", TestDatabase.POSTGRES_USER);
pubsubTest.put("debezium.source.database.password", TestDatabase.POSTGRES_PASSWORD);
pubsubTest.put("debezium.source.database.dbname", TestDatabase.POSTGRES_DBNAME);
pubsubTest.put("debezium.source.database.hostname", PostgresTestResourceLifecycleManager.POSTGRES_HOST);
pubsubTest.put("debezium.source.database.port", Integer.toString(PostgresTestResourceLifecycleManager.POSTGRES_PORT));
pubsubTest.put("debezium.source.database.user", PostgresTestResourceLifecycleManager.POSTGRES_USER);
pubsubTest.put("debezium.source.database.password", PostgresTestResourceLifecycleManager.POSTGRES_PASSWORD);
pubsubTest.put("debezium.source.database.dbname", PostgresTestResourceLifecycleManager.POSTGRES_DBNAME);
pubsubTest.put("debezium.source.database.server.name", "testc");
pubsubTest.put("debezium.source.schema.include.list", "inventory");
pubsubTest.put("debezium.source.table.include.list", "inventory.customers");

View File

@ -34,6 +34,11 @@
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-testing-testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easytesting</groupId>
<artifactId>fest-assert</artifactId>

View File

@ -23,9 +23,9 @@
import io.debezium.server.DebeziumServer;
import io.debezium.server.TestConfigSource;
import io.debezium.server.TestDatabase;
import io.debezium.server.events.ConnectorCompletedEvent;
import io.debezium.server.events.ConnectorStartedEvent;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
import io.debezium.util.Testing;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
@ -36,7 +36,7 @@
* @author Jiri Pechanec
*/
@QuarkusTest
@QuarkusTestResource(TestDatabase.class)
@QuarkusTestResource(PostgresTestResourceLifecycleManager.class)
public class PulsarIT {
private static final int MESSAGE_COUNT = 4;

View File

@ -11,7 +11,7 @@
import org.apache.kafka.connect.runtime.standalone.StandaloneConfig;
import io.debezium.server.TestConfigSource;
import io.debezium.server.TestDatabase;
import io.debezium.testing.testcontainers.PostgresTestResourceLifecycleManager;
public class PulsarTestConfigSource extends TestConfigSource {
@ -24,11 +24,11 @@ public PulsarTestConfigSource() {
pulsarTest.put("debezium.source." + StandaloneConfig.OFFSET_STORAGE_FILE_FILENAME_CONFIG,
OFFSET_STORE_PATH.toAbsolutePath().toString());
pulsarTest.put("debezium.source.offset.flush.interval.ms", "0");
pulsarTest.put("debezium.source.database.hostname", TestDatabase.POSTGRES_HOST);
pulsarTest.put("debezium.source.database.port", Integer.toString(TestDatabase.POSTGRES_PORT));
pulsarTest.put("debezium.source.database.user", TestDatabase.POSTGRES_USER);
pulsarTest.put("debezium.source.database.password", TestDatabase.POSTGRES_PASSWORD);
pulsarTest.put("debezium.source.database.dbname", TestDatabase.POSTGRES_DBNAME);
pulsarTest.put("debezium.source.database.hostname", PostgresTestResourceLifecycleManager.POSTGRES_HOST);
pulsarTest.put("debezium.source.database.port", Integer.toString(PostgresTestResourceLifecycleManager.POSTGRES_PORT));
pulsarTest.put("debezium.source.database.user", PostgresTestResourceLifecycleManager.POSTGRES_USER);
pulsarTest.put("debezium.source.database.password", PostgresTestResourceLifecycleManager.POSTGRES_PASSWORD);
pulsarTest.put("debezium.source.database.dbname", PostgresTestResourceLifecycleManager.POSTGRES_DBNAME);
pulsarTest.put("debezium.source.database.server.name", "testc");
pulsarTest.put("debezium.source.schema.include.list", "inventory");
pulsarTest.put("debezium.source.table.include.list", "inventory.customers");

View File

@ -93,6 +93,12 @@
<artifactId>azure-messaging-eventhubs</artifactId>
<version>${version.eventhubs}</version>
</dependency>
<dependency>
<groupId>io.debezium</groupId>
<artifactId>debezium-testing-testcontainers</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -85,5 +85,10 @@
<artifactId>json-path</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-test-common</artifactId>
<version>${quarkus.version}</version>
</dependency>
</dependencies>
</project>

View File

@ -3,13 +3,12 @@
*
* Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
package io.debezium.server;
package io.debezium.testing.testcontainers;
import java.time.Duration;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.junit.jupiter.api.Assertions;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.wait.strategy.Wait;
@ -18,7 +17,7 @@
/**
* @author Jiri Pechanec
*/
public class TestDatabase implements QuarkusTestResourceLifecycleManager {
public class PostgresTestResourceLifecycleManager implements QuarkusTestResourceLifecycleManager {
public static final String POSTGRES_USER = "postgres";
public static final String POSTGRES_PASSWORD = "postgres";
@ -36,12 +35,8 @@ public class TestDatabase implements QuarkusTestResourceLifecycleManager {
.withStartupTimeout(Duration.ofSeconds(30));
public Map<String, String> start() {
try {
container.start();
}
catch (Exception e) {
Assertions.fail(e);
}
Map<String, String> params = new ConcurrentHashMap<>();
params.put("debezium.source.database.hostname", POSTGRES_HOST);
params.put("debezium.source.database.port", container.getMappedPort(POSTGRES_PORT).toString());