DBZ-3724 RHEL tests for mysql connector

This commit is contained in:
jcechace 2021-07-27 01:36:55 +02:00 committed by Jiri Pechanec
parent 17a6fb6e06
commit fd404d3bd4
4 changed files with 143 additions and 0 deletions

View File

@ -0,0 +1,23 @@
/*
* Copyright Debezium Authors.
*
* Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
package io.debezium.testing.system.fixtures;
import org.testcontainers.containers.Network;
public interface DockerNetwork {
default void setupNetwork() {
setNetwork(Network.newNetwork());
}
default void teardownNetwork() {
getNetwork().close();
}
void setNetwork(Network network);
Network getNetwork();
}

View File

@ -0,0 +1,38 @@
/*
* Copyright Debezium Authors.
*
* Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
package io.debezium.testing.system.fixtures.databases;
import static io.debezium.testing.system.tools.ConfigProperties.DATABASE_MYSQL_PASSWORD;
import static io.debezium.testing.system.tools.ConfigProperties.DATABASE_MYSQL_USERNAME;
import io.debezium.testing.system.fixtures.DockerNetwork;
import io.debezium.testing.system.fixtures.TestSetupFixture;
import io.debezium.testing.system.tools.databases.SqlDatabaseController;
import io.debezium.testing.system.tools.databases.mysql.DockerMySqlDeployer;
public interface DockerMySql
extends TestSetupFixture, SqlDatabaseFixture, DockerNetwork {
default void setupDatabase() throws Exception {
Class.forName("com.mysql.cj.jdbc.Driver");
DockerMySqlDeployer deployer = new DockerMySqlDeployer.Builder()
.withNetwork(getNetwork())
.withContainerConfig(container -> {
container
.withUsername(DATABASE_MYSQL_USERNAME)
.withPassword(DATABASE_MYSQL_PASSWORD)
.withExistingDatabase("inventory");
})
.build();
SqlDatabaseController controller = deployer.deploy();
setDbController(controller);
}
default void teardownDatabase() throws Exception {
getDbController().reload();
}
}

View File

@ -0,0 +1,51 @@
/*
* Copyright Debezium Authors.
*
* Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
package io.debezium.testing.system.tests;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.TestInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.Network;
import io.debezium.testing.system.fixtures.DockerNetwork;
import io.debezium.testing.system.fixtures.kafka.DockerKafka;
import io.debezium.testing.system.tools.databases.DatabaseController;
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public abstract class DockerConnectorTest<D extends DatabaseController<?>>
extends ConnectorTest<D>
implements DockerKafka, DockerNetwork {
// Docker control
protected Network network;
Logger LOGGER = LoggerFactory.getLogger(DockerConnectorTest.class);
@Override
@BeforeAll
public void setupFixtures() throws Exception {
setupNetwork();
super.setupFixtures();
}
@Override
@AfterAll
public void teardownFixtures() throws Exception {
super.teardownFixtures();
teardownNetwork();
}
@Override
public Network getNetwork() {
return network;
}
@Override
public void setNetwork(Network network) {
this.network = network;
}
}

View File

@ -0,0 +1,31 @@
/*
* Copyright Debezium Authors.
*
* Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
*/
package io.debezium.testing.system.tests.mysql;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestMethodOrder;
import io.debezium.testing.system.fixtures.connectors.MySqlConnector;
import io.debezium.testing.system.fixtures.databases.DockerMySql;
import io.debezium.testing.system.fixtures.kafka.DockerKafka;
import io.debezium.testing.system.tests.DockerConnectorTest;
import io.debezium.testing.system.tools.databases.SqlDatabaseController;
/**
* @author Jakub Cechacek
*/
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
@Tag("acceptance")
@Tag("mysql")
@Tag("rhel")
@Tag("docker")
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class DockerRhelMySqlConnectorIT
extends DockerConnectorTest<SqlDatabaseController>
implements DockerKafka, DockerMySql, MySqlConnector, MySqlTestCases {
}