143 lines
5.0 KiB
Java
143 lines
5.0 KiB
Java
package jmri.jmrit.beantable;
|
|
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JTextField;
|
|
|
|
import jmri.Block;
|
|
import jmri.BlockManager;
|
|
import jmri.InstanceManager;
|
|
import jmri.Section;
|
|
import jmri.SectionManager;
|
|
import jmri.Transit;
|
|
import jmri.TransitSection;
|
|
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.*;
|
|
|
|
/**
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
*/
|
|
public class TransitTableActionTest extends AbstractTableActionBase<Transit> {
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
Assert.assertNotNull("exists", a);
|
|
}
|
|
|
|
@Override
|
|
public String getTableFrameName() {
|
|
return Bundle.getMessage("TitleTransitTable");
|
|
}
|
|
|
|
@Override
|
|
@Test
|
|
public void testGetClassDescription() {
|
|
Assert.assertEquals("Transit Table Action class description", "Transit 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("TitleAddTransit");
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
@DisabledIfSystemProperty( named = "java.awt.headless", matches = "true" )
|
|
public void testAddThroughDialog() {
|
|
|
|
Assertions.assertTrue(a.includeAddButton());
|
|
jmri.util.ThreadingUtil.runOnGUI( () -> 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);
|
|
//Enter 1 in the text field labeled "System Name:"
|
|
JLabelOperator jlo = new JLabelOperator(jf, Bundle.getMessage("LabelSystemName"));
|
|
((JTextField) jlo.getLabelFor()).setText("1");
|
|
//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() {
|
|
|
|
Assertions.assertTrue(a.includeAddButton());
|
|
Transit t1 = InstanceManager.getDefault(jmri.TransitManager.class).createNewTransit("t1", "test transit");
|
|
TransitSection ts1 = new TransitSection(InstanceManager.getDefault(SectionManager.class).getBySystemName("TS1"), 0, 0);
|
|
TransitSection ts2 = new TransitSection(InstanceManager.getDefault(SectionManager.class).getBySystemName("TS2"), 0, 0);
|
|
t1.addTransitSection(ts1);
|
|
t1.addTransitSection(ts2);
|
|
|
|
jmri.util.ThreadingUtil.runOnGUI( () -> a.actionPerformed(null));
|
|
JFrame f = JFrameOperator.waitJFrame(getTableFrameName(), true, true);
|
|
JFrameOperator jfo = new JFrameOperator(f);
|
|
|
|
JTableOperator tbl = new JTableOperator(jfo, 0);
|
|
// find the "Edit" button and press it. This is in the table body.
|
|
tbl.clickOnCell(0, BeanTableDataModel.NUMCOLUMN);
|
|
JFrame f2 = JFrameOperator.waitJFrame(getEditFrameName(), true, true);
|
|
jmri.util.swing.JemmyUtil.pressButton(new JFrameOperator(f2), Bundle.getMessage("ButtonCancel"));
|
|
JUnitUtil.dispose(f2);
|
|
JUnitUtil.dispose(f);
|
|
}
|
|
|
|
@Override
|
|
public String getEditFrameName() {
|
|
return "Edit Transit";
|
|
}
|
|
|
|
@Override
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.resetProfileManager();
|
|
JUnitUtil.initRosterConfigManager();
|
|
helpTarget = "package.jmri.jmrit.beantable.TransitTable";
|
|
InstanceManager.setDefault(jmri.BlockManager.class, new jmri.BlockManager());
|
|
JUnitUtil.initSectionManager();
|
|
a = new TransitTableAction();
|
|
Block b1 = InstanceManager.getDefault(BlockManager.class).provideBlock("IB12");
|
|
b1.setUserName("Block 12 UserName");
|
|
Block b2 = InstanceManager.getDefault(BlockManager.class).provideBlock("IB13");
|
|
b2.setUserName("Block 13 UserName");
|
|
Section s = InstanceManager.getDefault(SectionManager.class).createNewSection("TS1");
|
|
s.addBlock(b1);
|
|
Section s2 = InstanceManager.getDefault(SectionManager.class).createNewSection("TS2");
|
|
s2.addBlock(b2);
|
|
}
|
|
|
|
@Override
|
|
@AfterEach
|
|
public void tearDown() {
|
|
if ( a != null ) {
|
|
a.dispose();
|
|
a = null;
|
|
}
|
|
JUnitUtil.deregisterBlockManagerShutdownTask();
|
|
JUnitUtil.tearDown();
|
|
}
|
|
|
|
// private static final Logger log = LoggerFactory.getLogger(TransitTableActionTest.class);
|
|
}
|