package tv.dyndns.kishibe.qmaclone.client.ui; import org.junit.Test; import tv.dyndns.kishibe.qmaclone.client.QMACloneGWTTestCaseBase; import tv.dyndns.kishibe.qmaclone.client.util.HasIndex; import com.google.common.collect.ImmutableSet; import com.google.gwt.user.client.ui.VerticalPanel; public class WidgetMultiItemSelectorTest extends QMACloneGWTTestCaseBase { private static enum Example implements HasIndex { A, B, C; @Override public int getIndex() { return ordinal(); } } private WidgetMultiItemSelector<Example> selector; @Override protected void gwtSetUp() throws Exception { super.gwtSetUp(); selector = new WidgetMultiItemSelector<WidgetMultiItemSelectorTest.Example>("タイトル", Example.values(), 2); } @Test public void testWidgetMultiItemSelector() { assertEquals(VerticalPanel.ALIGN_CENTER, selector.getHorizontalAlignment()); assertEquals(3, selector.listBox.getItemCount()); assertEquals("A", selector.listBox.getItemText(0)); assertEquals("B", selector.listBox.getItemText(1)); assertEquals("C", selector.listBox.getItemText(2)); assertEquals(0, selector.listBox.getSelectedIndex()); assertEquals("複数選択", selector.checkBoxMultiSelect.getText()); assertFalse(selector.isMultiSelect()); assertTrue(selector.listBox.isVisible()); assertFalse(selector.panelMultiSelect.isVisible()); } @Test public void testSetOneItem() { selector.set(ImmutableSet.of(Example.B)); assertEquals(1, selector.listBox.getSelectedIndex()); assertFalse(selector.isMultiSelect()); assertTrue(selector.listBox.isVisible()); assertFalse(selector.panelMultiSelect.isVisible()); } @Test public void testSetMultipleItems() { selector.set(ImmutableSet.of(Example.B, Example.C)); assertFalse(selector.listBox.isVisible()); assertTrue(selector.panelMultiSelect.isVisible()); assertFalse(selector.checkBoxs[0].getValue()); assertTrue(selector.checkBoxs[1].getValue()); assertTrue(selector.checkBoxs[1].getValue()); assertTrue(selector.isMultiSelect()); } @Test public void testGet() { ImmutableSet<Example> set = ImmutableSet.of(Example.A, Example.C); selector.set(set); assertEquals(set, selector.get()); } @Test public void testSetEnabled() { selector.setEnabled(false); assertFalse(selector.listBox.isEnabled()); assertFalse(selector.checkBoxMultiSelect.isEnabled()); assertFalse(selector.checkBoxs[0].isEnabled()); assertFalse(selector.checkBoxs[1].isEnabled()); assertFalse(selector.checkBoxs[2].isEnabled()); selector.setEnabled(true); assertTrue(selector.listBox.isEnabled()); assertTrue(selector.checkBoxMultiSelect.isEnabled()); assertTrue(selector.checkBoxs[0].isEnabled()); assertTrue(selector.checkBoxs[1].isEnabled()); assertTrue(selector.checkBoxs[2].isEnabled()); } }