use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class ScheduleTest method getNextSufficientTimeframe_timeFrameNotValidForDow.
@Test
public void getNextSufficientTimeframe_timeFrameNotValidForDow() {
LocalDateTime now = toToday(9, 0, 0);
List<Schedule> schedules = new ArrayList<Schedule>();
// Timeframe only valid yesterday
schedules.add(new Schedule(7200, 7200, new TimeOfDay(10, 0, 0), new TimeOfDay(14, 0, 0), Collections.singletonList(now.minusDays(1).get(DateTimeFieldType.dayOfWeek()))));
// Timeframe only valid tomorrow
schedules.add(new Schedule(7200, 7200, new TimeOfDay(15, 0, 0), new TimeOfDay(18, 0, 0), Collections.singletonList(now.plusDays(1).get(DateTimeFieldType.dayOfWeek()))));
Interval expectedInterval = new Interval(toDay(1, 15, 0, 0).toDateTime(), toDay(1, 18, 0, 0).toDateTime());
Assert.assertEquals(expectedInterval, Schedule.getCurrentOrNextTimeframeInterval(now, schedules, false, false).getInterval());
}
use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class SempControllerTest method createSempTimeFrame.
@Test
public void createSempTimeFrame() {
ApplianceLogger logger = new ApplianceLogger(LoggerFactory.getLogger(Appliance.class));
logger.setApplianceId(DEVICE_ID);
LocalDateTime now = toToday(0, 30, 0);
Schedule schedule = new Schedule(7200, 7200, new TimeOfDay(1, 0, 0), new TimeOfDay(9, 0, 0));
Interval interval = schedule.getTimeframe().getIntervals(now).get(0).getInterval();
de.avanux.smartapplianceenabler.semp.webservice.Timeframe sempTimeFrame = sempController.createSempTimeFrame(logger, DEVICE_ID, schedule, interval, 0, 0, now);
Assert.assertEquals(1800, (long) sempTimeFrame.getEarliestStart());
Assert.assertEquals(30600, (long) sempTimeFrame.getLatestEnd());
}
use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class SempControllerTest method createSempTimeFrame_TimeFrameOverMidnight_BeforeMidnight.
@Test
public void createSempTimeFrame_TimeFrameOverMidnight_BeforeMidnight() {
ApplianceLogger logger = new ApplianceLogger(LoggerFactory.getLogger(Appliance.class));
logger.setApplianceId(DEVICE_ID);
LocalDateTime now = toToday(23, 30, 0);
Schedule schedule = new Schedule(7200, 7200, new TimeOfDay(20, 0, 0), new TimeOfDay(4, 0, 0));
Interval interval = schedule.getTimeframe().getIntervals(now).get(0).getInterval();
de.avanux.smartapplianceenabler.semp.webservice.Timeframe sempTimeFrame = sempController.createSempTimeFrame(logger, DEVICE_ID, schedule, interval, 0, 0, now);
Assert.assertEquals(0, (long) sempTimeFrame.getEarliestStart());
Assert.assertEquals(16200, (long) sempTimeFrame.getLatestEnd());
}
use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class DayTimeframeTest method getIntervals_ValidOnlyOnHoliday_HolidayNotSet.
@Test
public void getIntervals_ValidOnlyOnHoliday_HolidayNotSet() {
DayTimeframe timeframe = new DayTimeframe(new TimeOfDay(10, 0, 0), new TimeOfDay(12, 0, 0), Collections.singletonList(8));
LocalDateTime now = toDayOfWeek(1, 9, 0, 0);
List<TimeframeInterval> intervals = timeframe.getIntervals(now);
Assert.assertEquals(0, intervals.size());
}
use of org.joda.time.LocalDateTime in project SmartApplianceEnabler by camueller.
the class ConsecutiveDaysTimeframeTest method getIntervals_AcrossWeeks_BeforeIntervalStart.
@Test
public void getIntervals_AcrossWeeks_BeforeIntervalStart() {
TimeOfDayOfWeek startTimeOfDayOfWeek = new TimeOfDayOfWeek(6, 15, 0, 0);
TimeOfDayOfWeek endTimeOfDayOfWeek = new TimeOfDayOfWeek(1, 20, 0, 0);
ConsecutiveDaysTimeframe timeRange = new ConsecutiveDaysTimeframe(startTimeOfDayOfWeek, endTimeOfDayOfWeek);
LocalDateTime now = toDayOfWeek(3, 0, 0, 0);
List<TimeframeInterval> intervals = timeRange.getIntervals(now);
Assert.assertEquals(1, intervals.size());
LocalDateTime start = startTimeOfDayOfWeek.toNextOccurrence(now);
assertDateTime(start, intervals.get(0).getInterval().getStart().toLocalDateTime());
assertDateTime(endTimeOfDayOfWeek.toNextOccurrence(start), intervals.get(0).getInterval().getEnd().toLocalDateTime());
}
Aggregations