Search in sources :

Example 6 with Scope

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));
}
Also used : AnsiDialect(com.cadenzauk.siesta.dialect.AnsiDialect) Scope(com.cadenzauk.siesta.Scope) TestDatabase.testDatabase(com.cadenzauk.siesta.model.TestDatabase.testDatabase) Database(com.cadenzauk.siesta.Database) SalespersonRow(com.cadenzauk.siesta.model.SalespersonRow) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 7 with Scope

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));
}
Also used : Scope(com.cadenzauk.siesta.Scope) Database(com.cadenzauk.siesta.Database) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 8 with Scope

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)));
}
Also used : Scope(com.cadenzauk.siesta.Scope) Database(com.cadenzauk.siesta.Database) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 9 with Scope

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));
}
Also used : Scope(com.cadenzauk.siesta.Scope) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MockitoTest(com.cadenzauk.core.MockitoTest)

Aggregations

Scope (com.cadenzauk.siesta.Scope)9 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)6 Database (com.cadenzauk.siesta.Database)5 MethodSource (org.junit.jupiter.params.provider.MethodSource)5 AnsiDialect (com.cadenzauk.siesta.dialect.AnsiDialect)3 SalespersonRow (com.cadenzauk.siesta.model.SalespersonRow)3 TestDatabase.testDatabase (com.cadenzauk.siesta.model.TestDatabase.testDatabase)3 MockitoTest (com.cadenzauk.core.MockitoTest)1 Test (org.junit.jupiter.api.Test)1