179 lines
6.8 KiB
Java
179 lines
6.8 KiB
Java
package jmri.jmrit.beantable;
|
|
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JTextField;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.NamedBeanHandle;
|
|
import jmri.SignalHead;
|
|
import jmri.implementation.DoubleTurnoutSignalHead;
|
|
import jmri.implementation.QuadOutputSignalHead;
|
|
import jmri.implementation.SE8cSignalHead;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
|
|
import org.netbeans.jemmy.operators.*;
|
|
|
|
/**
|
|
* Tests for the jmri.jmrit.beantable.SignalHeadTableAction class
|
|
*
|
|
* @author Bob Jacobsen Copyright 2004, 2007, 2008, 2009
|
|
*/
|
|
public class SignalHeadTableActionTest extends AbstractTableActionBase<SignalHead> {
|
|
|
|
@Test
|
|
public void testCreate() {
|
|
Assert.assertNotNull(a);
|
|
}
|
|
|
|
@Override
|
|
public String getTableFrameName(){
|
|
return Bundle.getMessage("TitleSignalTable");
|
|
}
|
|
|
|
@Test
|
|
@DisabledIfSystemProperty(named = "java.awt.headless", matches = "true")
|
|
public void testAddAndInvoke() {
|
|
// add a few signals and see if they exist
|
|
InstanceManager.getDefault(jmri.SignalHeadManager.class).register(
|
|
new DoubleTurnoutSignalHead("IH2", "double example 1-2",
|
|
new NamedBeanHandle<>("IT1", InstanceManager.turnoutManagerInstance().provideTurnout("IT1")),
|
|
new NamedBeanHandle<>("IT2", InstanceManager.turnoutManagerInstance().provideTurnout("IT2"))
|
|
));
|
|
InstanceManager.getDefault(jmri.SignalHeadManager.class).register(
|
|
new QuadOutputSignalHead("IH4", "quad example 11-14",
|
|
new NamedBeanHandle<>("IT11", InstanceManager.turnoutManagerInstance().provideTurnout("IT11")),
|
|
new NamedBeanHandle<>("IT12", InstanceManager.turnoutManagerInstance().provideTurnout("IT12")),
|
|
new NamedBeanHandle<>("IT13", InstanceManager.turnoutManagerInstance().provideTurnout("IT13")),
|
|
new NamedBeanHandle<>("IT14", InstanceManager.turnoutManagerInstance().provideTurnout("IT14"))
|
|
));
|
|
|
|
InstanceManager.getDefault(jmri.SignalHeadManager.class).register(
|
|
new SE8cSignalHead(
|
|
new NamedBeanHandle<>("IT1", InstanceManager.turnoutManagerInstance().provideTurnout("IT21")),
|
|
new NamedBeanHandle<>("IT2", InstanceManager.turnoutManagerInstance().provideTurnout("IT22")),
|
|
"SE8c from handles")
|
|
);
|
|
|
|
InstanceManager.getDefault(jmri.SignalHeadManager.class).register(
|
|
new SE8cSignalHead(31, "SE8c from number")
|
|
);
|
|
|
|
new SignalHeadTableAction().actionPerformed(null);
|
|
JFrame f = JFrameOperator.waitJFrame(Bundle.getMessage("TitleSignalTable"), true, true);
|
|
Assert.assertNotNull("found frame", f);
|
|
JUnitUtil.dispose(f);
|
|
}
|
|
|
|
@Override
|
|
@Test
|
|
public void testGetClassDescription(){
|
|
Assert.assertEquals("Signal Head Table Action class description","Signal Head Table",a.getClassDescription());
|
|
}
|
|
|
|
/**
|
|
* Check the return value of includeAddButton. The table generated by
|
|
* this action includes an Add Button.
|
|
*/
|
|
@Override
|
|
@Test
|
|
public void testIncludeAddButton(){
|
|
Assert.assertTrue("Default include add button",a.includeAddButton());
|
|
}
|
|
|
|
@Override
|
|
public String getAddFrameName(){
|
|
return Bundle.getMessage("TitleAddSignalHead");
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
@DisabledIfSystemProperty(named = "java.awt.headless", matches = "true")
|
|
public void testAddThroughDialog() {
|
|
Assertions.assertTrue(a.includeAddButton());
|
|
a.actionPerformed(null);
|
|
JFrame f = JFrameOperator.waitJFrame(getTableFrameName(), true, true);
|
|
|
|
// find the "Add... " button and press it.
|
|
jmri.util.swing.JemmyUtil.pressButton(new JFrameOperator(f),Bundle.getMessage("ButtonAdd"));
|
|
new org.netbeans.jemmy.QueueTool().waitEmpty();
|
|
JFrame f1 = JFrameOperator.waitJFrame(getAddFrameName(), true, true);
|
|
JFrameOperator jf = new JFrameOperator(f1);
|
|
|
|
// change the combo box to the "Virtual" entry.
|
|
(new JComboBoxOperator(jf)).selectItem("Virtual");
|
|
|
|
//Enter IH1 in the text field labeled "System Name:"
|
|
JLabelOperator jlo = new JLabelOperator(jf,Bundle.getMessage("LabelSystemName"));
|
|
((JTextField)jlo.getLabelFor()).setText("IH1");
|
|
//and press create
|
|
jmri.util.swing.JemmyUtil.pressButton(jf,Bundle.getMessage("ButtonCreate"));
|
|
JUnitUtil.dispose(f1);
|
|
JUnitUtil.dispose(f);
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
@DisabledIfSystemProperty(named = "java.awt.headless", matches = "true")
|
|
public void testEditButton() {
|
|
a.actionPerformed(null);
|
|
JFrame f = JFrameOperator.waitJFrame(getTableFrameName(), true, true);
|
|
JFrameOperator jfo = new JFrameOperator(f);
|
|
|
|
// find the "Add... " button and press it.
|
|
jmri.util.swing.JemmyUtil.pressButton(jfo,Bundle.getMessage("ButtonAdd"));
|
|
JFrame f1 = JFrameOperator.waitJFrame(getAddFrameName(), true, true);
|
|
JFrameOperator jf = new JFrameOperator(f1);
|
|
|
|
// change the combo box to the "Virtual" entry.
|
|
(new JComboBoxOperator(jf)).selectItem("Virtual");
|
|
|
|
//Enter IH1 in the text field labeled "System Name:"
|
|
JLabelOperator jlo = new JLabelOperator(jf,Bundle.getMessage("LabelSystemName"));
|
|
((JTextField)jlo.getLabelFor()).setText("IH1");
|
|
//and press create
|
|
jmri.util.swing.JemmyUtil.pressButton(jf,Bundle.getMessage("ButtonCreate"));
|
|
|
|
// close the add frame
|
|
jf.requestClose();
|
|
new org.netbeans.jemmy.QueueTool().waitEmpty();
|
|
|
|
JTableOperator tbl = new JTableOperator(jfo, 0);
|
|
// find the "Edit" button and press it. This is in the table body.
|
|
tbl.clickOnCell(0,tbl.getColumnCount() -1); // edit column is last in light table.
|
|
|
|
JFrame f2 = JFrameOperator.waitJFrame(getEditFrameName(), true, true);
|
|
jmri.util.swing.JemmyUtil.pressButton(new JFrameOperator(f2),Bundle.getMessage("ButtonCancel"));
|
|
JUnitUtil.dispose(f2);
|
|
JUnitUtil.dispose(f1);
|
|
JUnitUtil.dispose(f);
|
|
}
|
|
|
|
@Override
|
|
public String getEditFrameName(){
|
|
return "Edit Signal Head";
|
|
}
|
|
|
|
@Override
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.resetProfileManager();
|
|
JUnitUtil.initDefaultUserMessagePreferences();
|
|
JUnitUtil.initInternalTurnoutManager();
|
|
JUnitUtil.initInternalSignalHeadManager();
|
|
helpTarget = "package.jmri.jmrit.beantable.SignalHeadTable";
|
|
a = new SignalHeadTableAction();
|
|
}
|
|
|
|
@Override
|
|
@AfterEach
|
|
public void tearDown() {
|
|
a = null;
|
|
JUnitUtil.clearShutDownManager();
|
|
JUnitUtil.tearDown();
|
|
}
|
|
}
|