rename comprehensive test to typetest and add javadocs (#5675)
This commit is contained in:
@@ -55,7 +55,11 @@ import java.util.List;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
||||
public abstract class SourceAbstractTest {
|
||||
/**
|
||||
* This abstract class contains helpful functionality and boilerplate for testing a source
|
||||
* connector.
|
||||
*/
|
||||
public abstract class AbstractSourceConnectorTest {
|
||||
|
||||
private TestDestinationEnv environment;
|
||||
private Path jobRoot;
|
||||
@@ -48,9 +48,14 @@ import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public abstract class SourceComprehensiveTest extends SourceAbstractTest {
|
||||
/**
|
||||
* This abstract class contains common helpers and boilerplate for comprehensively testing that all
|
||||
* data types in a source can be read and handled correctly by the connector and within Airbyte's
|
||||
* type system.
|
||||
*/
|
||||
public abstract class AbstractSourceDatabaseTypeTest extends AbstractSourceConnectorTest {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(SourceComprehensiveTest.class);
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractSourceDatabaseTypeTest.class);
|
||||
|
||||
private final List<TestDataHolder> testDataHolders = new ArrayList<>();
|
||||
|
||||
@@ -53,7 +53,7 @@ import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public abstract class SourceAcceptanceTest extends SourceAbstractTest {
|
||||
public abstract class SourceAcceptanceTest extends AbstractSourceConnectorTest {
|
||||
|
||||
public static final String CDC_LSN = "_ab_cdc_lsn";
|
||||
public static final String CDC_UPDATED_AT = "_ab_cdc_updated_at";
|
||||
|
||||
@@ -36,7 +36,7 @@ import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.commons.string.Strings;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.bigquery.TempBigQueryJoolDatabaseImpl;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
@@ -47,7 +47,7 @@ import org.junit.jupiter.api.TestInstance;
|
||||
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
||||
|
||||
@TestInstance(Lifecycle.PER_CLASS)
|
||||
public class BigQuerySourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class BigQuerySourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private static final Path CREDENTIALS_PATH = Path.of("secrets/credentials.json");
|
||||
private static final String CREATE_SQL_PATTERN = "CREATE TABLE %1$s(%2$s NUMERIC(29), %3$s %4$s)";
|
||||
@@ -29,7 +29,7 @@ import com.google.common.collect.ImmutableMap;
|
||||
import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
@@ -39,12 +39,12 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.testcontainers.containers.CockroachContainer;
|
||||
|
||||
public class CockroachDbSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class CockroachDbSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private CockroachContainer container;
|
||||
private JsonNode config;
|
||||
private static final Logger LOGGER = LoggerFactory
|
||||
.getLogger(CockroachDbSourceComprehensiveTest.class);
|
||||
.getLogger(CockroachDbSourceDatatypeTest.class);
|
||||
|
||||
@Override
|
||||
protected Database setupDatabase() throws SQLException {
|
||||
@@ -30,14 +30,14 @@ import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.source.db2.Db2Source;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
import org.jooq.SQLDialect;
|
||||
import org.testcontainers.containers.Db2Container;
|
||||
|
||||
public class Db2SourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class Db2SourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private static final String CREATE_TABLE_SQL = "CREATE TABLE %1$s(%2$s INTEGER NOT NULL PRIMARY KEY, %3$s %4$s)";
|
||||
private static final String CREATE_TABLE_SQL_UNICODE = CREATE_TABLE_SQL + " CCSID UNICODE";
|
||||
@@ -58,6 +58,11 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* This class contains helper functions and boilerplate for implementing a source connector for a
|
||||
* relational DB source which can be accessed via JDBC driver. If you are implementing a connector for
|
||||
* a relational DB which has a JDBC driver, make an effort to use this class.
|
||||
*/
|
||||
public abstract class AbstractJdbcSource extends AbstractRelationalDbSource<JDBCType, JdbcDatabase> implements Source {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractJdbcSource.class);
|
||||
|
||||
@@ -29,13 +29,13 @@ import com.google.common.collect.ImmutableMap;
|
||||
import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
import org.testcontainers.containers.MSSQLServerContainer;
|
||||
|
||||
public class CdcMssqlSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class CdcMssqlSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private MSSQLServerContainer<?> container;
|
||||
private JsonNode config;
|
||||
@@ -31,13 +31,13 @@ import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.commons.string.Strings;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
import org.testcontainers.containers.MSSQLServerContainer;
|
||||
|
||||
public class MssqlSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class MssqlSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
static final String DB_NAME = Strings.addRandomSuffix("db", "_", 10).toLowerCase();
|
||||
protected static MSSQLServerContainer<?> container;
|
||||
@@ -29,14 +29,14 @@ import com.google.common.collect.ImmutableMap;
|
||||
import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
import org.jooq.SQLDialect;
|
||||
import org.testcontainers.containers.MySQLContainer;
|
||||
|
||||
public class CdcMySqlSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class CdcMySqlSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private MySQLContainer<?> container;
|
||||
private JsonNode config;
|
||||
@@ -30,14 +30,14 @@ import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.source.mysql.MySqlSource.ReplicationMethod;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
import org.jooq.SQLDialect;
|
||||
import org.testcontainers.containers.MySQLContainer;
|
||||
|
||||
public class MySqlSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class MySqlSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private MySQLContainer<?> container;
|
||||
private JsonNode config;
|
||||
@@ -29,7 +29,7 @@ import com.google.common.collect.ImmutableMap;
|
||||
import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
@@ -44,12 +44,12 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.testcontainers.containers.OracleContainer;
|
||||
|
||||
public class OracleSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class OracleSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private OracleContainer container;
|
||||
private JsonNode config;
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(OracleSourceComprehensiveTest.class);
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(OracleSourceDatatypeTest.class);
|
||||
|
||||
@Override
|
||||
protected Database setupDatabase() throws Exception {
|
||||
@@ -29,7 +29,7 @@ import com.google.common.collect.ImmutableMap;
|
||||
import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
@@ -41,7 +41,7 @@ import org.testcontainers.utility.MountableFile;
|
||||
* None of the tests in this class use the cdc path (run the tests and search for `using CDC: false`
|
||||
* in logs). This is exact same as {@link PostgresSourceAcceptanceTest}
|
||||
*/
|
||||
public class CdcPostgresSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class CdcPostgresSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private static final String SLOT_NAME_BASE = "debezium_slot";
|
||||
private static final String PUBLICATION = "publication";
|
||||
@@ -29,7 +29,7 @@ import com.google.common.collect.ImmutableMap;
|
||||
import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
@@ -39,12 +39,12 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.testcontainers.containers.PostgreSQLContainer;
|
||||
|
||||
public class PostresSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class PostresSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private PostgreSQLContainer<?> container;
|
||||
private JsonNode config;
|
||||
private static final Logger LOGGER = LoggerFactory
|
||||
.getLogger(PostresSourceComprehensiveTest.class);
|
||||
.getLogger(PostresSourceDatatypeTest.class);
|
||||
|
||||
@Override
|
||||
protected Database setupDatabase() throws SQLException {
|
||||
@@ -70,6 +70,13 @@ import java.util.stream.Stream;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* This class contains helper functions and boilerplate for implementing a source connector for a
|
||||
* relational DB source.
|
||||
*
|
||||
* @see io.airbyte.integrations.source.jdbc.AbstractJdbcSource if you are implementing a relational DB which
|
||||
* can be accessed via JDBC driver.
|
||||
*/
|
||||
public abstract class AbstractRelationalDbSource<DataType, Database extends SqlDatabase> extends BaseConnector implements Source {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRelationalDbSource.class);
|
||||
|
||||
@@ -30,14 +30,14 @@ import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.db.Database;
|
||||
import io.airbyte.db.Databases;
|
||||
import io.airbyte.integrations.source.snowflake.SnowflakeSource;
|
||||
import io.airbyte.integrations.standardtest.source.SourceComprehensiveTest;
|
||||
import io.airbyte.integrations.standardtest.source.AbstractSourceDatabaseTypeTest;
|
||||
import io.airbyte.integrations.standardtest.source.TestDataHolder;
|
||||
import io.airbyte.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.protocol.models.JsonSchemaPrimitive;
|
||||
import java.nio.file.Path;
|
||||
import org.jooq.SQLDialect;
|
||||
|
||||
public class SnowflakeSourceComprehensiveTest extends SourceComprehensiveTest {
|
||||
public class SnowflakeSourceDatatypeTest extends AbstractSourceDatabaseTypeTest {
|
||||
|
||||
private static final String SCHEMA_NAME = "TEST";
|
||||
private static final String INSERT_SEMI_STRUCTURED_SQL = "INSERT INTO %1$s (ID, TEST_COLUMN) SELECT %2$s, %3$s";
|
||||
Reference in New Issue
Block a user