@Test
public void listenAllWorks() throws Exception {

  TestInvokeStrategy testStrategy = new TestInvokeStrategy();
  ListenerManager listeners = new ListenerManager(testStrategy);
  IntProperty x = new IntValueProperty(0);
  IntProperty y = new IntValueProperty(0);
  IntProperty w = new IntValueProperty(640);
  IntProperty h = new IntValueProperty(480);
  BoolProperty grayscale = new BoolValueProperty(false);
  CountingRunnable mockRepaint = new CountingRunnable();
  listeners.listenAll(x, y, w, h, grayscale).with(mockRepaint);
  assertThat(mockRepaint.myRunCount).isEqualTo(0);
  w.set(1280);
  h.set(720);
  assertThat(mockRepaint.myRunCount).isEqualTo(0);
  testStrategy.updateOneStep();
  assertThat(mockRepaint.myRunCount).isEqualTo(1);
  grayscale.set(true);
  testStrategy.updateOneStep();
  assertThat(mockRepaint.myRunCount).isEqualTo(2);
}