introduce ImageModifier to MS SQL source (#32898)
introducing ImageModifier to MsSql so we don't use strings everywhere
This commit is contained in:
@@ -13,6 +13,7 @@ import io.airbyte.cdk.integrations.standardtest.source.SourceAcceptanceTest;
|
||||
import io.airbyte.cdk.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.commons.json.Jsons;
|
||||
import io.airbyte.integrations.source.mssql.MsSQLTestDatabase.BaseImage;
|
||||
import io.airbyte.integrations.source.mssql.MsSQLTestDatabase.ContainerModifier;
|
||||
import io.airbyte.protocol.models.Field;
|
||||
import io.airbyte.protocol.models.JsonSchemaType;
|
||||
import io.airbyte.protocol.models.v0.CatalogHelpers;
|
||||
@@ -50,7 +51,7 @@ public abstract class AbstractSshMssqlSourceAcceptanceTest extends SourceAccepta
|
||||
|
||||
@Override
|
||||
protected void setupEnvironment(final TestDestinationEnv environment) throws Exception {
|
||||
testdb = MsSQLTestDatabase.in(BaseImage.MSSQL_2017_LATEST, "withNetwork");
|
||||
testdb = MsSQLTestDatabase.in(BaseImage.MSSQL_2017_LATEST, ContainerModifier.NETWORK);
|
||||
testdb = testdb
|
||||
.with("ALTER DATABASE %s SET AUTO_CLOSE OFF WITH NO_WAIT;", testdb.getDatabaseName())
|
||||
.with("CREATE TABLE id_and_name(id INTEGER, name VARCHAR(200), born DATETIMEOFFSET(7));")
|
||||
|
||||
@@ -10,6 +10,7 @@ import io.airbyte.cdk.integrations.base.ssh.SshHelpers;
|
||||
import io.airbyte.cdk.integrations.standardtest.source.SourceAcceptanceTest;
|
||||
import io.airbyte.cdk.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.integrations.source.mssql.MsSQLTestDatabase.BaseImage;
|
||||
import io.airbyte.integrations.source.mssql.MsSQLTestDatabase.ContainerModifier;
|
||||
import io.airbyte.protocol.models.Field;
|
||||
import io.airbyte.protocol.models.JsonSchemaType;
|
||||
import io.airbyte.protocol.models.v0.CatalogHelpers;
|
||||
@@ -83,7 +84,7 @@ public class CdcMssqlSourceAcceptanceTest extends SourceAcceptanceTest {
|
||||
|
||||
@Override
|
||||
protected void setupEnvironment(final TestDestinationEnv environment) {
|
||||
testdb = MsSQLTestDatabase.in(BaseImage.MSSQL_2022_LATEST, "withAgent");
|
||||
testdb = MsSQLTestDatabase.in(BaseImage.MSSQL_2022_LATEST, ContainerModifier.AGENT);
|
||||
final var enableCdcSqlFmt = """
|
||||
EXEC sys.sp_cdc_enable_table
|
||||
\t@source_schema = N'%s',
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import io.airbyte.cdk.db.Database;
|
||||
import io.airbyte.cdk.integrations.standardtest.source.TestDestinationEnv;
|
||||
import io.airbyte.integrations.source.mssql.MsSQLTestDatabase.BaseImage;
|
||||
import io.airbyte.integrations.source.mssql.MsSQLTestDatabase.ContainerModifier;
|
||||
|
||||
public class CdcMssqlSourceDatatypeTest extends AbstractMssqlSourceDatatypeTest {
|
||||
|
||||
@@ -21,7 +22,7 @@ public class CdcMssqlSourceDatatypeTest extends AbstractMssqlSourceDatatypeTest
|
||||
|
||||
@Override
|
||||
protected Database setupDatabase() {
|
||||
testdb = MsSQLTestDatabase.in(BaseImage.MSSQL_2022_LATEST, "withAgent")
|
||||
testdb = MsSQLTestDatabase.in(BaseImage.MSSQL_2022_LATEST, ContainerModifier.AGENT)
|
||||
.withSnapshotIsolation()
|
||||
.withCdc();
|
||||
return testdb.getDatabase();
|
||||
|
||||
@@ -39,8 +39,22 @@ public class MsSQLTestDatabase extends TestDatabase<MSSQLServerContainer<?>, MsS
|
||||
|
||||
}
|
||||
|
||||
static public MsSQLTestDatabase in(BaseImage imageName, String... methods) {
|
||||
final var container = new MsSQLContainerFactory().shared(imageName.reference, methods);
|
||||
public static enum ContainerModifier {
|
||||
|
||||
NETWORK("withNetwork"),
|
||||
AGENT("withAgent");
|
||||
|
||||
private final String methodName;
|
||||
|
||||
private ContainerModifier(String methodName) {
|
||||
this.methodName = methodName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static public MsSQLTestDatabase in(BaseImage imageName, ContainerModifier... methods) {
|
||||
String[] methodNames = Stream.of(methods).map(im -> im.methodName).toList().toArray(new String[0]);
|
||||
final var container = new MsSQLContainerFactory().shared(imageName.reference, methodNames);
|
||||
final var testdb = new MsSQLTestDatabase(container);
|
||||
return testdb
|
||||
.withConnectionProperty("encrypt", "false")
|
||||
|
||||
Reference in New Issue
Block a user