/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.util.db;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNull;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import org.testng.annotations.Test;
import org.threeten.bp.Instant;
import org.threeten.bp.LocalDate;
import org.threeten.bp.LocalDateTime;
import org.threeten.bp.LocalTime;
import com.opengamma.util.test.TestGroup;
import com.opengamma.util.time.DateUtils;
/**
* Test DbDateUtils.
*/
@SuppressWarnings("deprecation")
@Test(groups = TestGroup.UNIT)
public class DbDateUtilsTest {
static {
DateUtils.initTimeZone();
}
//-------------------------------------------------------------------------
public void test_toSqlTimestamp() {
Instant instant = Instant.now();
Timestamp ts = DbDateUtils.toSqlTimestamp(instant);
assertEquals(instant.toEpochMilli(), ts.getTime());
assertEquals(instant.getNano(), ts.getNanos());
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_toSqlTimestamp_LocalTime_null() {
DbDateUtils.toSqlTimestamp((LocalTime) null);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_toSqlTimestamp_InstantProvider_null() {
DbDateUtils.toSqlTimestamp((Instant) null);
}
public void test_fromSqlTimestamp() {
Timestamp ts = new Timestamp(123456789L);
ts.setNanos(789654321);
Instant instant = DbDateUtils.fromSqlTimestamp(ts);
assertEquals(ts.getTime(), instant.toEpochMilli());
assertEquals(ts.getNanos(), instant.getNano());
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_fromSqlTimestamp_null() {
DbDateUtils.fromSqlTimestamp(null);
}
public void test_fromSqlTimestamp_max() {
assertEquals(DbDateUtils.MAX_INSTANT, DbDateUtils.fromSqlTimestamp(DbDateUtils.MAX_SQL_TIMESTAMP));
}
public void test_fromSqlTimestampNullFarFuture() {
Timestamp ts = new Timestamp(123456789L);
ts.setNanos(789654321);
Instant instant = DbDateUtils.fromSqlTimestampNullFarFuture(ts);
assertEquals(ts.getTime(), instant.toEpochMilli());
assertEquals(ts.getNanos(), instant.getNano());
}
public void test_fromSqlTimestampNullFarFuture_max() {
assertNull(DbDateUtils.fromSqlTimestampNullFarFuture(DbDateUtils.MAX_SQL_TIMESTAMP));
}
//-------------------------------------------------------------------------
public void test_toSqlDateTime() {
assertEquals(new Timestamp(2005 - 1900, 11 - 1, 7, 12, 34, 56, 7), DbDateUtils.toSqlDateTime(LocalDateTime.of(2005, 11, 7, 12, 34, 56, 7)));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_toSqlDateTime_null() {
DbDateUtils.toSqlDateTime(null);
}
public void test_fromSqlDateTime() {
assertEquals(LocalDateTime.of(2005, 11, 7, 12, 34, 56, 7), DbDateUtils.fromSqlDateTime(new Timestamp(2005 - 1900, 11 - 1, 7, 12, 34, 56, 7)));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_fromSqlDateTimep_null() {
DbDateUtils.fromSqlDateTime(null);
}
public void test_fromSqlDateTime_max() {
assertEquals(LocalDateTime.of(9999, 12, 31, 23, 59, 59, 0), DbDateUtils.fromSqlDateTime(DbDateUtils.MAX_SQL_TIMESTAMP));
}
public void test_fromSqlDateTimeNullFarFuture() {
assertEquals(LocalDateTime.of(2005, 11, 7, 12, 34, 56, 7), DbDateUtils.fromSqlDateTimeNullFarFuture(new Timestamp(2005 - 1900, 11 - 1, 7, 12, 34, 56, 7)));
}
public void test_fromSqlDateTimeNullFarFuture_max() {
assertNull(DbDateUtils.fromSqlDateTimeNullFarFuture(DbDateUtils.MAX_SQL_TIMESTAMP));
}
//-------------------------------------------------------------------------
public void test_toSqlDate() {
assertEquals(new Date(2005 - 1900, 11 - 1, 12), DbDateUtils.toSqlDate(LocalDate.of(2005, 11, 12)));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_toSqlDate_null() {
DbDateUtils.toSqlDate(null);
}
public void test_toSqlDateNullFarFuture() {
assertEquals(new Date(2005 - 1900, 11 - 1, 12), DbDateUtils.toSqlDateNullFarFuture(LocalDate.of(2005, 11, 12)));
assertEquals(DbDateUtils.MAX_SQL_DATE, DbDateUtils.toSqlDateNullFarFuture(null));
}
public void test_toSqlDateNullFarPast() {
assertEquals(new Date(2005 - 1900, 11 - 1, 12), DbDateUtils.toSqlDateNullFarPast(LocalDate.of(2005, 11, 12)));
assertEquals(DbDateUtils.MIN_SQL_DATE, DbDateUtils.toSqlDateNullFarPast(null));
}
public void test_fromSqlDate() {
assertEquals(LocalDate.of(2005, 11, 12), DbDateUtils.fromSqlDate(new Date(2005 - 1900, 11 - 1, 12)));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_fromSqlDate_null() {
DbDateUtils.fromSqlDate(null);
}
//-------------------------------------------------------------------------
public void test_toSqlTime() {
assertEquals(new Time(12, 34, 56), DbDateUtils.toSqlTime(LocalTime.of(12, 34, 56)));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_toSqlTime_null() {
DbDateUtils.toSqlTime(null);
}
public void test_fromSqlTime() {
assertEquals(LocalTime.of(12, 34, 56), DbDateUtils.fromSqlTime(new Time(12, 34, 56)));
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_fromSqlTime_time_null() {
DbDateUtils.fromSqlTime((Time) null);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_fromSqlTime_timestamp_null() {
DbDateUtils.fromSqlTime((Timestamp) null);
}
}