@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")); }