package org.activityinfo.server.digest; import org.activityinfo.server.util.date.DateCalc; import org.junit.Assert; import org.junit.Test; import java.util.Calendar; import java.util.Date; public class DigestDateUtilTest { private Date createDate() { Calendar cal = Calendar.getInstance(); cal.set(2013, 3, 18, 15, 6, 30); return cal.getTime(); } @Test public void testIsOnToday() { // morning Date d = createDate(); Calendar cal = Calendar.getInstance(); cal.setTime(d); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 10); Date c = cal.getTime(); Assert.assertTrue(DateCalc.isOnToday(d, c)); cal.add(Calendar.MINUTE, -20); c = cal.getTime(); Assert.assertFalse(DateCalc.isOnToday(d, c)); } @Test(expected = IllegalArgumentException.class) public void testIsOnTodayTomorrow() { // evening Date d = createDate(); Calendar cal = Calendar.getInstance(); cal.setTime(d); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); Date c = cal.getTime(); Assert.assertTrue(DateCalc.isOnToday(d, c)); cal.add(Calendar.MINUTE, 5); c = cal.getTime(); // should throw Assert.assertFalse(DateCalc.isOnToday(d, c)); } @Test public void testIsOnYesterday() { Date d = createDate(); Calendar cal = Calendar.getInstance(); cal.setTime(d); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 10); Date c = cal.getTime(); Assert.assertFalse(DateCalc.isOnYesterday(d, c)); cal.add(Calendar.MINUTE, -20); c = cal.getTime(); Assert.assertTrue(DateCalc.isOnYesterday(d, c)); } @Test public void testDaysBeforeMidnight() { Date d = createDate(); Calendar cal = Calendar.getInstance(); cal.setTime(d); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 10); Date c = cal.getTime(); Assert.assertEquals(0, DateCalc.daysBeforeMidnight(d, c)); cal.add(Calendar.MINUTE, -20); c = cal.getTime(); Assert.assertEquals(1, DateCalc.daysBeforeMidnight(d, c)); cal.setTime(d); cal.add(Calendar.DATE, -1); cal.add(Calendar.MINUTE, 5); Assert.assertEquals(1, DateCalc.daysBeforeMidnight(d, c)); cal.add(Calendar.MINUTE, -10); Assert.assertEquals(1, DateCalc.daysBeforeMidnight(d, c)); } @Test public void testAbsoluteDaysBetween() { Date d = createDate(); Calendar cal = Calendar.getInstance(); cal.setTime(d); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 10); Date c = cal.getTime(); Assert.assertEquals(0, DateCalc.absoluteDaysBetween(d, c)); cal.add(Calendar.MINUTE, -20); c = cal.getTime(); Assert.assertEquals(0, DateCalc.absoluteDaysBetween(d, c)); cal.setTime(d); cal.add(Calendar.DATE, -1); cal.add(Calendar.MINUTE, 5); c = cal.getTime(); Assert.assertEquals(0, DateCalc.absoluteDaysBetween(d, c)); cal.add(Calendar.MINUTE, -10); c = cal.getTime(); Assert.assertEquals(1, DateCalc.absoluteDaysBetween(d, c)); } }