TriggerStrategies { public static TriggerStrategy always(){ return new LambdaTriggerStrategy( values -> true, HashSet::new ); } private  TriggerStrategies(); static TriggerStrategy onTrue(Supplier<Boolean> supplier); static TriggerStrategy onFalse(Supplier<Boolean> supplier); static TriggerStrategy onBecomeTrue(Supplier<Boolean> supplier); static TriggerStrategy onBecomeTrue(Supplier<Boolean> supplier, Boolean initialValue); static TriggerStrategy onBecomeFalse(Supplier<Boolean> supplier); static TriggerStrategy onBecomeFalse(Supplier<Boolean> supplier, Boolean initialValue); static TriggerStrategy onChange(Supplier<T> supplier); static TriggerStrategy onChange(Supplier<T> supplier, T initialValue); static TriggerStrategy onNull(Supplier<T> supplier); static TriggerStrategy onNotNull(Supplier<T> supplier); static TriggerStrategy always();  }
@Test public void isToBeTriggeredAllways() { TriggerStrategy strategy = always(); boolean result = strategy.isToBeTriggered(falseValues); assertTrue(result); assertTrue(strategy.getChannelIdentifiers().isEmpty()); }