package com.spotify.heroic.grammar; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import java.time.LocalDateTime; import java.util.function.BiFunction; import static org.junit.Assert.assertEquals; @RunWith(MockitoJUnitRunner.class) public class DateTimeExpressionTest extends AbstractExpressionTest<DateTimeExpression> { private final LocalDateTime localDate = LocalDateTime.of(2000, 1, 1, 0, 0, 0, 0); private final String dateString = "2000-01-01 00:00:00.000"; @Override protected DateTimeExpression build(final Context ctx) { return new DateTimeExpression(ctx, localDate); } @Override protected BiFunction<Expression.Visitor<Void>, DateTimeExpression, Void> visitorMethod() { return Expression.Visitor::visitDateTime; } @Test public void parseLocalDateTimeTest() { assertEquals(localDate, DateTimeExpression.parseLocalDateTime(dateString)); } @Test(expected = IllegalArgumentException.class) public void parseLocalDateTimeThrowsTest() { DateTimeExpression.parseLocalDateTime("not a date"); } @Test public void parseTest() { assertEquals(new DateTimeExpression(ctx, localDate), DateTimeExpression.parse(ctx, dateString)); } @Test public void toReprTest() { assertEquals("{2000-01-01 00:00:00.000}", build().toRepr()); } }