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