@Test
public void asListThatDependsOnAnother() {
p.set(list("a", "b"));
StringProperty s = stringProperty("s", "c");
ListProperty<String> q = p.asList(l -> FluentIterable.from(l).append(s.get()).toList());
assertThat(p.get(), contains("a", "b"));
assertThat(q.get(), contains("a", "b", "c"));
CountingChanges<List<String>> c = new CountingChanges<List<String>>();
q.addPropertyChangedHandler(c);
p.add("b");
assertThat(c.count, is(1));
assertThat(q.get(), contains("a", "b", "b", "c"));
s.set("d");
assertThat(c.count, is(2));
assertThat(q.get(), contains("a", "b", "b", "d"));
}