package de.lessvoid.nifty.controls.listbox; import de.lessvoid.nifty.controls.ListBox.SelectionMode; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.util.List; import static org.junit.Assert.assertEquals; public class ListBoxSingleSelectionRequiresSelectionListViewTest { private ListBoxImpl<TestItem> listBox = new ListBoxImpl<TestItem>(null); private TestItem o1 = new TestItem("o1"); private TestItem o2 = new TestItem("o2"); @Before public void before() { listBox.changeSelectionMode(SelectionMode.Single, true); } @After public void after() { } @Test public void testAutoSelectedAdd() { listBox.addItem(o1); assertSelection(o1); } @Test public void testAutoSelectedAddMultipl() { listBox.addItem(o1); listBox.addItem(o2); assertSelection(o1); } @Test public void testAutoSelectedInsert() { listBox.insertItem(o1, 0); assertSelection(o1); } @Test public void testAutoSelectedInsertMultipl() { listBox.insertItem(o1, 0); listBox.insertItem(o2, 0); assertSelection(o1); } @Test public void testAutoSelectedAddAllEmpty() { listBox.addAllItems(ListBoxTestTool.buildValues()); assertSelection(); } @Test public void testAutoSelectedAddAllSingle() { listBox.addAllItems(ListBoxTestTool.buildValues(o1)); assertSelection(o1); } @Test public void testAutoSelectedAddAllMultiple() { listBox.addAllItems(ListBoxTestTool.buildValues(o1, o2)); assertSelection(o1); } @Test public void testChangeToForceSelectionWithItems() { listBox.changeSelectionMode(SelectionMode.Single, false); listBox.addItem(o1); listBox.changeSelectionMode(SelectionMode.Single, true); assertSelection(o1); } @Test public void testRemoveSelection() { listBox.addItem(o1); listBox.addItem(o2); listBox.removeItem(o1); assertSelection(o2); } private void assertSelection(final TestItem... expected) { List<TestItem> selection = listBox.getSelection(); assertEquals(selection.size(), expected.length); int i = 0; for (TestItem o : selection) { assertEquals(o, expected[i++]); } } }