154 lines
6.2 KiB
Java
154 lines
6.2 KiB
Java
package jmri.jmrit.operations.trains.schedules;
|
|
|
|
import java.awt.GraphicsEnvironment;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.Assume;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.netbeans.jemmy.operators.*;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.jmrit.operations.OperationsTestCase;
|
|
import jmri.jmrit.operations.trains.Train;
|
|
import jmri.jmrit.operations.trains.TrainManager;
|
|
import jmri.util.*;
|
|
import jmri.util.swing.JemmyUtil;
|
|
|
|
/**
|
|
* @author Paul Bender Copyright (C) 2017
|
|
*/
|
|
public class TrainsScheduleTableFrameTest extends OperationsTestCase {
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
TrainsScheduleTableFrame t = new TrainsScheduleTableFrame();
|
|
Assert.assertNotNull("exists", t);
|
|
JUnitUtil.dispose(t);
|
|
}
|
|
|
|
@Test
|
|
public void testButtons() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
JUnitOperationsUtil.initOperationsData();
|
|
TrainManager tm = InstanceManager.getDefault(TrainManager.class);
|
|
Train sff = tm.getTrainByName("SFF");
|
|
Train stf = tm.getTrainByName("STF");
|
|
|
|
TrainsScheduleTableFrame f = new TrainsScheduleTableFrame();
|
|
Assert.assertNotNull("exists", f);
|
|
|
|
JFrameOperator jfo = new JFrameOperator(f);
|
|
JTableOperator tbl = new JTableOperator(jfo);
|
|
|
|
Assert.assertFalse("button enabled", f.activateButton.isEnabled());
|
|
JemmyUtil.enterClickAndLeave(f.anyButton);
|
|
Assert.assertTrue("button enabled", f.activateButton.isEnabled());
|
|
|
|
JemmyUtil.enterClickAndLeave(f.noneButton);
|
|
Assert.assertFalse("button enabled", f.activateButton.isEnabled());
|
|
|
|
JRadioButtonOperator jbo = new JRadioButtonOperator(jfo, "Monday");
|
|
jbo.doClick();
|
|
Assert.assertTrue("button enabled", f.activateButton.isEnabled());
|
|
|
|
Assert.assertEquals("Monday", false, tbl.getValueAt(0, tbl.findColumn("Monday")));
|
|
Assert.assertEquals("Monday", false, tbl.getValueAt(1, tbl.findColumn("Monday")));
|
|
JemmyUtil.enterClickAndLeave(f.applyButton);
|
|
Assert.assertFalse("Build", sff.isBuildEnabled());
|
|
Assert.assertFalse("Build", stf.isBuildEnabled());
|
|
Assert.assertFalse("Built", sff.isBuilt());
|
|
Assert.assertFalse("Built", stf.isBuilt());
|
|
|
|
JemmyUtil.enterClickAndLeave(f.selectButton);
|
|
Assert.assertEquals("Monday", true, tbl.getValueAt(0, tbl.findColumn("Monday")));
|
|
Assert.assertEquals("Monday", true, tbl.getValueAt(1, tbl.findColumn("Monday")));
|
|
JemmyUtil.enterClickAndLeave(f.applyButton);
|
|
Assert.assertTrue("Build", sff.isBuildEnabled());
|
|
Assert.assertTrue("Build", stf.isBuildEnabled());
|
|
JemmyUtil.enterClickAndLeave(f.buildButton);
|
|
jmri.util.JUnitUtil.waitFor(() -> {
|
|
return sff.isBuilt();
|
|
}, "wait for train to build");
|
|
Assert.assertTrue("Built", sff.isBuilt());
|
|
Assert.assertTrue("Built", stf.isBuilt());
|
|
|
|
// test activate button
|
|
TrainSchedule sch = InstanceManager.getDefault(TrainScheduleManager.class).getActiveSchedule();
|
|
Assert.assertNull(sch);
|
|
JemmyUtil.enterClickAndLeave(f.activateButton);
|
|
sch = InstanceManager.getDefault(TrainScheduleManager.class).getActiveSchedule();
|
|
Assert.assertNotNull(sch);
|
|
Assert.assertEquals("schedule name", "Monday", sch.getName());
|
|
Assert.assertEquals("schedule comment", "", sch.getComment());
|
|
|
|
sch.setName("MONDAY");
|
|
|
|
// test Save
|
|
f.commentTextArea.setText("Test Comment");
|
|
JemmyUtil.enterClickAndLeave(f.saveButton);
|
|
Assert.assertEquals("schedule comment", "Test Comment", sch.getComment());
|
|
|
|
JemmyUtil.enterClickAndLeave(f.clearButton);
|
|
Assert.assertEquals("Monday", false, tbl.getValueAt(0, tbl.findColumn("Monday")));
|
|
Assert.assertEquals("Monday", false, tbl.getValueAt(1, tbl.findColumn("Monday")));
|
|
JemmyUtil.enterClickAndLeave(f.applyButton);
|
|
Assert.assertFalse("Build", sff.isBuildEnabled());
|
|
Assert.assertFalse("Build", stf.isBuildEnabled());
|
|
Assert.assertTrue("Built", sff.isBuilt());
|
|
Assert.assertTrue("Built", stf.isBuilt());
|
|
|
|
tm.setPrintPreviewEnabled(true);
|
|
JemmyUtil.enterClickAndLeave(f.selectButton);
|
|
JemmyUtil.enterClickAndLeave(f.applyButton);
|
|
JemmyUtil.enterClickAndLeave(f.sortByName);
|
|
JemmyUtil.enterClickAndLeave(f.printButton); // preview
|
|
JemmyUtil.enterClickAndLeave(f.switchListsButton); // preview
|
|
|
|
// TODO test terminate button
|
|
// JemmyUtil.enterClickAndLeave(f.terminateButton);
|
|
//
|
|
// jmri.util.JUnitUtil.waitFor(() -> {
|
|
// return !sff.isBuilt();
|
|
// }, "wait for train to terminate");
|
|
// Assert.assertFalse("Built", sff.isBuilt());
|
|
// Assert.assertFalse("Built", stf.isBuilt());
|
|
|
|
Assert.assertEquals("Train name", "SFF", tbl.getValueAt(0, tbl.findColumn(Bundle.getMessage("Name"))));
|
|
|
|
JemmyUtil.enterClickAndLeave(f.sortByTime);
|
|
Assert.assertEquals("Train name", "STF", tbl.getValueAt(0, tbl.findColumn(Bundle.getMessage("Name"))));
|
|
|
|
JUnitUtil.dispose(f);
|
|
JmriJFrame jFrame = JmriJFrame.getFrame("Print Preview: Train STF");
|
|
Assert.assertNotNull(jFrame);
|
|
JUnitUtil.dispose(jFrame);
|
|
|
|
jFrame = JmriJFrame.getFrame("Print Preview: Train SFF");
|
|
Assert.assertNotNull(jFrame);
|
|
JUnitUtil.dispose(jFrame);
|
|
|
|
jFrame = JmriJFrame.getFrame("Print Preview: North End Staging");
|
|
Assert.assertNotNull(jFrame);
|
|
JUnitUtil.dispose(jFrame);
|
|
|
|
jFrame = JmriJFrame.getFrame("Print Preview: North Industries");
|
|
Assert.assertNotNull(jFrame);
|
|
JUnitUtil.dispose(jFrame);
|
|
|
|
jFrame = JmriJFrame.getFrame("Print Preview: South End Staging");
|
|
Assert.assertNotNull(jFrame);
|
|
JUnitUtil.dispose(jFrame);
|
|
|
|
JUnitOperationsUtil.checkOperationsShutDownTask();
|
|
}
|
|
|
|
@Test
|
|
public void testCloseWindowOnSave() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
TrainsScheduleTableFrame f = new TrainsScheduleTableFrame();
|
|
f.initComponents();
|
|
JUnitOperationsUtil.testCloseWindowOnSave(f.getTitle());
|
|
}
|
|
}
|