Files
JIMRI/java/test/jmri/jmrit/operations/trains/tools/ChangeDepartureTimesFrameTest.java
2026-06-17 14:00:51 +02:00

88 lines
3.7 KiB
Java

package jmri.jmrit.operations.trains.tools;
import java.awt.GraphicsEnvironment;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.jupiter.api.Test;
import jmri.InstanceManager;
import jmri.jmrit.operations.OperationsTestCase;
import jmri.jmrit.operations.routes.Route;
import jmri.jmrit.operations.routes.RouteLocation;
import jmri.jmrit.operations.trains.Train;
import jmri.jmrit.operations.trains.TrainManager;
import jmri.util.JUnitOperationsUtil;
import jmri.util.JUnitUtil;
import jmri.util.swing.JemmyUtil;
/**
*
* @author Paul Bender Copyright (C) 2017
*/
public class ChangeDepartureTimesFrameTest extends OperationsTestCase {
@Test
public void testCTor() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
ChangeDepartureTimesFrame t = new ChangeDepartureTimesFrame();
Assert.assertNotNull("exists", t);
JUnitUtil.dispose(t);
}
@Test
public void testChangeTime() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
JUnitOperationsUtil.initOperationsData();
// confirm departure time default
TrainManager tmanager = InstanceManager.getDefault(TrainManager.class);
Train train2 = tmanager.getTrainById("2");
Assert.assertEquals("departure time", "22", train2.getDepartureTimeHour());
ChangeDepartureTimesFrame f = new ChangeDepartureTimesFrame();
// default is 0
Assert.assertEquals("Default", 0, f.hourBox.getSelectedItem());
Assert.assertEquals("Default", 0, f.dayBox.getSelectedItem());
f.hourBox.setSelectedItem(1);
JemmyUtil.enterClickAndLeave(f.changeButton);
Assert.assertEquals("departure time", "23", train2.getDepartureTimeHour());
// test roll over at 24 hours
JemmyUtil.enterClickAndLeave(f.changeButton);
Assert.assertEquals("departure time", "00", train2.getDepartureTimeHour());
}
@Test
public void testChangeTimeRoute() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
JUnitOperationsUtil.initOperationsData();
TrainManager tmanager = InstanceManager.getDefault(TrainManager.class);
Train train2 = tmanager.getTrainById("2");
Route route = train2.getRoute();
// set depart time using the train's route
RouteLocation rl1 = route.getRouteLocationBySequenceNumber(1);
rl1.setDepartureTime("1", "03", "43");
RouteLocation rl2 = route.getRouteLocationBySequenceNumber(2);
rl2.setDepartureTime("30", "23", "02");
// leave route update checkbox unselected
Assert.assertEquals("departure time", "03", train2.getDepartureTimeHour());
ChangeDepartureTimesFrame f = new ChangeDepartureTimesFrame();
f.hourBox.setSelectedItem(1);
f.dayBox.setSelectedItem(2);
JemmyUtil.enterClickAndLeave(f.changeButton);
Assert.assertEquals("departure day", "1", train2.getDepartureTimeDay());
Assert.assertEquals("departure time", "03", train2.getDepartureTimeHour());
Assert.assertEquals("Route location departure day", "30", rl2.getDepartureTimeDay());
Assert.assertEquals("Route location departure time", "23", rl2.getDepartureTimeHour());
// now select checkbox
JemmyUtil.enterClickAndLeave(f.routesCheckBox);
JemmyUtil.enterClickAndLeave(f.changeButton);
Assert.assertEquals("departure day", "3", train2.getDepartureTimeDay());
Assert.assertEquals("departure time", "04", train2.getDepartureTimeHour());
Assert.assertEquals("Route location departure day", "1", rl2.getDepartureTimeDay());
Assert.assertEquals("Route location departure time", "00", rl2.getDepartureTimeHour());
}
}