DBZ-3724 RHEL tests for mysql connector
This commit is contained in:
parent
17a6fb6e06
commit
fd404d3bd4
@ -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();
|
||||
}
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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 {
|
||||
}
|
Loading…
Reference in New Issue
Block a user