Skip to content

Commit d4193c6

Browse files
[Snowflake Connector] Add tests for connector's SQL overrides.
1 parent dd32a09 commit d4193c6

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

dumper/app/src/test/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakeMetadataConnectorTest.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import java.util.List;
3535
import java.util.Map;
3636
import javax.annotation.Nonnull;
37+
import org.apache.commons.lang3.ArrayUtils;
38+
import org.apache.commons.lang3.StringUtils;
3739
import org.junit.Assert;
3840
import org.junit.Assume;
3941
import org.junit.Test;
@@ -154,10 +156,35 @@ public void connector_generatesExpectedSql() throws IOException {
154156
}
155157
}
156158

157-
private static Map<String, String> collectSqlStatements() throws IOException {
159+
@Test
160+
public void connector_generatesExpectedSql_withQueryOverrides() throws IOException {
161+
Map<String, String> actualSqls =
162+
collectSqlStatements("-Dsnowflake.metadata.columns.query=SQL_OVERRIDE");
163+
164+
Assert.assertEquals("SQL_OVERRIDE", actualSqls.get("columns-au.csv"));
165+
Assert.assertEquals("SQL_OVERRIDE", actualSqls.get("columns.csv"));
166+
}
167+
168+
@Test
169+
public void connector_generatesExpectedSql_withWhereOverrides() throws IOException {
170+
Map<String, String> actualSqls =
171+
collectSqlStatements("-Dsnowflake.metadata.columns.where=SQL_OVERRIDE");
172+
173+
// TODO: should be endsWith("WHERE SQL_OVERRIDE")
174+
Assert.assertTrue(
175+
actualSqls.get("columns-au.csv").endsWith("WHERE DELETED IS NULL WHERE SQL_OVERRIDE"));
176+
// TODO: should be 1
177+
Assert.assertEquals(2, StringUtils.countMatches(actualSqls.get("columns-au.csv"), " WHERE "));
178+
179+
Assert.assertTrue(actualSqls.get("columns.csv").endsWith("WHERE SQL_OVERRIDE"));
180+
Assert.assertEquals(1, StringUtils.countMatches(actualSqls.get("columns.csv"), " WHERE "));
181+
}
182+
183+
private static Map<String, String> collectSqlStatements(String... extraArgs) throws IOException {
158184
List<Task<?>> tasks = new ArrayList<>();
159185
SnowflakeMetadataConnector connector = new SnowflakeMetadataConnector();
160-
connector.addTasksTo(tasks, new ConnectorArguments("--connector", connector.getName()));
186+
String[] args = ArrayUtils.addAll(new String[] {"--connector", connector.getName()}, extraArgs);
187+
connector.addTasksTo(tasks, new ConnectorArguments(args));
161188
return tasks.stream()
162189
.filter(t -> t instanceof JdbcSelectTask)
163190
.map(t -> (JdbcSelectTask) t)

0 commit comments

Comments
 (0)