use of org.junit.jupiter.params.provider.ArgumentsSource in project siesta by cadenzauk.
the class DatabaseIntegrationTest method currentDateTest.
@ParameterizedTest
@ArgumentsSource(TestCaseArgumentsProvider.class)
@TestCase({ "America/Anchorage" })
@TestCase({ "America/Sao_Paulo" })
@TestCase({ "UTC" })
@TestCase({ "Europe/London" })
@TestCase({ "Africa/Johannesburg" })
@TestCase({ "Pacific/Chatham" })
void currentDateTest(String timeZone) {
Database database = testDatabase(dataSource, dialect);
try (UncheckedAutoCloseable ignored = TemporalTestUtil.withTimeZone(timeZone)) {
LocalDate before = LocalDate.now(database.databaseTimeZone());
LocalDate now = database.select(currentDate()).single();
LocalDate after = LocalDate.now(database.databaseTimeZone());
System.out.printf("%s <= %s <= %s%n", before, now, after);
assertThat(before.isAfter(now), is(false));
assertThat(now.isAfter(after), is(false));
}
}
use of org.junit.jupiter.params.provider.ArgumentsSource in project siesta by cadenzauk.
the class DatabaseIntegrationTest method zonedDateTimePartFuncs.
@ParameterizedTest
@ArgumentsSource(TestCaseArgumentsProvider.class)
@TestCase({ "America/Anchorage" })
@TestCase({ "America/Sao_Paulo" })
@TestCase({ "UTC" })
@TestCase({ "Europe/London" })
@TestCase({ "Africa/Johannesburg" })
@TestCase({ "Pacific/Chatham" })
void zonedDateTimePartFuncs(String timeZone) {
Database database = testDatabaseBuilder(dialect).defaultSqlExecutor(JdbcSqlExecutor.of(dataSource)).databaseTimeZone(ZoneId.of(timeZone)).build();
ZonedDateTime dateTime = RandomValues.randomZonedDateTime(database.databaseTimeZone());
Tuple7<Integer, Integer, Integer, Integer, Integer, Integer, Integer> result = database.select(year(LiteralExpression.of(dateTime))).comma(month(ValueExpression.of(dateTime))).comma(day(LiteralExpression.of(dateTime))).comma(hour(ValueExpression.of(dateTime))).comma(hour(LiteralExpression.of(dateTime))).comma(minute(LiteralExpression.of(dateTime))).comma(second(ValueExpression.of(dateTime))).single();
assertThat(result.item1(), is(dateTime.getYear()));
assertThat(result.item2(), is(dateTime.getMonthValue()));
assertThat(result.item3(), is(dateTime.getDayOfMonth()));
assertThat(result.item4(), is(dateTime.getHour()));
assertThat(result.item5(), is(dateTime.getHour()));
assertThat(result.item6(), is(dateTime.getMinute()));
assertThat(result.item7(), is(dateTime.getSecond()));
}
use of org.junit.jupiter.params.provider.ArgumentsSource in project siesta by cadenzauk.
the class DatabaseIntegrationTest method canRoundTripLocalDateTimes.
@ParameterizedTest
@ArgumentsSource(TestCaseArgumentsProvider.class)
@TestCase({ "America/Anchorage" })
@TestCase({ "America/Sao_Paulo" })
@TestCase({ "UTC" })
@TestCase({ "Europe/London" })
@TestCase({ "Africa/Johannesburg" })
@TestCase({ "Pacific/Chatham" })
void canRoundTripLocalDateTimes(String timeZone) {
Database database = testDatabase(dataSource, dialect);
try (UncheckedAutoCloseable ignored = withTimeZone(timeZone)) {
LocalDateTime expected = randomLocalDateTime();
TestRow input = TestRow.of(expected);
database.insert(input);
LocalDateTime result = database.from(TestRow.class).select(TestRow::localDateTimeOpt).where(TestRow::guid).isEqualTo(input.guid()).single();
assertThat(result, is(expected));
}
}
use of org.junit.jupiter.params.provider.ArgumentsSource in project siesta by cadenzauk.
the class DatabaseIntegrationTest method currentTimestampTest.
@ParameterizedTest
@ArgumentsSource(TestCaseArgumentsProvider.class)
@TestCase({ "America/Anchorage" })
@TestCase({ "America/Sao_Paulo" })
@TestCase({ "UTC" })
@TestCase({ "Europe/London" })
@TestCase({ "Africa/Johannesburg" })
@TestCase({ "Pacific/Chatham" })
void currentTimestampTest(String timeZone) {
Database database = testDatabase(dataSource, dialect);
try (UncheckedAutoCloseable ignored = TemporalTestUtil.withTimeZone(timeZone)) {
ZonedDateTime before = ZonedDateTime.now(ZoneId.of("UTC")).minusSeconds(10);
ZonedDateTime now = database.select(currentTimestamp()).single();
ZonedDateTime after = ZonedDateTime.now(ZoneId.of("UTC")).plusSeconds(10);
System.out.printf("%s <= %s <= %s%n", before, now, after);
assertThat(before.isAfter(now), is(false));
assertThat(now.isAfter(after), is(false));
}
}
use of org.junit.jupiter.params.provider.ArgumentsSource in project junit5 by junit-team.
the class ParameterizedTestExtension method provideTestTemplateInvocationContexts.
@Override
public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext context) {
Method templateMethod = context.getRequiredTestMethod();
ParameterizedTestNameFormatter formatter = createNameFormatter(templateMethod);
AtomicLong invocationCount = new AtomicLong(0);
// @formatter:off
return findRepeatableAnnotations(templateMethod, ArgumentsSource.class).stream().map(ArgumentsSource::value).map(ReflectionUtils::newInstance).map(provider -> AnnotationConsumerInitializer.initialize(templateMethod, provider)).flatMap(provider -> arguments(provider, context)).map(Arguments::get).map(arguments -> consumedArguments(arguments, templateMethod)).map(arguments -> createInvocationContext(formatter, arguments)).peek(invocationContext -> invocationCount.incrementAndGet()).onClose(() -> Preconditions.condition(invocationCount.get() > 0, () -> "Configuration error: You must provide at least one argument for this @" + ParameterizedTest.class.getSimpleName()));
// @formatter:on
}
Aggregations