package org.phoenicis.javafx.views.common; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.collections.transformation.SortedList; import org.junit.Test; import java.util.Arrays; import java.util.Comparator; import static org.junit.Assert.assertEquals; /** * Created by marc on 26.04.17. */ public class AdhocListTest { @Test public void testListCreation() { ObservableList<String> observableList = FXCollections.observableArrayList(Arrays.asList("3", "7", "1", "5")); AdhocList<String> mappedList = new AdhocList<>(observableList, "0"); assertEquals(5, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("3", mappedList.get(1)); assertEquals("7", mappedList.get(2)); assertEquals("1", mappedList.get(3)); assertEquals("5", mappedList.get(4)); } @Test public void testListAdd() { ObservableList<String> observableList = FXCollections.observableArrayList(Arrays.asList("3", "7", "1", "5")); AdhocList<String> mappedList = new AdhocList<>(observableList, "0"); assertEquals(5, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("3", mappedList.get(1)); assertEquals("7", mappedList.get(2)); assertEquals("1", mappedList.get(3)); assertEquals("5", mappedList.get(4)); observableList.add("4"); assertEquals(6, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("3", mappedList.get(1)); assertEquals("7", mappedList.get(2)); assertEquals("1", mappedList.get(3)); assertEquals("5", mappedList.get(4)); assertEquals("4", mappedList.get(5)); } @Test public void testListRemove() { ObservableList<String> observableList = FXCollections.observableArrayList(Arrays.asList("3", "7", "1", "5")); AdhocList<String> mappedList = new AdhocList<>(observableList, "0"); assertEquals(5, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("3", mappedList.get(1)); assertEquals("7", mappedList.get(2)); assertEquals("1", mappedList.get(3)); assertEquals("5", mappedList.get(4)); observableList.remove(2); assertEquals(4, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("3", mappedList.get(1)); assertEquals("7", mappedList.get(2)); assertEquals("5", mappedList.get(3)); } @Test public void testListUpdate() { ObservableList<String> observableList = FXCollections.observableArrayList(Arrays.asList("3", "7", "1", "5")); AdhocList<String> mappedList = new AdhocList<>(observableList, "0"); assertEquals(5, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("3", mappedList.get(1)); assertEquals("7", mappedList.get(2)); assertEquals("1", mappedList.get(3)); assertEquals("5", mappedList.get(4)); observableList.set(2, "4"); assertEquals(5, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("3", mappedList.get(1)); assertEquals("7", mappedList.get(2)); assertEquals("4", mappedList.get(3)); assertEquals("5", mappedList.get(4)); } @Test public void testListPermutation() { SortedList<String> sortedList = FXCollections.observableArrayList(Arrays.asList("3", "7", "1", "5")) .sorted(Comparator.naturalOrder()); AdhocList<String> mappedList = new AdhocList<>(sortedList, "0"); assertEquals(5, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("1", mappedList.get(1)); assertEquals("3", mappedList.get(2)); assertEquals("5", mappedList.get(3)); assertEquals("7", mappedList.get(4)); sortedList.comparatorProperty().set(Comparator.comparing(String::valueOf).reversed()); assertEquals(5, mappedList.size()); assertEquals("0", mappedList.get(0)); assertEquals("7", mappedList.get(1)); assertEquals("5", mappedList.get(2)); assertEquals("3", mappedList.get(3)); assertEquals("1", mappedList.get(4)); } }