package io.ebeaninternal.server.type; import io.ebean.config.JsonConfig; import org.junit.Test; import java.sql.Timestamp; import java.time.ZonedDateTime; import static org.junit.Assert.*; public class ScalarTypeZonedDateTimeTest { ScalarTypeZonedDateTime type = new ScalarTypeZonedDateTime(JsonConfig.DateTime.MILLIS); ZonedDateTime warmUp = ZonedDateTime.now(); @Test public void testConvertToMillis() throws Exception { warmUp.hashCode(); long now = System.currentTimeMillis(); long toMillis = type.convertToMillis(ZonedDateTime.now()); assertTrue(toMillis - now < 10); } @Test public void testConvertFromTimestamp() throws Exception { Timestamp now = new Timestamp(System.currentTimeMillis()); ZonedDateTime val1 = type.convertFromTimestamp(now); Timestamp timestamp = type.convertToTimestamp(val1); assertEquals(now, timestamp); } @Test public void testToJdbcType() throws Exception { Object jdbcType = type.toJdbcType(ZonedDateTime.now()); assertTrue(jdbcType instanceof Timestamp); } @Test public void testToBeanType() throws Exception { Timestamp timestamp = new Timestamp(System.currentTimeMillis()); ZonedDateTime localDateTime = type.toBeanType(timestamp); assertNotNull(localDateTime); Timestamp timestamp1 = type.convertToTimestamp(localDateTime); assertEquals(timestamp, timestamp1); } @Test public void testJson() throws Exception { ZonedDateTime now = ZonedDateTime.now(); JsonTester jsonTester = new JsonTester(type); jsonTester.test(now); ScalarTypeZonedDateTime typeNanos = new ScalarTypeZonedDateTime(JsonConfig.DateTime.NANOS); jsonTester = new JsonTester(typeNanos); jsonTester.test(now); ScalarTypeZonedDateTime typeIso = new ScalarTypeZonedDateTime(JsonConfig.DateTime.ISO8601); jsonTester = new JsonTester(typeIso); jsonTester.test(now); } }