private void testRRule(final TimeZone timeZone)
{
TeamEventDO event = createEvent(timeZone, "2012-12-21 8:30", "2012-12-21 9:00", null, 1, null, null);
assertNull(event.getRecurrenceObject());
event = createEvent(timeZone, "2012-12-21 8:30", "2012-12-21 9:00", RecurrenceFrequency.WEEKLY, 1, null, null);
assertEquals("FREQ=WEEKLY;INTERVAL=1", event.getRecurrenceRule());
Collection<TeamEvent> events = getRecurrenceEvents("2012-12-01", "2013-01-31", timeZone, event);
assertEvents(events, timeZone, "2012-12-21 08:30", "2012-12-28 08:30", "2013-01-04 08:30", "2013-01-11 08:30",
"2013-01-18 08:30", "2013-01-25 08:30");
String untilInTimeZone = "2013-01-31";
if (timeZone.getRawOffset() < 0) {
untilInTimeZone = "2013-02-01";
}
event = createEvent(timeZone, "2012-12-21 18:30", "2012-12-22 9:00", RecurrenceFrequency.WEEKLY, 2,
"2013-01-31", untilInTimeZone);
RRule rRule = event.getRecurrenceRuleObject();
final String utcString = DateHelper.formatIsoDate(rRule.getRecur().getUntil(), DateHelper.UTC);
assertEquals("WEEKLY", rRule.getRecur().getFrequency());
assertEquals(untilInTimeZone, utcString);
assertEquals(2, rRule.getRecur().getInterval());
events = getRecurrenceEvents("2012-12-01", "2013-03-31", timeZone, event);
assertEvents(events, timeZone, "2012-12-21 18:30", "2013-01-04 18:30", "2013-01-18 18:30");
assertTrue(events.iterator().next() instanceof TeamEventDO);
}