Search in sources :

Example 1 with Alias

use of com.cadenzauk.siesta.Alias in project siesta by cadenzauk.

the class TableBuilderTest method embeddedIdFromAnnotation.

@Test
void embeddedIdFromAnnotation() {
    Database database = Database.newBuilder().defaultSchema("DEFAULT_SCHEMA").build();
    Alias<EmbeddedIdAnnotation> alias = database.table(EmbeddedIdAnnotation.class).as("t");
    String idSql = database.table(EmbeddedIdAnnotation.class).columns().flatMap(c -> c.idSql(alias)).collect(joining(" and "));
    assertThat(idSql, is("t.KEY_IDENTIFIER = ? and t.KEY_VERSION = ?"));
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) Embedded(javax.persistence.Embedded) ZonedDateTime(java.time.ZonedDateTime) Collectors.joining(java.util.stream.Collectors.joining) Test(org.junit.jupiter.api.Test) AttributeOverride(javax.persistence.AttributeOverride) BigDecimal(java.math.BigDecimal) Alias(com.cadenzauk.siesta.Alias) EmbeddedId(javax.persistence.EmbeddedId) Optional(java.util.Optional) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Database(com.cadenzauk.siesta.Database) Id(javax.persistence.Id) Database(com.cadenzauk.siesta.Database) Test(org.junit.jupiter.api.Test)

Example 2 with Alias

use of com.cadenzauk.siesta.Alias in project siesta by cadenzauk.

the class TableBuilderTest method idFromBuilderMandatory.

@Test
void idFromBuilderMandatory() {
    Database database = Database.newBuilder().defaultSchema("DEFAULT_SCHEMA").table(NoAnnotations.class, t -> t.column(NoAnnotations::id, c -> c.identifier(true))).build();
    Alias<NoAnnotations> alias = Alias.of(database.table(NoAnnotations.class));
    String idSql = database.table(NoAnnotations.class).columns().flatMap(c -> c.idSql(alias)).collect(joining(" and "));
    assertThat(idSql, is("DEFAULT_SCHEMA.NO_ANNOTATIONS.ID = ?"));
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) Embedded(javax.persistence.Embedded) ZonedDateTime(java.time.ZonedDateTime) Collectors.joining(java.util.stream.Collectors.joining) Test(org.junit.jupiter.api.Test) AttributeOverride(javax.persistence.AttributeOverride) BigDecimal(java.math.BigDecimal) Alias(com.cadenzauk.siesta.Alias) EmbeddedId(javax.persistence.EmbeddedId) Optional(java.util.Optional) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Database(com.cadenzauk.siesta.Database) Id(javax.persistence.Id) Database(com.cadenzauk.siesta.Database) Test(org.junit.jupiter.api.Test)

Example 3 with Alias

use of com.cadenzauk.siesta.Alias in project siesta by cadenzauk.

the class ExpectingJoinTest method testJoin.

@ParameterizedTest
@MethodSource("argsForJoin")
void testJoin(BiFunction<ExpectingJoin1<SalespersonRow>, Alias<SalespersonRow>[], ExpectingSelect<?>> method, String expectedSql) {
    MockitoAnnotations.initMocks(this);
    Database database = testDatabase(new AnsiDialect());
    @SuppressWarnings("unchecked") Alias<SalespersonRow>[] alias = toArray(database.table(SalespersonRow.class).as("s1"), database.table(SalespersonRow.class).as("s2"), database.table(SalespersonRow.class).as("s3"), database.table(SalespersonRow.class).as("s4"), database.table(SalespersonRow.class).as("s5"), database.table(SalespersonRow.class).as("s6"), database.table(SalespersonRow.class).as("s7"), database.table(SalespersonRow.class).as("s8"), database.table(SalespersonRow.class).as("s9"));
    method.apply(database.from(alias[0]), alias).select(alias[0], SalespersonRow::firstName, "name").list(transaction);
    verify(transaction).query(sql.capture(), args.capture(), rowMapper.capture());
    assertThat(sql.getValue(), is("select s1.FIRST_NAME as name from SIESTA.SALESPERSON s1 " + expectedSql));
    assertThat(args.getValue(), arrayWithSize(0));
}
Also used : AnsiDialect(com.cadenzauk.siesta.dialect.AnsiDialect) Alias(com.cadenzauk.siesta.Alias) TestDatabase.testDatabase(com.cadenzauk.siesta.model.TestDatabase.testDatabase) Database(com.cadenzauk.siesta.Database) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 4 with Alias

