@Test
public void twoWayBindingsCanBeChained() {

  BindingsManager bindings = new BindingsManager(BatchInvoker.INVOKE_IMMEDIATELY_STRATEGY);
  IntValueProperty a = new IntValueProperty();
  IntValueProperty b = new IntValueProperty();
  IntValueProperty c = new IntValueProperty();
  bindings.bindTwoWay(a, b);
  bindings.bindTwoWay(b, c);
  c.set(30);
  assertThat(a.get()).isEqualTo(30);
  assertThat(b.get()).isEqualTo(30);
  assertThat(c.get()).isEqualTo(30);
  b.set(-100);
  assertThat(a.get()).isEqualTo(-100);
  assertThat(b.get()).isEqualTo(-100);
  assertThat(c.get()).isEqualTo(-100);
  a.set(9);
  assertThat(a.get()).isEqualTo(9);
  assertThat(b.get()).isEqualTo(9);
  assertThat(c.get()).isEqualTo(9);
}