@Test public void registerColumnMapper() { dbRule.getJdbi() .registerColumnMapper(new ReversedStringMapper()) .useHandle(handle -> { handle.execute("insert into something (id, name) values (1, 'abc')"); assertThat( handle.select("SELECT name FROM something") .mapTo(QualifiedType.of(String.class).with(Reversed.class)) .findOnly()) .isEqualTo("cba"); }); }
@Test public void mapBeanQualifiedGetter() { dbRule.getJdbi() .registerColumnMapper(new ReversedStringMapper()) .registerRowMapper(BeanMapper.factory(QualifiedGetterThing.class)) .useHandle(handle -> { handle.execute("INSERT INTO something (id, name) VALUES (1, 'abc')"); assertThat(handle.select("SELECT * FROM something") .mapTo(QualifiedGetterThing.class) .findOnly()) .isEqualTo(new QualifiedGetterThing(1, "cba")); }); }
@Test public void mapBeanQualifiedSetterParam() { dbRule.getJdbi() .registerColumnMapper(new ReversedStringMapper()) .registerRowMapper(BeanMapper.factory(QualifiedSetterParamThing.class)) .useHandle(handle -> { handle.execute("INSERT INTO something (id, name) VALUES (1, 'abc')"); assertThat(handle.select("SELECT * FROM something") .mapTo(QualifiedSetterParamThing.class) .findOnly()) .isEqualTo(new QualifiedSetterParamThing(1, "cba")); }); }
@Test public void configColumnMappersRegister() { dbRule.getJdbi() .configure(ColumnMappers.class, config -> config.register(new ReversedStringMapper())) .useHandle(handle -> { handle.execute("insert into something (id, name) values (1, 'abc')"); assertThat( handle.select("SELECT name FROM something") .mapTo(QualifiedType.of(String.class).with(Reversed.class)) .findOnly()) .isEqualTo("cba"); }); }
@Test public void mapBeanQualifiedSetter() { dbRule.getJdbi() .registerColumnMapper(new ReversedStringMapper()) .registerRowMapper(BeanMapper.factory(QualifiedSetterThing.class)) .useHandle(handle -> { handle.execute("INSERT INTO something (id, name) VALUES (1, 'abc')"); assertThat(handle.select("SELECT * FROM something") .mapTo(QualifiedSetterThing.class) .findOnly()) .isEqualTo(new QualifiedSetterThing(1, "cba")); }); }
@Test public void mapConstructorQualifiedParam() { dbRule.getJdbi() .registerColumnMapper(new ReversedStringMapper()) .registerRowMapper(ConstructorMapper.factory(QualifiedConstructorParamThing.class)) .useHandle(handle -> { handle.execute("INSERT INTO something (id, name) VALUES (1, 'abc')"); assertThat(handle.select("SELECT * FROM something") .mapTo(QualifiedConstructorParamThing.class) .findOnly()) .isEqualTo(new QualifiedConstructorParamThing(1, "cba")); }); }
@Test public void mapFieldsQualified() { dbRule.getJdbi() .registerColumnMapper(new ReversedStringMapper()) .registerRowMapper(FieldMapper.factory(QualifiedFieldThing.class)) .useHandle(handle -> { handle.execute("INSERT INTO something (id, name) VALUES (1, 'abc')"); assertThat(handle.select("SELECT * FROM something") .mapTo(QualifiedFieldThing.class) .findOnly()) .isEqualTo(new QualifiedFieldThing(1, "cba")); }); }
@Test public void mapMultipleQualifiers() { dbRule.getJdbi() // should use this one - register first so it's consulted last .registerColumnMapper(new ReversedUpperCaseStringMapper()) .registerColumnMapper(new ReversedStringMapper()) .registerColumnMapper(new UpperCaseStringMapper()) .useHandle(handle -> { handle.execute("INSERT INTO something (id, name) VALUES (1, 'abc')"); assertThat(handle.select("SELECT name FROM something") .mapTo(QualifiedType.of(String.class).with(Reversed.class, UpperCase.class)) .findOnly()) .isEqualTo("CBA"); }); } }