package com.fdar.apress.s2.util; import junit.framework.TestCase; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; public class TimeUtilTest extends TestCase { TimeUtil timeUtil; public void testParseTimeUS() throws Exception { final Locale locale = Locale.US; this.timeUtil = new TimeUtil(); timeUtil.parseTime("09:10 am", locale); assertTrue(timeUtil.isValid()); assertEquals(timeUtil.getHour(), 9); assertEquals(timeUtil.getMinute(), 10); assertEquals(Calendar.AM, timeUtil.getAmOrPm()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("9 am", locale); assertTrue(timeUtil.isValid()); assertEquals(timeUtil.getHour(), 9); assertEquals(timeUtil.getMinute(), 0); assertEquals(Calendar.AM, timeUtil.getAmOrPm()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("9:10 PM", locale); assertTrue(timeUtil.isValid()); assertEquals(21, timeUtil.getHour()); assertEquals(10, timeUtil.getMinute()); assertEquals(Calendar.PM, timeUtil.getAmOrPm()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("09:10Am", locale); assertTrue(timeUtil.isValid()); assertEquals(timeUtil.getHour(), 9); assertEquals(timeUtil.getMinute(), 10); assertEquals(Calendar.AM, timeUtil.getAmOrPm()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("13:10 am", locale); assertFalse(timeUtil.isValid()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("12:10 bm", locale); assertFalse(timeUtil.isValid()); this.timeUtil = new TimeUtil(); timeUtil.parseTime(null); assertFalse(timeUtil.isValid()); } public void testParseTimeDE() throws Exception { final Locale locale = Locale.GERMANY; this.timeUtil = new TimeUtil(); timeUtil.parseTime("09:10", locale); assertTrue(timeUtil.isValid()); assertEquals(timeUtil.getHour(), 9); assertEquals(timeUtil.getMinute(), 10); assertEquals(Calendar.AM, timeUtil.getAmOrPm()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("9", locale); assertTrue(timeUtil.isValid()); assertEquals(timeUtil.getHour(), 9); assertEquals(timeUtil.getMinute(), 0); assertEquals(Calendar.AM, timeUtil.getAmOrPm()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("21:10", locale); assertTrue(timeUtil.isValid()); assertEquals(21, timeUtil.getHour()); assertEquals(10, timeUtil.getMinute()); assertEquals(Calendar.PM, timeUtil.getAmOrPm()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("9:10Am", locale); assertTrue(timeUtil.isValid()); assertEquals(timeUtil.getHour(), 9); assertEquals(timeUtil.getMinute(), 10); assertEquals(Calendar.AM, timeUtil.getAmOrPm()); this.timeUtil = new TimeUtil(); timeUtil.parseTime("25:10", locale); assertFalse(timeUtil.isValid()); this.timeUtil = new TimeUtil(); timeUtil.parseTime(null); assertFalse(timeUtil.isValid()); } public void testResolveDate() throws Exception { final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm z"); final Date baseDate = dateFormat.parse("2000-01-01 00:00 GMT"); Date d = new TimeUtil().resolveDate(baseDate, -1, 22, 11); assertEquals(dateFormat.parse("2000-01-01 23:11 GMT"), d); d = new TimeUtil().resolveDate(baseDate, 2, 22, 11); assertEquals(dateFormat.parse("2000-01-01 20:11 GMT"), d); assertNull(new TimeUtil().resolveDate(null, 0,0,0)); } }