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