@Test public void shouldProducePartitionMap() { partition = source.partition(REPLICA_SET_NAME); assertThat(partition.get(SourceInfo.REPLICA_SET_NAME)).isEqualTo(REPLICA_SET_NAME); assertThat(partition.get(SourceInfo.SERVER_ID_KEY)).isEqualTo("serverX"); assertThat(partition.size()).isEqualTo(2); }
@Test public void shouldParseReplicaSetName() { assertThat(MongoUtil.replicaSetUsedIn("rs0/")).isEqualTo("rs0"); assertThat(MongoUtil.replicaSetUsedIn("rs0/localhost")).isEqualTo("rs0"); assertThat(MongoUtil.replicaSetUsedIn("rs0/[::1/128]")).isEqualTo("rs0"); }
protected void assertColumn(Table table, String name, String typeName, int jdbcType, int length, String charsetName, boolean optional) { Column column = table.columnWithName(name); assertThat(column.name()).isEqualTo(name); assertThat(column.typeName()).isEqualTo(typeName); assertThat(column.jdbcType()).isEqualTo(jdbcType); assertThat(column.length()).isEqualTo(length); assertThat(column.charsetName()).isEqualTo(charsetName); assertFalse(column.scale().isPresent()); assertThat(column.isOptional()).isEqualTo(optional); assertThat(column.isGenerated()).isFalse(); assertThat(column.isAutoIncremented()).isFalse(); }
protected void assertTableIncluded(String fullyQualifiedTableName) { TableId tableId = TableId.parse(fullyQualifiedTableName); TableSchema tableSchema = mysql.schemaFor(tableId); assertThat(tableSchema).isNotNull(); assertThat(tableSchema.keySchema().name()).isEqualTo(SchemaNameAdjuster.validFullname(SERVER_NAME + "." + fullyQualifiedTableName + ".Key")); assertThat(tableSchema.valueSchema().name()).isEqualTo(SchemaNameAdjuster.validFullname(SERVER_NAME + "." + fullyQualifiedTableName + ".Value")); }
@Test public void shouldParseServerAddressesWithReplicaSetNameAndWithPort() { addresses = MongoUtil.parseAddresses("replicaSetName/host1:2111,host2:3111,[ff02::2:ff00:0/104]:4111,host4:5111"); assertThat(addresses.size()).isEqualTo(4); assertThat(addresses.get(0).getHost()).isEqualTo("host1"); assertThat(addresses.get(0).getPort()).isEqualTo(2111); assertThat(addresses.get(1).getHost()).isEqualTo("host2"); assertThat(addresses.get(1).getPort()).isEqualTo(3111); assertThat(addresses.get(2).getHost()).isEqualTo("ff02::2:ff00:0/104"); assertThat(addresses.get(2).getPort()).isEqualTo(4111); assertThat(addresses.get(3).getHost()).isEqualTo("host4"); assertThat(addresses.get(3).getPort()).isEqualTo(5111); }
@Test @FixFor("DBZ-759") public void correctlySerializesByteArray() { assertThat(SchemaUtil.asString(new byte[]{1, 3, 5, 7})).isEqualTo("[1, 3, 5, 7]"); }
/** * Verify that the given {@link SourceRecord} is a {@link Operation#READ READ} record. * * @param record the source record; may not be null */ public static void isValidRead(SourceRecord record) { assertThat(record.key()).isNotNull(); assertThat(record.keySchema()).isNotNull(); assertThat(record.valueSchema()).isNotNull(); Struct value = (Struct) record.value(); assertThat(value).isNotNull(); assertThat(value.getString(FieldName.OPERATION)).isEqualTo(Operation.READ.code()); assertThat(value.get(FieldName.AFTER)).isNotNull(); assertThat(value.get(FieldName.BEFORE)).isNull(); }
@Test public void shouldParseServerAddressesWithPort() { addresses = MongoUtil.parseAddresses("host1:2111,host2:3111,[ff02::2:ff00:0/104]:4111,host4:5111"); assertThat(addresses.size()).isEqualTo(4); assertThat(addresses.get(0).getHost()).isEqualTo("host1"); assertThat(addresses.get(0).getPort()).isEqualTo(2111); assertThat(addresses.get(1).getHost()).isEqualTo("host2"); assertThat(addresses.get(1).getPort()).isEqualTo(3111); assertThat(addresses.get(2).getHost()).isEqualTo("ff02::2:ff00:0/104"); assertThat(addresses.get(2).getPort()).isEqualTo(4111); assertThat(addresses.get(3).getHost()).isEqualTo("host4"); assertThat(addresses.get(3).getPort()).isEqualTo(5111); }
@Test @FixFor("DBZ-759") public void shouldCreateArrayFromValues() { Document document = Document.create(); document.setArray("my_field", 1, 2, 3); assertThat(document.toString()).isEqualTo( "{\n" + " \"my_field\" : [ 1, 2, 3 ]\n" + "}" ); }
/** * Verify that the given {@link SourceRecord} is a {@link Operation#UPDATE UPDATE} record. * * @param record the source record; may not be null */ public static void isValidUpdate(SourceRecord record, boolean keyExpected) { if (keyExpected) { assertThat(record.key()).isNotNull(); assertThat(record.keySchema()).isNotNull(); } else { assertThat(record.key()).isNull(); assertThat(record.keySchema()).isNull(); } assertThat(record.valueSchema()).isNotNull(); Struct value = (Struct) record.value(); assertThat(value).isNotNull(); assertThat(value.getString(FieldName.OPERATION)).isEqualTo(Operation.UPDATE.code()); assertThat(value.get(FieldName.AFTER)).isNotNull(); // assertThat(value.get(FieldName.BEFORE)).isNull(); // may be null }
@Test public void shouldParseServerIPv6AddressesWithReplicaSetNameAndWithPort() { addresses = MongoUtil.parseAddresses("replicaSetName/[::1/128]:2111,host2:3111,[ff02::2:ff00:0/104]:4111,host4:5111"); assertThat(addresses.size()).isEqualTo(4); assertThat(addresses.get(0).getHost()).isEqualTo("::1/128"); assertThat(addresses.get(0).getPort()).isEqualTo(2111); assertThat(addresses.get(1).getHost()).isEqualTo("host2"); assertThat(addresses.get(1).getPort()).isEqualTo(3111); assertThat(addresses.get(2).getHost()).isEqualTo("ff02::2:ff00:0/104"); assertThat(addresses.get(2).getPort()).isEqualTo(4111); assertThat(addresses.get(3).getHost()).isEqualTo("host4"); assertThat(addresses.get(3).getPort()).isEqualTo(5111); }
@Test public void connectorIsPresent() { assertThat(source.offsetStructForEvent("rs", null).getString(SourceInfo.DEBEZIUM_CONNECTOR_KEY)).isEqualTo(Module.name()); } }
private void validateFieldDef(Field expected) { ConfigDef configDef = connector.config(); assertThat(configDef.names()).contains(expected.name()); ConfigDef.ConfigKey key = configDef.configKeys().get(expected.name()); assertThat(key).isNotNull(); assertThat(key.name).isEqualTo(expected.name()); assertThat(key.displayName).isEqualTo(expected.displayName()); assertThat(key.importance).isEqualTo(expected.importance()); assertThat(key.documentation).isEqualTo(expected.description()); assertThat(key.type).isEqualTo(expected.type()); assertThat(key.defaultValue).isEqualTo(expected.defaultValue()); assertThat(key.dependents).isEqualTo(expected.dependents()); assertThat(key.width).isNotNull(); assertThat(key.group).isNotNull(); assertThat(key.orderInGroup).isGreaterThan(0); assertThat(key.validator).isNull(); assertThat(key.recommender).isNull(); } }
@Test public void shouldConvertFromProperties() { Properties props = new Properties(); props.setProperty("A", "a"); props.setProperty("B", "b"); props.setProperty("1", "1"); config = Configuration.from(props); assertThat(config.getString("A")).isEqualTo("a"); assertThat(config.getString("B")).isEqualTo("b"); assertThat(config.getString("1")).isEqualTo("1"); assertThat(config.getInteger("1")).isEqualTo(1); // converts assertThat(config.getBoolean("1")).isNull(); // not a boolean }
@FixFor("DBZ-107") @Test public void shouldRemoveNewlinesFromGtidSet() { String gtidExecuted = "036d85a9-64e5-11e6-9b48-42010af0000c:1-2,\n" + "7145bf69-d1ca-11e5-a588-0242ac110004:1-3149,\n" + "7c1de3f2-3fd2-11e6-9cdc-42010af000bc:1-39"; String gtidCleaned = "036d85a9-64e5-11e6-9b48-42010af0000c:1-2," + "7145bf69-d1ca-11e5-a588-0242ac110004:1-3149," + "7c1de3f2-3fd2-11e6-9cdc-42010af000bc:1-39"; source.setCompletedGtidSet(gtidExecuted); assertThat(source.gtidSet()).isEqualTo(gtidCleaned); }
/** * Verify that the given {@link SourceRecord} is a {@link Operation#CREATE INSERT/CREATE} record. * * @param record the source record; may not be null */ public static void isValidInsert(SourceRecord record, boolean keyExpected) { if (keyExpected) { assertThat(record.key()).isNotNull(); assertThat(record.keySchema()).isNotNull(); } else { assertThat(record.key()).isNull(); assertThat(record.keySchema()).isNull(); } assertThat(record.valueSchema()).isNotNull(); Struct value = (Struct) record.value(); assertThat(value).isNotNull(); assertThat(value.getString(FieldName.OPERATION)).isEqualTo(Operation.CREATE.code()); assertThat(value.get(FieldName.AFTER)).isNotNull(); assertThat(value.get(FieldName.BEFORE)).isNull(); }
@Test public void shouldParseMultiAbsolutePath() { path = parse("/a/b/c/d/e"); assertThat(path.isRoot()).isFalse(); assertThat(path.isSingle()).isFalse(); assertThat(path.size()).isEqualTo(5); assertThat(path.segment(0)).isEqualTo("a"); assertThat(path.segment(1)).isEqualTo("b"); assertThat(path.segment(2)).isEqualTo("c"); assertThat(path.segment(3)).isEqualTo("d"); assertThat(path.segment(4)).isEqualTo("e"); }
@Test public void shouldCreateInternalFields() { config = Configuration.create().with(Field.createInternal("a"), "a1").build(); assertThat(config.getString("internal.a")).isEqualTo("a1"); }
/** * Verify that the given {@link SourceRecord} is a {@link Operation#DELETE DELETE} record. * * @param record the source record; may not be null */ public static void isValidDelete(SourceRecord record, boolean keyExpected) { if (keyExpected) { assertThat(record.key()).isNotNull(); assertThat(record.keySchema()).isNotNull(); } else { assertThat(record.key()).isNull(); assertThat(record.keySchema()).isNull(); } assertThat(record.valueSchema()).isNotNull(); Struct value = (Struct) record.value(); assertThat(value).isNotNull(); assertThat(value.getString(FieldName.OPERATION)).isEqualTo(Operation.DELETE.code()); assertThat(value.get(FieldName.BEFORE)).isNotNull(); assertThat(value.get(FieldName.AFTER)).isNull(); }
@Test public void shouldParseIPv4ServerAddressWithoPort() { address = MongoUtil.parseAddress("localhost:28017"); assertThat(address.getHost()).isEqualTo("localhost"); assertThat(address.getPort()).isEqualTo(28017); }