package er.chronic;
import java.util.Calendar;
import junit.framework.TestCase;
import er.chronic.repeaters.RepeaterFortnight;
import er.chronic.repeaters.RepeaterWeek;
import er.chronic.tags.Pointer;
import er.chronic.utils.Span;
import er.chronic.utils.Time;
public class RepeaterFortnightTest extends TestCase {
private Calendar _now;
@Override
protected void setUp() throws Exception {
super.setUp();
_now = Time.construct(2006, 8, 16, 14, 0, 0, 0);
}
public void testNextFuture() {
RepeaterFortnight fortnights = new RepeaterFortnight();
fortnights.setStart(_now);
Span nextFortnight = fortnights.nextSpan(Pointer.PointerType.FUTURE);
assertEquals(Time.construct(2006, 8, 20), nextFortnight.getBeginCalendar());
assertEquals(Time.construct(2006, 9, 3), nextFortnight.getEndCalendar());
Span nextNextFortnight = fortnights.nextSpan(Pointer.PointerType.FUTURE);
assertEquals(Time.construct(2006, 9, 3), nextNextFortnight.getBeginCalendar());
assertEquals(Time.construct(2006, 9, 17), nextNextFortnight.getEndCalendar());
}
public void testNextPast() {
RepeaterFortnight fortnights = new RepeaterFortnight();
fortnights.setStart(_now);
Span lastFortnight = fortnights.nextSpan(Pointer.PointerType.PAST);
assertEquals(Time.construct(2006, 7, 30), lastFortnight.getBeginCalendar());
assertEquals(Time.construct(2006, 8, 13), lastFortnight.getEndCalendar());
Span lastLastFortnight = fortnights.nextSpan(Pointer.PointerType.PAST);
assertEquals(Time.construct(2006, 7, 16), lastLastFortnight.getBeginCalendar());
assertEquals(Time.construct(2006, 7, 30), lastLastFortnight.getEndCalendar());
}
public void testThisFuture() {
RepeaterFortnight fortnights = new RepeaterFortnight();
fortnights.setStart(_now);
Span thisFortnight = fortnights.thisSpan(Pointer.PointerType.FUTURE);
assertEquals(Time.construct(2006, 8, 16, 15), thisFortnight.getBeginCalendar());
assertEquals(Time.construct(2006, 8, 27), thisFortnight.getEndCalendar());
}
public void testThisPast() {
RepeaterFortnight fortnights = new RepeaterFortnight();
fortnights.setStart(_now);
Span thisFortnight = fortnights.thisSpan(Pointer.PointerType.PAST);
assertEquals(Time.construct(2006, 8, 13, 0), thisFortnight.getBeginCalendar());
assertEquals(Time.construct(2006, 8, 16, 14), thisFortnight.getEndCalendar());
}
public void testOffset() {
Span span = new Span(_now, Calendar.SECOND, 1);
Span offsetSpan = new RepeaterWeek().getOffset(span, 3, Pointer.PointerType.FUTURE);
assertEquals(Time.construct(2006, 9, 6, 14), offsetSpan.getBeginCalendar());
assertEquals(Time.construct(2006, 9, 6, 14, 0, 1), offsetSpan.getEndCalendar());
}
}