@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); }
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(); }
@Override public void shouldParseTimeWithNowDefault() { String ddl = "CREATE TABLE t1 ( " + "c1 int primary key auto_increment, " + "c2 datetime, " + "c3 datetime on update now(), " + "c4 char(4));"; parser.parse(ddl, tables); assertThat(tables.size()).isEqualTo(1); assertThat(listener.total()).isEqualTo(1); Table t = tables.forTable(new TableId(null, null, "t1")); assertThat(t).isNotNull(); assertThat(t.retrieveColumnNames()).containsExactly("c1", "c2", "c3", "c4"); assertThat(t.primaryKeyColumnNames()).containsExactly("c1"); assertColumn(t, "c1", "INT", Types.INTEGER, -1, -1, false, true, true); assertColumn(t, "c2", "DATETIME", Types.TIMESTAMP, -1, -1, true, false, false); assertColumn(t, "c3", "DATETIME", Types.TIMESTAMP, -1, -1, true, true, true); assertColumn(t, "c4", "CHAR", Types.CHAR, 4, -1, true, false, false); assertThat(t.columnWithName("c1").position()).isEqualTo(1); assertThat(t.columnWithName("c2").position()).isEqualTo(2); assertThat(t.columnWithName("c3").position()).isEqualTo(3); assertThat(t.columnWithName("c4").position()).isEqualTo(4); }
@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 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 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 shouldNotParseServerAddressesWithReplicaSetNameAndNoAddress() { addresses = MongoUtil.parseAddresses("replicaSetName/"); assertThat(addresses.size()).isEqualTo(1); assertThat(addresses.get(0).getHost()).isEqualTo(ServerAddress.defaultHost()); assertThat(addresses.get(0).getPort()).isEqualTo(ServerAddress.defaultPort()); }
@Test public void shouldParseServerAddressesWithReplicaSetNameAndWithoutPort() { addresses = MongoUtil.parseAddresses("replicaSetName/host1,host2,[::1/128],host4"); assertThat(addresses.size()).isEqualTo(4); assertThat(addresses.get(0).getHost()).isEqualTo("host1"); assertThat(addresses.get(0).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(1).getHost()).isEqualTo("host2"); assertThat(addresses.get(1).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(2).getHost()).isEqualTo("::1/128"); assertThat(addresses.get(2).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(3).getHost()).isEqualTo("host4"); assertThat(addresses.get(3).getPort()).isEqualTo(ServerAddress.defaultPort()); }
@Test public void shouldParseServerIPv6AddressesWithReplicaSetNameAndWithoutPort() { addresses = MongoUtil.parseAddresses("replicaSetName/[::1/128],host2,[ff02::2:ff00:0/104],host4"); assertThat(addresses.size()).isEqualTo(4); assertThat(addresses.get(0).getHost()).isEqualTo("::1/128"); assertThat(addresses.get(0).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(1).getHost()).isEqualTo("host2"); assertThat(addresses.get(1).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(2).getHost()).isEqualTo("ff02::2:ff00:0/104"); assertThat(addresses.get(2).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(3).getHost()).isEqualTo("host4"); assertThat(addresses.get(3).getPort()).isEqualTo(ServerAddress.defaultPort()); }
@Test public void shouldParseServerAddressesWithoutPort() { addresses = MongoUtil.parseAddresses("host1,host2,[::1/128],host4"); assertThat(addresses.size()).isEqualTo(4); assertThat(addresses.get(0).getHost()).isEqualTo("host1"); assertThat(addresses.get(0).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(1).getHost()).isEqualTo("host2"); assertThat(addresses.get(1).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(2).getHost()).isEqualTo("::1/128"); assertThat(addresses.get(2).getPort()).isEqualTo(ServerAddress.defaultPort()); assertThat(addresses.get(3).getHost()).isEqualTo("host4"); assertThat(addresses.get(3).getPort()).isEqualTo(ServerAddress.defaultPort()); }
@Test public void shouldParseIPv4ServerAddressWithoPort() { address = MongoUtil.parseAddress("localhost:28017"); assertThat(address.getHost()).isEqualTo("localhost"); assertThat(address.getPort()).isEqualTo(28017); }
@Test public void shouldParseIPv6ServerAddressWithPort() { address = MongoUtil.parseAddress("[::1/128]:28017"); assertThat(address.getHost()).isEqualTo("::1/128"); // removes brackets assertThat(address.getPort()).isEqualTo(28017); }
@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 }
@Test public void shouldParseStatementsWithQuotedIdentifiers() { parser.parse(readFile("ddl/mysql-quoted.ddl"), tables); Testing.print(tables); assertThat(tables.size()).isEqualTo(4); assertThat(listener.total()).isEqualTo(10); assertThat(tables.forTable("connector_test_ro", null, "products")).isNotNull(); assertThat(tables.forTable("connector_test_ro", null, "products_on_hand")).isNotNull(); assertThat(tables.forTable("connector_test_ro", null, "customers")).isNotNull(); assertThat(tables.forTable("connector_test_ro", null, "orders")).isNotNull(); }
@Test public void shouldTruncateStrings() { Configuration config = Configuration.create() .with("column.truncate.to.10.chars", fullyQualifiedNames.toUpperCase()) .build(); mappers = ColumnMappers.create(config); converter = mappers.mappingConverterFor(tableId, column); assertThat(converter).isNotNull(); assertThat(converter.convert("12345678901234567890").toString()).isEqualTo("1234567890"); assertThat(converter.convert("12345678901234567890").toString().length()).isEqualTo(10); assertThat(converter.convert("12345678901").toString()).isEqualTo("1234567890"); assertThat(converter.convert("12345678901").toString().length()).isEqualTo(10); assertThat(converter.convert("1234567890").toString()).isEqualTo("1234567890"); assertThat(converter.convert("1234567890").toString().length()).isEqualTo(10); assertThat(converter.convert("123456789").toString()).isEqualTo("123456789"); assertThat(converter.convert("123456789").toString().length()).isEqualTo(9); assertThat(converter.convert(null)).isNull(); // null values are unaltered }
@Test public void shouldCreateColumnWithAllFieldsSetToNonDefaults() { createColumnWithAllFieldsSetToNonDefaults(); assertThat(column.name()).isEqualTo("price"); assertThat(column.typeName()).isEqualTo("NUMBER"); assertThat(column.jdbcType()).isEqualTo(Types.DOUBLE); assertThat(column.length()).isEqualTo(5); assertThat(column.scale().get()).isEqualTo(2); assertThat(column.position()).isEqualTo(4); assertThat(column.isOptional()).isTrue(); assertThat(column.isAutoIncremented()).isTrue(); assertThat(column.isGenerated()).isTrue(); }
@Test public void shouldParseIPv4ServerAddressWithoutPort() { address = MongoUtil.parseAddress("localhost"); assertThat(address.getHost()).isEqualTo("localhost"); assertThat(address.getPort()).isEqualTo(ServerAddress.defaultPort()); }
@Test public void shouldParseIPv6ServerAddressWithoutPort() { address = MongoUtil.parseAddress("[::1/128]"); assertThat(address.getHost()).isEqualTo("::1/128"); // removes brackets assertThat(address.getPort()).isEqualTo(ServerAddress.defaultPort()); }
@Test public void shouldParseGrammarWithOneRequiredTokenAndLength() { pattern = parser.parse(TYPE, "BIT(L)"); assertThat(pattern).isNotNull(); type = pattern.match(text("BIT(3)")); assertThat(type.arrayDimensions()).isNull(); assertThat(type.length()).isEqualTo(3); assertThat(type.scale()).isEqualTo(-1); assertThat(type.name()).isEqualTo("BIT"); assertThat(type.expression()).isEqualTo("BIT(3)"); assertThat(type.jdbcType()).isEqualTo(TYPE); }
@Test public void shouldParseGrammarWithOptionalTokenLists() { pattern = parser.parse(TYPE, "TEXT [CHARACTER SET]"); assertThat(pattern).isNotNull(); type = pattern.match(text("TEXT CHARACTER SET")); assertThat(type.arrayDimensions()).isNull(); assertThat(type.length()).isEqualTo(-1); assertThat(type.scale()).isEqualTo(-1); assertThat(type.name()).isEqualTo("TEXT CHARACTER SET"); assertThat(type.expression()).isEqualTo("TEXT CHARACTER SET"); assertThat(type.jdbcType()).isEqualTo(TYPE); }