package ca.sqlpower.util; import java.util.Calendar; import junit.framework.TestCase; /** * Tests the Recurrence class. */ public class RecurrenceTest extends TestCase { public Recurrence r; private Calendar calendar; private Calendar calendar2; public void setUp() { r = new Recurrence(); calendar = Calendar.getInstance(); calendar.set(Calendar.MILLISECOND, 0); calendar2 = Calendar.getInstance(); calendar2.set(Calendar.MILLISECOND, 0); calendar.set(2004, 0, 25, 11, 30, 30); // 2004/01/25 11:30:30 r.setStartDate(calendar.getTime()); } /** * Ensures that nextOccurrence(Date baseDate) works * when the next occurrence is scheduled for later in the * same day as baseDate */ public void testDailySameDay() { r.setFrequency(new Frequency(Frequency.DAILY)); calendar.set(2004, 0, 26, 11, 00); // 2004/01/26 11:00 calendar2.set(2004, 0, 26, 11, 30, 30); // 2004/01/26 11:30:30 assertEquals(r.nextOccurrence(calendar.getTime()), calendar2.getTime()); } /** * Ensures that nextOccurrence(Date baseDate) works * when the next occurrence is scheduled for the next day */ public void testDailyNextDay() { r.setFrequency(new Frequency(Frequency.DAILY)); calendar.set(2004, 0, 26, 12, 00); // 2004/01/26 12:00 calendar2.set(2004, 0, 27, 11, 30, 30); // 2004/01/27 11:30:30 assertEquals(r.nextOccurrence(calendar.getTime()), calendar2.getTime()); } /** * Ensures that nextOccurrence(Date baseDate) works * when the next occurrence is scheduled for the next day * at the same time of day */ public void testDailyOnBoundary() { r.setFrequency(new Frequency(Frequency.DAILY)); calendar.set(2004, 0, 27, 11, 30, 30); // 2004/01/27 11:30:30 calendar2.set(2004, 0, 28, 11, 30, 30); // 2004/01/28 11:30:30 assertEquals(r.nextOccurrence(calendar.getTime()), calendar2.getTime()); } /** * Ensures that nextOccurrence(Date baseDate) works * when the next occurrence is scheduled for the same week */ public void testWeeklySameWeek() { r.setFrequency(new Frequency(Frequency.WEEKLY)); calendar.set(2004, 0, 24, 12, 00); // 2004/01/24 12:00 calendar2.set(2004, 0, 25, 11, 30, 30); // 2004/01/25 11:30:30 assertEquals(r.nextOccurrence(calendar.getTime()), calendar2.getTime()); } /** * Ensures that nextOccurrence(Date baseDate) works * when the next occurrence is scheduled for the same month */ public void testMonthlySameMonth() { r.setFrequency(new Frequency(Frequency.MONTHLY)); calendar.set(2004, 0, 24, 12, 00); // 2004/01/24 12:00 calendar2.set(2004, 0, 25, 11, 30, 30); // 2004/01/25 11:30:30 assertEquals(r.nextOccurrence(calendar.getTime()), calendar2.getTime()); } /** * Ensures that nextOccurrence(Date baseDate) works * when the next occurrence is scheduled for the same year */ public void testYearlySameYear() { r.setFrequency(new Frequency(Frequency.YEARLY)); calendar.set(2004, 0, 24, 12, 00); // 2004/01/24 12:00 calendar2.set(2004, 0, 25, 11, 30, 30); // 2004/01/25 11:30:30 assertEquals(r.nextOccurrence(calendar.getTime()), calendar2.getTime()); } }