@Test public void testFactoryNamedAndPositionalParametersMix() { assertThatThrownBy(() -> ParsedParameters.named(Arrays.asList("a", "b", "?"))) .isInstanceOf(IllegalArgumentException.class) .hasMessage("Named parameters list must not contain positional parameter \"?\""); }
@Test public void testFactoryNamedParameters() { final List<String> names = Arrays.asList("a", "b", "c"); final ParsedParameters parameters = ParsedParameters.named(names); assertThat(parameters).isNotNull(); assertThat(parameters.isPositional()).isFalse(); assertThat(parameters.getParameterCount()).isEqualTo(3); assertThat(parameters.getParameterNames()).containsExactly("a", "b", "c"); }
@Test public void testFactoryNamedParameters() { final List<String> names = Arrays.asList("a", "b", "c"); final String sql = "insert into test (a, b, c) values (?, ?, ?)"; final ParsedParameters parameters = ParsedParameters.named(names); final ParsedSql parsedSql = ParsedSql.of(sql, parameters); assertThat(parsedSql).isNotNull(); assertThat(parsedSql.getSql()).isEqualTo(sql); assertThat(parsedSql.getParameters().isPositional()).isFalse(); assertThat(parsedSql.getParameters().getParameterNames()).containsExactly("a", "b", "c"); }