use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class BooleanExpressionTest method testOr.
@ParameterizedTest
@MethodSource("argsForOr")
void testOr(BiFunction<Alias<SalespersonRow>, BooleanExpression, BooleanExpression> method, String expectedSql) {
MockitoAnnotations.initMocks(this);
Database database = testDatabase(new AnsiDialect());
Alias<SalespersonRow> alias = database.table(SalespersonRow.class).as("s");
Scope scope = new Scope(database, alias);
when(sut.precedence()).thenReturn(Precedence.UNARY);
method.apply(alias, sut);
verify(sut).appendOr(appendArg.capture());
assertThat(appendArg.getValue().sql(scope), is(expectedSql));
}
use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class TypedExpressionTest method columnAncCast.
@ParameterizedTest(name = "{1}")
@MethodSource({ "parametersForColumn", "parametersForCast" })
void columnAncCast(Function<Alias<TestTable>, ExpressionBuilder<Integer, BooleanExpression>> method, String expectedSql, Object[] expectedArgs) {
Database database = Database.newBuilder().build();
Alias<TestTable> alias = database.table(TestTable.class).as("t");
Scope scope = new Scope(database, alias);
ExpressionBuilder<Integer, BooleanExpression> result = method.apply(alias);
assertThat(result.sql(scope), is(expectedSql));
assertThat(result.args(scope).toArray(), is(expectedArgs));
}
use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class TypedExpressionTest method arithmeticOperators.
@ParameterizedTest(name = "{1}")
@MethodSource("parametersForArithmeticOperators")
void arithmeticOperators(BiFunction<TypedExpression<Integer>, Alias<TestTable>, TypedExpression<Integer>> method, String expectedSql, Object[] expectedArgs) {
Database database = Database.newBuilder().build();
Alias<TestTable> alias = database.table(TestTable.class).as("t");
Scope scope = new Scope(database, alias);
when(sut.precedence()).thenReturn(Precedence.COLUMN);
when(sut.sql(scope)).thenReturn("lhs");
when(sut.args(scope)).thenReturn(Stream.of(1, 2));
TypedExpression<Integer> result = method.apply(sut, alias);
assertThat(result.sql(scope), is("lhs" + expectedSql));
assertThat(result.args(scope).toArray(), is(ArrayUtils.addAll(toArray(1, 2), expectedArgs)));
}
use of com.cadenzauk.siesta.Scope in project siesta by cadenzauk.
the class SelectStatementTest method scope.
@Test
void scope() {
Scope scope = createScope();
SelectStatement<Integer> sut = new SelectStatement<>(scope, TypeToken.of(Integer.class), from, rowMapper, projection);
Scope result = sut.scope();
assertThat(result, sameInstance(scope));
}
Aggregations