Files
JIMRI/java/test/jmri/jmrit/operations/trains/manualtrainbuilder/gui/TrainManualBuildEditFrameTest.java
T
2026-06-17 14:00:51 +02:00

156 lines
6.7 KiB
Java

package jmri.jmrit.operations.trains.manualtrainbuilder.gui;
import java.awt.GraphicsEnvironment;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.jupiter.api.Test;
import org.netbeans.jemmy.operators.JFrameOperator;
import org.netbeans.jemmy.operators.JTableOperator;
import jmri.InstanceManager;
import jmri.jmrit.operations.OperationsTestCase;
import jmri.jmrit.operations.setup.Setup;
import jmri.jmrit.operations.trains.Train;
import jmri.jmrit.operations.trains.TrainManager;
import jmri.util.JUnitUtil;
import jmri.util.JmriJFrame;
import jmri.util.swing.JemmyUtil;
/**
* @author Daniel Boudreau Copyright (C) 2028
*/
public class TrainManualBuildEditFrameTest extends OperationsTestCase {
@Test
public void testCreate() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
setupTest();
JUnitUtil.dispose(tmbef);
}
@Test
public void testDeleteButton() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
setupTest();
JmriJFrame f = JmriJFrame.getFrame(Bundle.getMessage("TitleManualBuild"));
Assert.assertNotNull("manual build frame", f);
JemmyUtil.enterClickAndLeaveThreadSafe(tmbef.deleteManualBuildButton);
JemmyUtil.pressDialogButton(Bundle.getMessage("DeleteManualBuild?"), Bundle.getMessage("ButtonYes"));
f = JmriJFrame.getFrame(Bundle.getMessage("TitleManualBuild"));
Assert.assertNull("manual build frame", f);
}
@Test
public void testSaveButton() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
setupTest();
JemmyUtil.enterClickAndLeave(tmbef.saveManualBuildButton);
JmriJFrame f = JmriJFrame.getFrame(Bundle.getMessage("TitleManualBuild"));
Assert.assertNotNull("manual build frame", f);
Setup.setCloseWindowOnSaveEnabled(true);
JemmyUtil.enterClickAndLeave(tmbef.saveManualBuildButton);
f = JmriJFrame.getFrame(Bundle.getMessage("TitleManualBuild"));
Assert.assertNull("manual build frame", f);
}
@Test
public void testAddCarButton() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
setupTest();
JemmyUtil.enterClickAndLeave(tmbef.addLocAtTop);
JemmyUtil.enterClickAndLeave(tmbef.addButton);
Assert.assertEquals("Confirm id", "1m4", jto.getValueAt(0, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m1", jto.getValueAt(1, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m2", jto.getValueAt(2, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m3", jto.getValueAt(3, jto.findColumn(Bundle.getMessage("Id"))));
JemmyUtil.enterClickAndLeave(tmbef.addLocAtMiddle);
JemmyUtil.enterClickAndLeave(tmbef.addButton);
Assert.assertEquals("Confirm id", "1m4", jto.getValueAt(0, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m1", jto.getValueAt(1, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m5", jto.getValueAt(2, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m2", jto.getValueAt(3, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m3", jto.getValueAt(4, jto.findColumn(Bundle.getMessage("Id"))));
jto.clickOnCell(1, jto.findColumn(Bundle.getMessage("Id")));
JemmyUtil.enterClickAndLeave(tmbef.addButton);
Assert.assertEquals("Confirm id", "1m4", jto.getValueAt(0, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m6", jto.getValueAt(1, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m1", jto.getValueAt(2, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m5", jto.getValueAt(3, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m2", jto.getValueAt(4, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m3", jto.getValueAt(5, jto.findColumn(Bundle.getMessage("Id"))));
JUnitUtil.dispose(tmbef);
}
@Test
public void testDownButton() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
setupTest();
// test down button
jto.clickOnCell(0, jto.findColumn(Bundle.getMessage("Down")));
Assert.assertEquals("Confirm id", "1m2", jto.getValueAt(0, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m1", jto.getValueAt(1, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m3", jto.getValueAt(2, jto.findColumn(Bundle.getMessage("Id"))));
JUnitUtil.dispose(tmbef);
}
@Test
public void testUpButton() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
setupTest();
// test up button
// findColumn returns "pick up" as the "up" column
jto.clickOnCell(0, jto.findColumn(Bundle.getMessage("Down")) - 1);
Assert.assertEquals("Confirm id", "1m2", jto.getValueAt(0, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m3", jto.getValueAt(1, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m1", jto.getValueAt(2, jto.findColumn(Bundle.getMessage("Id"))));
JUnitUtil.dispose(tmbef);
}
@Test
public void testDeleteItemButton() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
setupTest();
// test delete button
jto.clickOnCell(1, jto.findColumn(Bundle.getMessage("ButtonDelete")));
Assert.assertEquals("Confirm number of rows", 2, tmbtm.getRowCount());
Assert.assertEquals("Confirm id", "1m1", jto.getValueAt(0, jto.findColumn(Bundle.getMessage("Id"))));
Assert.assertEquals("Confirm id", "1m3", jto.getValueAt(1, jto.findColumn(Bundle.getMessage("Id"))));
JUnitUtil.dispose(tmbef);
}
TrainManualBuildEditFrame tmbef;
TrainManualBuildTableModel tmbtm;
JFrameOperator jfo;
JTableOperator jto;
private void setupTest() {
TrainManager trainManager = InstanceManager.getDefault(TrainManager.class);
Train train = trainManager.newTrain("Test");
tmbef = new TrainManualBuildEditFrame(train.getId());
Assert.assertNotNull("exists", tmbef);
tmbtm = tmbef.manualBuildModel;
jfo = new JFrameOperator(tmbef);
jto = new JTableOperator(jfo);
// add 3 lines
JemmyUtil.enterClickAndLeave(tmbef.addButton);
JemmyUtil.enterClickAndLeave(tmbef.addButton);
JemmyUtil.enterClickAndLeave(tmbef.addButton);
Assert.assertEquals("Confirm number of rows", 3, tmbtm.getRowCount());
}
}