rule.endOffset = t2.getTime(); AbsenceWindowGenerator generator = new AbsenceWindowGenerator(rule); driver = new AbsenceAlertDriver(expectValues, generator);
@Test public void testAbsence() throws Exception { // from 2PM to 3PM each day AbsenceDailyRule rule = new AbsenceDailyRule(); rule.startOffset = 14 * 3600 * 1000; rule.endOffset = 15 * 3600 * 1000; AbsenceWindowGenerator generator = new AbsenceWindowGenerator(rule); List<Object> expectAttrs = Arrays.asList("host1"); AbsenceAlertDriver driver = new AbsenceAlertDriver(expectAttrs, generator); // first event came in 2016-07-08 11:20:00 String date = "2016-07-08 11:20:00"; DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); df.setTimeZone(TimeZone.getTimeZone("UTC")); Date d = df.parse(date); long baseOccurTime = d.getTime(); // first event driver.process(Arrays.asList("host2"), baseOccurTime); // event after 1 hour driver.process(Arrays.asList("host2"), baseOccurTime + 3600 * 1000); // event after 2 hour driver.process(Arrays.asList("host2"), baseOccurTime + 2 * 3600 * 1000); // event after 3 hour, enter this window driver.process(Arrays.asList("host2"), baseOccurTime + 3 * 3600 * 1000); // event after 3.5 hour, still in this window driver.process(Arrays.asList("host2"), baseOccurTime + 3 * 3600 * 1000 + 1800 * 1000); // event after 4 hour, exit this window driver.process(Arrays.asList("host2"), baseOccurTime + 4 * 3600 * 1000); }
AbsenceWindowGenerator generator = new AbsenceWindowGenerator(rule); List<Object> expectAttrs = Arrays.asList("host1"); AbsenceAlertDriver driver = new AbsenceAlertDriver(expectAttrs, generator);