use of com.cadenzauk.siesta.Alias in project siesta by cadenzauk.

the class TableBuilderTest method embeddedIdFromBuilder.

@Test
void embeddedIdFromBuilder() {
    Database database = Database.newBuilder().defaultSchema("DEFAULT_SCHEMA").table(EmbeddedIdNoAnnotation.class, t -> t.embedded(Key.class, EmbeddedIdNoAnnotation::key, c -> c.identifier(true))).build();
    Alias<EmbeddedIdNoAnnotation> alias = Alias.of(database.table(EmbeddedIdNoAnnotation.class));
    String idSql = database.table(EmbeddedIdNoAnnotation.class).columns().flatMap(c -> c.idSql(alias)).collect(joining(" and "));
    assertThat(idSql, is("DEFAULT_SCHEMA.EMBEDDED_ID_NO_ANNOTATION.KEY_IDENTIFIER = ? and DEFAULT_SCHEMA.EMBEDDED_ID_NO_ANNOTATION.KEY_VERSION = ?"));
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) Embedded(javax.persistence.Embedded) ZonedDateTime(java.time.ZonedDateTime) Collectors.joining(java.util.stream.Collectors.joining) Test(org.junit.jupiter.api.Test) AttributeOverride(javax.persistence.AttributeOverride) BigDecimal(java.math.BigDecimal) Alias(com.cadenzauk.siesta.Alias) EmbeddedId(javax.persistence.EmbeddedId) Optional(java.util.Optional) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Database(com.cadenzauk.siesta.Database) Id(javax.persistence.Id) Database(com.cadenzauk.siesta.Database) Test(org.junit.jupiter.api.Test)

Example 5 with Alias

use of com.cadenzauk.siesta.Alias in project siesta by cadenzauk.

the class TableBuilderTest method idFromBuilderOptional.

@Test
void idFromBuilderOptional() {
    Database database = Database.newBuilder().defaultSchema("DEFAULT_SCHEMA").table(NoAnnotations.class, t -> t.column(NoAnnotations::name, c -> c.identifier(true))).build();
    Alias<NoAnnotations> alias = database.table(NoAnnotations.class).as("z");
    String idSql = database.table(NoAnnotations.class).columns().flatMap(c -> c.idSql(alias)).collect(joining(" and "));
    assertThat(idSql, is("z.NAME = ?"));
}
Also used : CoreMatchers.is(org.hamcrest.CoreMatchers.is) Embedded(javax.persistence.Embedded) ZonedDateTime(java.time.ZonedDateTime) Collectors.joining(java.util.stream.Collectors.joining) Test(org.junit.jupiter.api.Test) AttributeOverride(javax.persistence.AttributeOverride) BigDecimal(java.math.BigDecimal) Alias(com.cadenzauk.siesta.Alias) EmbeddedId(javax.persistence.EmbeddedId) Optional(java.util.Optional) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Database(com.cadenzauk.siesta.Database) Id(javax.persistence.Id) Database(com.cadenzauk.siesta.Database) Test(org.junit.jupiter.api.Test)

Aggregations

Alias (com.cadenzauk.siesta.Alias)6 Database (com.cadenzauk.siesta.Database)6 BigDecimal (java.math.BigDecimal)5 ZonedDateTime (java.time.ZonedDateTime)5 Optional (java.util.Optional)5 Collectors.joining (java.util.stream.Collectors.joining)5 AttributeOverride (javax.persistence.AttributeOverride)5 Embedded (javax.persistence.Embedded)5 EmbeddedId (javax.persistence.EmbeddedId)5 Id (javax.persistence.Id)5 CoreMatchers.is (org.hamcrest.CoreMatchers.is)5 MatcherAssert.assertThat (org.hamcrest.MatcherAssert.assertThat)5 Test (org.junit.jupiter.api.Test)5 AnsiDialect (com.cadenzauk.siesta.dialect.AnsiDialect)1 TestDatabase.testDatabase (com.cadenzauk.siesta.model.TestDatabase.testDatabase)1 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)1 MethodSource (org.junit.jupiter.params.provider.MethodSource)1