use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class DayTimeframeTest method getIntervals_ValidOnlyOnHoliday_HolidaySet.
@Test
public void getIntervals_ValidOnlyOnHoliday_HolidaySet() {
DayTimeframe timeframe = new DayTimeframe(new TimeOfDay(10, 0, 0), new TimeOfDay(12, 0, 0), Collections.singletonList(8));
LocalDateTime now = toDayOfWeek(1, 9, 0, 0);
timeframe.setHolidays(Collections.singletonList(now.toLocalDate()));
List<TimeframeInterval> intervals = timeframe.getIntervals(now);
Assert.assertEquals(1, intervals.size());
Assert.assertEquals(new Interval(toDayOfWeek(now, 1, 10, 0, 0).toDateTime(), toDayOfWeek(now, 1, 12, 0, 0).toDateTime()), intervals.get(0).getInterval());
}
use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class DayTimeframeTest method getIntervals_ValidOnSundayAndHoliday_HolidayIsSunday.
@Test
public void getIntervals_ValidOnSundayAndHoliday_HolidayIsSunday() {
DayTimeframe timeframe = new DayTimeframe(new TimeOfDay(10, 0, 0), new TimeOfDay(12, 0, 0), Arrays.asList(7, 8));
LocalDateTime now = toDayOfWeek(1, 9, 0, 0);
timeframe.setHolidays(Collections.singletonList(now.toLocalDate().plusDays(6)));
List<TimeframeInterval> intervals = timeframe.getIntervals(now);
Assert.assertEquals(1, intervals.size());
Assert.assertEquals(new Interval(toDayOfWeek(now, 7, 10, 0, 0).toDateTime(), toDayOfWeek(now, 7, 12, 0, 0).toDateTime()), intervals.get(0).getInterval());
}
use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class DayTimeframeTest method getIntervals_ValidOnSundayAndHoliday_HolidayIsThursday.
@Test
public void getIntervals_ValidOnSundayAndHoliday_HolidayIsThursday() {
DayTimeframe timeframe = new DayTimeframe(new TimeOfDay(10, 0, 0), new TimeOfDay(12, 0, 0), Arrays.asList(7, 8));
LocalDateTime now = toDayOfWeek(1, 9, 0, 0);
timeframe.setHolidays(Collections.singletonList(now.toLocalDate().plusDays(3)));
List<TimeframeInterval> intervals = timeframe.getIntervals(now);
Assert.assertEquals(2, intervals.size());
Assert.assertEquals(new Interval(toDayOfWeek(now, 4, 10, 0, 0).toDateTime(), toDayOfWeek(now, 4, 12, 0, 0).toDateTime()), intervals.get(0).getInterval());
Assert.assertEquals(new Interval(toDayOfWeek(now, 7, 10, 0, 0).toDateTime(), toDayOfWeek(now, 7, 12, 0, 0).toDateTime()), intervals.get(1).getInterval());
}
use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class DayTimeframeTest method getIntervals_DayOfWeekNotMatching_BeforeIntervalStart.
@Test
public void getIntervals_DayOfWeekNotMatching_BeforeIntervalStart() {
DayTimeframe timeframe = new DayTimeframe(new TimeOfDay(10, 0, 0), new TimeOfDay(12, 0, 0), Collections.singletonList(3));
LocalDateTime now = toDayOfWeek(1, 9, 0, 0);
List<TimeframeInterval> intervals = timeframe.getIntervals(now);
Assert.assertEquals(1, intervals.size());
Assert.assertEquals(new Interval(toDayOfWeek(now, 3, 10, 0, 0).toDateTime(), toDayOfWeek(now, 3, 12, 0, 0).toDateTime()), intervals.get(0).getInterval());
}
use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class ConsecutiveDaysTimeframe method getIntervals.
public List<TimeframeInterval> getIntervals(LocalDateTime now) {
if (start != null && end != null) {
LocalDateTime earliestStartNextOccurrence = start.toNextOccurrence(now);
LocalDateTime latestEndNextOccurrence = end.toNextOccurrence(now);
LocalDateTime earliestStartDateTime = earliestStartNextOccurrence;
if (latestEndNextOccurrence.isBefore(earliestStartNextOccurrence) && now.isBefore(latestEndNextOccurrence)) {
earliestStartDateTime = start.toLastOccurrence(now);
}
LocalDateTime latestEndDateTime = end.toNextOccurrence(earliestStartDateTime);
Interval interval = new Interval(earliestStartDateTime.toDateTime(), latestEndDateTime.toDateTime()).withChronology(ISOChronology.getInstance());
TimeframeInterval timeframeInterval = new TimeframeInterval(this, interval);
return Collections.singletonList(timeframeInterval);
}
return null;
}
Aggregations