@Test
public void valueChangedTest() {

    // value test
    EventFilter<GenericEvent> filter = onValueChanged(stringChannel("val"));
    // first value receive -> false
    assertFalse(filter.apply(new GenericEvent(), values1));
    // first change -> true
    assertTrue(filter.apply(new GenericEvent(), values2));
    // value is null -> false
    assertFalse(filter.apply(new GenericEvent(), valuesNull));
    // value change -> true
    assertTrue(filter.apply(null, values1));
    // no change -> false
    assertFalse(filter.apply(null, values1));
    // value is null again -> false
    assertFalse(filter.apply(null, valuesNull));
    // check get ChannelIdentifiers
    assertTrue(filter.getChannelIdentifiers().contains("val"));
    // serializable test
    EventFilter<GenericEvent> clone = ClonerUtil.clone(filter);
    assertFalse(clone.apply(null, values1));
}