use of org.apache.heron.api.windowing.evictors.CountEvictionPolicy in project heron by twitter.
the class WindowManagerTest method testExpireThreshold.
@Test
public void testExpireThreshold() throws Exception {
int threshold = WindowManager.EXPIRE_EVENTS_THRESHOLD;
int windowLength = 5;
CountEvictionPolicy<Integer> countEvictionPolicy = new CountEvictionPolicy<Integer>(5);
windowManager.setEvictionPolicy(countEvictionPolicy);
TriggerPolicy<Integer, ?> triggerPolicy = new TimeTriggerPolicy<Integer>(Duration.ofHours(1).toMillis());
triggerPolicy.setEvictionPolicy(countEvictionPolicy);
triggerPolicy.setTriggerHandler(windowManager);
triggerPolicy.setTopologyConfig(new Config());
triggerPolicy.start();
windowManager.setTriggerPolicy(triggerPolicy);
for (int i : seq(1, 5)) {
windowManager.add(i);
}
// nothing expired yet
assertTrue(listener.onExpiryEvents.isEmpty());
for (int i : seq(6, 10)) {
windowManager.add(i);
}
for (int i : seq(11, threshold)) {
windowManager.add(i);
}
// window should be compacted and events should be expired.
assertEquals(seq(1, threshold - windowLength), listener.onExpiryEvents);
}
Aggregations