/** * Incorrect test assumption: updates to the items don't change the indices, no event to fire from * the indices. They are immutable, anyway. * * <p>The assumption had some meaning as long as IndexMappedList didn't get the real change from * the backing list - now it doesn't and can fire on its own as needed. * * @see IndexMappedListTest#testItemsUpdate() */ @Test @Ignore public void testItemsUpdate() { ObservableList<Person> base = Person.persons(); ObservableList<Person> persons = FXCollections.observableList(base, p -> new Observable[] {p.firstNameProperty()}); IndicesBase<Person> indicesList = new IndicesList<>(persons); int[] indices = new int[] {1, 3, 5}; indicesList.addIndices(indices); ListChangeReport report = new ListChangeReport(indicesList); // new PrintingListChangeListener("Set item at 3", indicesList); persons.get(3).setFirstName("newName"); assertEquals(1, report.getEventCount()); }
/** Sanity: quick check that using a ListProperty as source doesn't interfere. */ @Test public void testItemsIsListProperty() { ObjectProperty<ObservableList<String>> itemsProperty = new SimpleObjectProperty(items); ListProperty<String> listItems = new SimpleListProperty<>(); listItems.bind(itemsProperty); IndicesBase indicesList = new IndicesList(listItems); ListChangeReport report = new ListChangeReport(indicesList); int[] indices = new int[] {3, 5, 1}; indicesList.addIndices(indices); report.clear(); // new PrintingListChangeListener("SetAll Same size", indicesList); ObservableList<String> other = createObservableList(true); // make it not equal other.set(0, "otherItem"); items.setAll(other); assertEquals("all cleared", 0, indicesList.size()); assertEquals(1, report.getEventCount()); assertTrue( "expected single removed, but was " + report.getLastChange(), wasSingleRemoved(report.getLastChange())); }