DBZ-953 Expanding tests

This commit is contained in:
Jiri Pechanec 2018-11-09 16:16:43 +01:00
parent cff07e9967
commit 9dd4070fa6

View File

@ -9,6 +9,8 @@
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
import org.apache.kafka.connect.data.Decimal;
import org.apache.kafka.connect.data.Schema;
import org.apache.kafka.connect.data.Struct; import org.apache.kafka.connect.data.Struct;
import org.apache.kafka.connect.source.SourceRecord; import org.apache.kafka.connect.source.SourceRecord;
import org.fest.assertions.Assertions; import org.fest.assertions.Assertions;
@ -88,6 +90,7 @@ public void decimalModeConfigString() throws Exception {
final List<SourceRecord> tableA = records.recordsForTopic("server1.dbo.tablenuma"); final List<SourceRecord> tableA = records.recordsForTopic("server1.dbo.tablenuma");
Assertions.assertThat(tableA).hasSize(1); Assertions.assertThat(tableA).hasSize(1);
final Struct valueA = (Struct) tableA.get(0).value(); final Struct valueA = (Struct) tableA.get(0).value();
assertSchema(valueA, Schema.OPTIONAL_STRING_SCHEMA);
Assertions.assertThat(((Struct) valueA.get("after")).get("cola")).isEqualTo("111.1111"); Assertions.assertThat(((Struct) valueA.get("after")).get("cola")).isEqualTo("111.1111");
Assertions.assertThat(((Struct) valueA.get("after")).get("colb")).isEqualTo("1111111"); Assertions.assertThat(((Struct) valueA.get("after")).get("colb")).isEqualTo("1111111");
Assertions.assertThat(((Struct) valueA.get("after")).get("colc")).isEqualTo("1111111.1"); Assertions.assertThat(((Struct) valueA.get("after")).get("colc")).isEqualTo("1111111.1");
@ -118,6 +121,7 @@ public void decimalModeConfigDouble() throws Exception {
final List<SourceRecord> results = records.recordsForTopic("server1.dbo.tablenumb"); final List<SourceRecord> results = records.recordsForTopic("server1.dbo.tablenumb");
Assertions.assertThat(results).hasSize(1); Assertions.assertThat(results).hasSize(1);
final Struct valueA = (Struct) results.get(0).value(); final Struct valueA = (Struct) results.get(0).value();
assertSchema(valueA, Schema.OPTIONAL_FLOAT64_SCHEMA);
Assertions.assertThat(((Struct) valueA.get("after")).get("cola")).isEqualTo(222.2222d); Assertions.assertThat(((Struct) valueA.get("after")).get("cola")).isEqualTo(222.2222d);
Assertions.assertThat(((Struct) valueA.get("after")).get("colb")).isEqualTo(22222d); Assertions.assertThat(((Struct) valueA.get("after")).get("colb")).isEqualTo(22222d);
Assertions.assertThat(((Struct) valueA.get("after")).get("colc")).isEqualTo(22222.2d); Assertions.assertThat(((Struct) valueA.get("after")).get("colc")).isEqualTo(22222.2d);
@ -147,10 +151,21 @@ public void decimalModeConfigPrecise() throws Exception {
final List<SourceRecord> results = records.recordsForTopic("server1.dbo.tablenumc"); final List<SourceRecord> results = records.recordsForTopic("server1.dbo.tablenumc");
Assertions.assertThat(results).hasSize(1); Assertions.assertThat(results).hasSize(1);
final Struct valueA = (Struct) results.get(0).value(); final Struct valueA = (Struct) results.get(0).value();
Assertions.assertThat(valueA.schema().field("after").schema().field("cola").schema()).isEqualTo(Decimal.builder(4).parameter("connect.decimal.precision", "8").optional().schema());
Assertions.assertThat(valueA.schema().field("after").schema().field("colb").schema()).isEqualTo(Decimal.builder(0).parameter("connect.decimal.precision", "18").optional().schema());
Assertions.assertThat(valueA.schema().field("after").schema().field("colc").schema()).isEqualTo(Decimal.builder(1).parameter("connect.decimal.precision", "8").optional().schema());
Assertions.assertThat(valueA.schema().field("after").schema().field("cold").schema()).isEqualTo(Decimal.builder(0).parameter("connect.decimal.precision", "18").optional().schema());
Assertions.assertThat(((Struct) valueA.get("after")).get("cola")).isEqualTo(BigDecimal.valueOf(333.3333)); Assertions.assertThat(((Struct) valueA.get("after")).get("cola")).isEqualTo(BigDecimal.valueOf(333.3333));
Assertions.assertThat(((Struct) valueA.get("after")).get("colb")).isEqualTo(BigDecimal.valueOf(3333)); Assertions.assertThat(((Struct) valueA.get("after")).get("colb")).isEqualTo(BigDecimal.valueOf(3333));
Assertions.assertThat(((Struct) valueA.get("after")).get("colc")).isEqualTo(BigDecimal.valueOf(3333.3)); Assertions.assertThat(((Struct) valueA.get("after")).get("colc")).isEqualTo(BigDecimal.valueOf(3333.3));
Assertions.assertThat(((Struct) valueA.get("after")).get("cold")).isEqualTo(BigDecimal.valueOf(33333333)); Assertions.assertThat(((Struct) valueA.get("after")).get("cold")).isEqualTo(BigDecimal.valueOf(33333333));
stopConnector(); stopConnector();
} }
private void assertSchema(Struct valueA, Schema expected) {
Assertions.assertThat(valueA.schema().field("after").schema().field("cola").schema()).isEqualTo(expected);
Assertions.assertThat(valueA.schema().field("after").schema().field("colb").schema()).isEqualTo(expected);
Assertions.assertThat(valueA.schema().field("after").schema().field("colc").schema()).isEqualTo(expected);
Assertions.assertThat(valueA.schema().field("after").schema().field("cold").schema()).isEqualTo(expected);
}
} }