|
22 | 22 | import static org.junit.Assert.assertNotNull; |
23 | 23 | import static org.junit.Assert.assertThrows; |
24 | 24 |
|
| 25 | +import com.google.auto.service.AutoService; |
25 | 26 | import java.sql.Connection; |
26 | 27 | import java.sql.PreparedStatement; |
27 | 28 | import java.sql.SQLException; |
|
47 | 48 | @RunWith(JUnit4.class) |
48 | 49 | public class JdbcReadSchemaTransformProviderTest { |
49 | 50 |
|
| 51 | + @AutoService(SchemaTransformProvider.class) |
| 52 | + public static class ReadFromDerbySchemaTransformProvider extends JdbcReadSchemaTransformProvider { |
| 53 | + |
| 54 | + @Override |
| 55 | + public String identifier() { |
| 56 | + return "beam:schematransform:org.apache.beam:derby_read:v1"; |
| 57 | + } |
| 58 | + |
| 59 | + @Override |
| 60 | + public String description() { |
| 61 | + return inheritedDescription("Derby", "ReadFromDerby", "derby", 5432); |
| 62 | + } |
| 63 | + |
| 64 | + @Override |
| 65 | + protected String jdbcType() { |
| 66 | + return "derby"; |
| 67 | + } |
| 68 | + } |
| 69 | + |
50 | 70 | private static final JdbcIO.DataSourceConfiguration DATA_SOURCE_CONFIGURATION = |
51 | 71 | JdbcIO.DataSourceConfiguration.create( |
52 | 72 | "org.apache.derby.jdbc.EmbeddedDriver", "jdbc:derby:memory:testDB;create=true"); |
@@ -199,6 +219,32 @@ public void testReadWithJdbcTypeSpecified() { |
199 | 219 | pipeline.run(); |
200 | 220 | } |
201 | 221 |
|
| 222 | + @Test |
| 223 | + public void testReadWithJdbcDerbyTransformTypeSpecified() { |
| 224 | + JdbcReadSchemaTransformProvider provider = null; |
| 225 | + for (SchemaTransformProvider p : ServiceLoader.load(SchemaTransformProvider.class)) { |
| 226 | + if (p instanceof ReadFromDerbySchemaTransformProvider) { |
| 227 | + provider = (JdbcReadSchemaTransformProvider) p; |
| 228 | + break; |
| 229 | + } |
| 230 | + } |
| 231 | + assertNotNull(provider); |
| 232 | + |
| 233 | + PCollection<Row> output = |
| 234 | + PCollectionRowTuple.empty(pipeline) |
| 235 | + .apply( |
| 236 | + provider.from( |
| 237 | + ReadFromDerbySchemaTransformProvider.JdbcReadSchemaTransformConfiguration |
| 238 | + .builder() |
| 239 | + .setJdbcUrl(DATA_SOURCE_CONFIGURATION.getUrl().get()) |
| 240 | + .setLocation(READ_TABLE_NAME) |
| 241 | + .build())) |
| 242 | + .get("output"); |
| 243 | + Long expected = Long.valueOf(EXPECTED_ROW_COUNT); |
| 244 | + PAssert.that(output.apply(Count.globally())).containsInAnyOrder(expected); |
| 245 | + pipeline.run(); |
| 246 | + } |
| 247 | + |
202 | 248 | @Test |
203 | 249 | public void testReadWithPartitions() { |
204 | 250 | JdbcReadSchemaTransformProvider provider = null; |
|
0 commit comments