package io.dropwizard.jdbi.args; import org.junit.Test; import org.mockito.Mockito; import org.skife.jdbi.v2.StatementContext; import java.sql.PreparedStatement; import java.sql.Timestamp; import java.sql.Types; import java.time.Instant; import java.time.OffsetDateTime; import java.time.ZoneId; import java.util.Optional; public class OffsetDateTimeArgumentTest { private final PreparedStatement statement = Mockito.mock(PreparedStatement.class); private final StatementContext context = Mockito.mock(StatementContext.class); @Test public void apply() throws Exception { final Instant now = OffsetDateTime.now().toInstant(); final OffsetDateTime dateTime = OffsetDateTime.ofInstant(now, ZoneId.systemDefault()); new OffsetDateTimeArgument(dateTime, Optional.empty()).apply(1, statement, context); Mockito.verify(statement).setTimestamp(1, Timestamp.from(now)); } @Test public void apply_ValueIsNull() throws Exception { new OffsetDateTimeArgument(null, Optional.empty()).apply(1, statement, context); Mockito.verify(statement).setNull(1, Types.TIMESTAMP); } }