/*
* Copyright 2004-2015 the Seasar Foundation and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package org.seasar.extension.jdbc.types;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.TimeZone;
import junit.framework.TestCase;
/**
* @author taedium
*
*/
public class CalendarSqlDateTypeTest extends TestCase {
private CalendarSqlDateType cdType = new CalendarSqlDateType();
protected void setUp() throws Exception {
super.setUp();
TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
}
protected void tearDown() throws Exception {
TimeZone.setDefault(null);
super.tearDown();
}
/**
*
* @throws Exception
*/
public void testToSqlDate() throws Exception {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2007);
calendar.set(Calendar.MONTH, Calendar.NOVEMBER);
calendar.set(Calendar.DATE, 25);
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 34);
calendar.set(Calendar.SECOND, 56);
calendar.set(Calendar.MILLISECOND, 789);
Date date = cdType.toSqlDate(calendar);
calendar.clear();
calendar.setTime(date);
assertEquals(2007, calendar.get(Calendar.YEAR));
assertEquals(Calendar.NOVEMBER, calendar.get(Calendar.MONTH));
assertEquals(25, calendar.get(Calendar.DATE));
assertEquals(0, calendar.get(Calendar.HOUR_OF_DAY));
assertEquals(0, calendar.get(Calendar.MINUTE));
assertEquals(0, calendar.get(Calendar.SECOND));
assertEquals(0, calendar.get(Calendar.MILLISECOND));
}
/**
*
* @throws Exception
*/
public void testToSqlDate_fromString() throws Exception {
Date date = cdType.toSqlDate("2008/01/28");
assertNotNull(date);
}
/**
*
* @throws Exception
*/
public void testToSqlDate_timeZone() throws Exception {
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("JST"));
calendar.set(Calendar.YEAR, 2007);
calendar.set(Calendar.MONTH, Calendar.NOVEMBER);
calendar.set(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 5);
calendar.set(Calendar.MINUTE, 34);
calendar.set(Calendar.SECOND, 56);
calendar.set(Calendar.MILLISECOND, 789);
Date date = cdType.toSqlDate(calendar);
calendar = Calendar.getInstance();
calendar.setTime(date);
assertEquals(2007, calendar.get(Calendar.YEAR));
assertEquals(Calendar.OCTOBER, calendar.get(Calendar.MONTH));
assertEquals(31, calendar.get(Calendar.DATE));
assertEquals(0, calendar.get(Calendar.HOUR_OF_DAY));
assertEquals(0, calendar.get(Calendar.MINUTE));
assertEquals(0, calendar.get(Calendar.SECOND));
assertEquals(0, calendar.get(Calendar.MILLISECOND));
}
/**
*
* @throws Exception
*/
public void testToText() throws Exception {
Timestamp timestamp = Timestamp
.valueOf("2007-11-29 13:14:15.123456789");
Calendar value = Calendar.getInstance();
value.setTime(timestamp);
assertEquals("'2007-11-29'", cdType.toText(value));
}
}