88 lines
3.7 KiB
Java
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());
|
|
}
|
|
}
|