@Test public void bindBeanQualifiedSetterParam() { dbRule.getJdbi() .registerArgument(new ReversedStringArgumentFactory()) .useHandle(handle -> { handle.createUpdate("INSERT INTO something (id, name) VALUES (:id, :name)") .bindBean(new QualifiedSetterParamThing(1, "abc")) .execute(); assertThat(handle.select("SELECT name FROM something") .mapTo(String.class) .findOnly()) .isEqualTo("cba"); }); }
@Test public void bindMethodsQualifiedMethod() { dbRule.getJdbi() .registerArgument(new ReversedStringArgumentFactory()) .useHandle(handle -> { handle.createUpdate("INSERT INTO something (id, name) VALUES (:id, :name)") .bindMethods(new QualifiedMethodThing(1, "abc")) .execute(); assertThat(handle.select("SELECT name FROM something") .mapTo(String.class) .findOnly()) .isEqualTo("cba"); }); }
@Test public void bindBeanQualifiedSetter() { dbRule.getJdbi() .registerArgument(new ReversedStringArgumentFactory()) .useHandle(handle -> { handle.createUpdate("INSERT INTO something (id, name) VALUES (:id, :name)") .bindBean(new QualifiedSetterThing(1, "abc")) .execute(); assertThat(handle.select("SELECT name FROM something") .mapTo(String.class) .findOnly()) .isEqualTo("cba"); }); }
@Test public void bindBeanQualifiedGetter() { dbRule.getJdbi() .registerArgument(new ReversedStringArgumentFactory()) .useHandle(handle -> { handle.createUpdate("INSERT INTO something (id, name) VALUES (:id, :name)") .bindBean(new QualifiedGetterThing(1, "abc")) .execute(); assertThat(handle.select("SELECT name FROM something") .mapTo(String.class) .findOnly()) .isEqualTo("cba"); }); }
@Test public void bindFieldsQualified() { dbRule.getJdbi() .registerArgument(new ReversedStringArgumentFactory()) .useHandle(handle -> { handle.createUpdate("INSERT INTO something (id, name) VALUES (:id, :name)") .bindFields(new QualifiedFieldThing(1, "abc")) .execute(); assertThat(handle.select("SELECT name FROM something") .mapTo(String.class) .findOnly()) .isEqualTo("cba"); }); }
@Test public void registerArgumentFactory() { dbRule.getJdbi() .registerArgument(new ReversedStringArgumentFactory()) .useHandle(handle -> { handle.createUpdate("INSERT INTO something (id, name) VALUES (1, :name)") .bindByType("name", "abc", QualifiedType.of(String.class).with(Reversed.class)) .execute(); assertThat( handle.select("SELECT name FROM something") .mapTo(String.class) .findOnly()) .isEqualTo("cba"); }); }
@Test public void configArgumentsRegister() { dbRule.getJdbi() .configure(Arguments.class, config -> config.register(new ReversedStringArgumentFactory())) .useHandle(handle -> { handle.createUpdate("INSERT INTO something (id, name) VALUES (1, :name)") .bindByType("name", "abc", QualifiedType.of(String.class).with(Reversed.class)) .execute(); assertThat( handle.select("SELECT name FROM something") .mapTo(String.class) .findOnly()) .isEqualTo("cba"); }); }
@Test public void bindMultipleQualifiers() { dbRule.getJdbi() // should use this one - register first so it's consulted last .registerArgument(new ReversedUpperCaseStringArgumentFactory()) .registerArgument(new ReversedStringArgumentFactory()) .registerArgument(new UpperCaseArgumentFactory()) .useHandle(handle -> { handle.createUpdate("INSERT INTO something (id, name) VALUES (1, :name)") .bindByType("name", "abc", QualifiedType.of(String.class).with(Reversed.class, UpperCase.class)) .execute(); assertThat(handle.select("SELECT name FROM something") .mapTo(String.class) .findOnly()) .isEqualTo("CBA"); }); }