package mx.edu.um.util; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Iterator; import java.util.List; import java.util.Locale; import org.springframework.context.i18n.LocaleContextHolder; import junit.framework.TestCase; public class DateConverterTest extends TestCase { private DateConverter converter = new DateConverter(); public void testInternationalization() throws Exception { List locales = new ArrayList() { private static final long serialVersionUID = 1L; { add(Locale.US); add(Locale.GERMANY); add(Locale.FRANCE); add(Locale.CHINA); add(Locale.ITALY); } }; for (Iterator localeIter = locales.iterator(); localeIter.hasNext();) { Locale locale = (Locale) localeIter.next(); LocaleContextHolder.setLocale(locale); testConvertStringToDate(); testConvertDateToString(); testConvertStringToTimestamp(); testConvertTimestampToString(); } } public void testConvertStringToDate() throws Exception { Date today = new Date(); Calendar todayCalendar = new GregorianCalendar(); todayCalendar.setTime(today); String datePart = DateUtil.convertDateToString(today); Date date = (Date) converter.convert(Date.class, datePart); Calendar cal = new GregorianCalendar(); cal.setTime(date); assertEquals(todayCalendar.get(Calendar.YEAR), cal.get(Calendar.YEAR)); assertEquals(todayCalendar.get(Calendar.MONTH), cal.get(Calendar.MONTH)); assertEquals(todayCalendar.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.DAY_OF_MONTH)); } public void testConvertDateToString() throws Exception { Calendar cal = new GregorianCalendar(2005, 00, 16); String date = (String) converter.convert(String.class, cal.getTime()); assertEquals(DateUtil.convertDateToString(cal.getTime()), date); } public void testConvertStringToTimestamp() throws Exception { Date today = new Date(); Calendar todayCalendar = new GregorianCalendar(); todayCalendar.setTime(today); String datePart = DateUtil.convertDateToString(today); Timestamp time = (Timestamp) converter.convert(Timestamp.class, datePart + " 01:02:03.4"); Calendar cal = new GregorianCalendar(); cal.setTimeInMillis(time.getTime()); assertEquals(todayCalendar.get(Calendar.YEAR), cal.get(Calendar.YEAR)); assertEquals(todayCalendar.get(Calendar.MONTH), cal.get(Calendar.MONTH)); assertEquals(todayCalendar.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.DAY_OF_MONTH)); } public void testConvertTimestampToString() throws Exception { Timestamp timestamp = Timestamp.valueOf("2005-03-10 01:02:03.4"); String time = (String) converter.convert(String.class, timestamp); assertEquals(DateUtil.getDateTime(DateUtil.getDateTimePattern(), timestamp), time); } }