119 lines
4.3 KiB
Java
119 lines
4.3 KiB
Java
package jmri.jmrit.operations.locations.gui;
|
|
|
|
import java.awt.GraphicsEnvironment;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.Assume;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.jmrit.operations.OperationsTestCase;
|
|
import jmri.jmrit.operations.locations.*;
|
|
import jmri.jmrit.operations.rollingstock.engines.Engine;
|
|
import jmri.jmrit.operations.rollingstock.engines.EngineManager;
|
|
import jmri.jmrit.operations.routes.Route;
|
|
import jmri.jmrit.operations.routes.RouteLocation;
|
|
import jmri.jmrit.operations.setup.Setup;
|
|
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 YardmasterByTrackFrameTest extends OperationsTestCase {
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
YardmasterByTrackFrame t = new YardmasterByTrackFrame(null);
|
|
Assert.assertNotNull("exists", t);
|
|
JUnitUtil.dispose(t);
|
|
}
|
|
|
|
@Test
|
|
public void testPanel() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
|
|
// increase coverage by requiring text headers
|
|
Setup.setPrintHeadersEnabled(true);
|
|
|
|
// place engines at start of train's route
|
|
LocationManager lmanager = InstanceManager.getDefault(LocationManager.class);
|
|
Location locationNorthEnd = lmanager.getLocationByName("North End Staging");
|
|
Track trackNorthEnd = locationNorthEnd.getTrackByName("North End 1", null);
|
|
EngineManager eManager = InstanceManager.getDefault(EngineManager.class);
|
|
Engine e1 = eManager.getByRoadAndNumber("PC", "5016");
|
|
Assert.assertNotNull("engine exists", e1);
|
|
e1.setLocation(locationNorthEnd, trackNorthEnd);
|
|
|
|
Engine e2 = eManager.getByRoadAndNumber("PC", "5019");
|
|
Assert.assertNotNull("engine exists", e2);
|
|
e2.setLocation(locationNorthEnd, trackNorthEnd);
|
|
|
|
// create data by building a train
|
|
TrainManager tmanager = InstanceManager.getDefault(TrainManager.class);
|
|
|
|
Train train = tmanager.getTrainByName("STF");
|
|
train.setNumberEngines("2");
|
|
train.build();
|
|
|
|
// 1st location
|
|
YardmasterByTrackFrame f = new YardmasterByTrackFrame(locationNorthEnd);
|
|
Assert.assertNotNull("exists", f);
|
|
YardmasterByTrackPanel yp = (YardmasterByTrackPanel)f.getContentPane();
|
|
JemmyUtil.enterClickAndLeave(yp.nextButton);
|
|
JUnitUtil.dispose(f);
|
|
|
|
// 2nd location in train's route
|
|
Location locationNorthIndustries = lmanager.getLocationByName("North Industries");
|
|
f = new YardmasterByTrackFrame(locationNorthIndustries);
|
|
Assert.assertNotNull("exists", f);
|
|
yp = (YardmasterByTrackPanel)f.getContentPane();
|
|
JemmyUtil.enterClickAndLeave(yp.nextButton);
|
|
JUnitUtil.dispose(f);
|
|
|
|
// 3rd location in train's route
|
|
Location locationSouthEnd = lmanager.getLocationByName("South End Staging");
|
|
f = new YardmasterByTrackFrame(locationSouthEnd);
|
|
Assert.assertNotNull("exists", f);
|
|
yp = (YardmasterByTrackPanel)f.getContentPane();
|
|
JemmyUtil.enterClickAndLeave(yp.nextButton);
|
|
JUnitUtil.dispose(f);
|
|
|
|
JUnitOperationsUtil.checkOperationsShutDownTask();
|
|
}
|
|
|
|
// @Test
|
|
// public void testLoop2() {
|
|
// for (int i = 0; i < 1000; i++) {
|
|
// setUp();
|
|
// testPanel();
|
|
// tearDown();
|
|
// }
|
|
// }
|
|
|
|
@BeforeEach
|
|
@Override
|
|
public void setUp() {
|
|
super.setUp();
|
|
|
|
// disable build messages
|
|
InstanceManager.getDefault(TrainManager.class).setBuildMessagesEnabled(false);
|
|
|
|
JUnitOperationsUtil.initOperationsData();
|
|
// need to disable all references to JTextPane() so test dead locks don't occur
|
|
// on Windows CI tests
|
|
Setup.setPrintRouteCommentsEnabled(false);
|
|
Setup.setPrintLocationCommentsEnabled(false);
|
|
Train train2 = InstanceManager.getDefault(TrainManager.class).getTrainById("2");
|
|
Route route = train2.getRoute();
|
|
RouteLocation rl = route.getDepartsRouteLocation();
|
|
rl.setComment(RouteLocation.NONE);
|
|
}
|
|
}
|