package jmri.jmrit.symbolicprog; import java.util.HashMap; import javax.swing.JComboBox; import jmri.progdebugger.ProgDebugger; import org.junit.Assert; import org.junit.jupiter.api.*; /** * ComboRadioButtonsTest.java * * @author Bob Jacobsen Copyright 2006 */ public class ComboRadioButtonsTest { ProgDebugger p = new ProgDebugger(); @Test public void testAppearance() { // create an enum variable pointed at CV 81 and connect HashMap v = createCvMap(); CvValue cv = new CvValue("81", p); cv.setValue(3); v.put("81", cv); EnumVariableValue var = new EnumVariableValue("name", "comment", "", false, false, false, false, "81", "XXVVVVXX", 0, 255, v, null, null); addTestItems(var); @SuppressWarnings("unchecked") JComboBox combo = (JComboBox) (var.getCommonRep()); // create object under test ComboRadioButtons b = new ComboRadioButtons(combo, var); // check length Assert.assertEquals("expected item count ", 3, b.v.size()); } @Test public void testToOriginal() { HashMap v = createCvMap(); CvValue cv = new CvValue("81", p); cv.setValue(3); v.put("81", cv); EnumVariableValue var = new EnumVariableValue("name", "comment", "", false, false, false, false, "81", "XXVVVVXX", 0, 255, v, null, null); addTestItems(var); @SuppressWarnings("unchecked") JComboBox combo = (JComboBox) (var.getCommonRep()); // create object under test ComboRadioButtons b = new ComboRadioButtons(combo, var); // click middle button & test state ((b.v.elementAt(1))).doClick(); Assert.assertEquals("1 click button on ", true, ((b.v.elementAt(1))).isSelected()); Assert.assertEquals("1 click button 0 off ", false, ((b.v.elementAt(0))).isSelected()); Assert.assertEquals("1 click button 2 off ", false, ((b.v.elementAt(2))).isSelected()); Assert.assertEquals("1 click original state ", 1, combo.getSelectedIndex()); // click top button & test state ((b.v.elementAt(0))).doClick(); Assert.assertEquals("0 click button on ", true, ((b.v.elementAt(0))).isSelected()); Assert.assertEquals("0 click button 1 off ", false, ((b.v.elementAt(1))).isSelected()); Assert.assertEquals("0 click button 2 off ", false, ((b.v.elementAt(2))).isSelected()); Assert.assertEquals("0 click original state ", 0, combo.getSelectedIndex()); // click bottom button & test state ((b.v.elementAt(2))).doClick(); Assert.assertEquals("2 click button on ", true, ((b.v.elementAt(2))).isSelected()); Assert.assertEquals("2 click button 0 off ", false, ((b.v.elementAt(0))).isSelected()); Assert.assertEquals("2 click button 1 off ", false, ((b.v.elementAt(1))).isSelected()); Assert.assertEquals("2 click original state ", 2, combo.getSelectedIndex()); } @Test public void testFromOriginal() { // create an enum variable pointed at CV 81 and connect HashMap v = createCvMap(); CvValue cv = new CvValue("81", p); cv.setValue(3); v.put("81", cv); EnumVariableValue var = new EnumVariableValue("name", "comment", "", false, false, false, false, "81", "XXVVVVXX", 0, 255, v, null, null); addTestItems(var); @SuppressWarnings("unchecked") JComboBox combo = (JComboBox) (var.getCommonRep()); // create object under test ComboRadioButtons b = new ComboRadioButtons(combo, var); // set combo box to 1 and check state combo.setSelectedIndex(1); Assert.assertEquals("1 click button on ", true, ((b.v.elementAt(1))).isSelected()); Assert.assertEquals("1 click button 0 off ", false, ((b.v.elementAt(0))).isSelected()); Assert.assertEquals("1 click button 2 off ", false, ((b.v.elementAt(2))).isSelected()); Assert.assertEquals("1 click original state ", 1, combo.getSelectedIndex()); // set combo box to 2 and check state combo.setSelectedIndex(2); Assert.assertEquals("2 click button on ", true, ((b.v.elementAt(2))).isSelected()); Assert.assertEquals("2 click button 0 off ", false, ((b.v.elementAt(0))).isSelected()); Assert.assertEquals("2 click button 1 off ", false, ((b.v.elementAt(1))).isSelected()); Assert.assertEquals("2 click original state ", 2, combo.getSelectedIndex()); // set combo box to 0 and check state combo.setSelectedIndex(0); Assert.assertEquals("0 click button on ", true, ((b.v.elementAt(0))).isSelected()); Assert.assertEquals("0 click button 1 off ", false, ((b.v.elementAt(1))).isSelected()); Assert.assertEquals("0 click button 2 off ", false, ((b.v.elementAt(2))).isSelected()); Assert.assertEquals("0 click original state ", 0, combo.getSelectedIndex()); } protected HashMap createCvMap() { HashMap m = new HashMap(); return m; } protected void addTestItems(EnumVariableValue var) { var.nItems(3); var.addItem("Value0"); var.addItem("Value1"); var.addItem("Value2"); var.lastItem(); } @BeforeEach public void setUp() { jmri.util.JUnitUtil.setUp(); } @AfterEach public void tearDown() { jmri.util.JUnitUtil.tearDown(); } // private static final Logger log = LoggerFactory.getLogger(ComboRadioButtonsTest.class); }