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

105 lines
3.4 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.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 YardmasterFrameTest extends OperationsTestCase {
@Test
public void testCTor() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
YardmasterFrame t = new YardmasterFrame(null);
Assert.assertNotNull("exists", t);
JUnitUtil.dispose(t);
}
@Test
public void testLocationWithWork() {
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
// improve test coverage
Setup.setPrintHeadersEnabled(true);
// build a train to create data for the Yardmaster window
Train train = InstanceManager.getDefault(TrainManager.class).getTrainByName("STF");
Assert.assertNotNull("train must exist", train);
Assert.assertTrue("successful build", train.build());
Location l = InstanceManager.getDefault(LocationManager.class).getLocationByName("North Industries");
Assert.assertNotNull("location must exist", l);
YardmasterFrame ymFrame = new YardmasterFrame(l);
Assert.assertNotNull("exists", ymFrame);
YardmasterPanel ymPanel = (YardmasterPanel) ymFrame.getContentPane();
// press "Next" button to load window
JemmyUtil.enterClickAndLeave(ymPanel.nextButton);
// exercise buttons
JemmyUtil.enterClickAndLeave(ymPanel.selectButton);
JemmyUtil.enterClickAndLeave(ymPanel.clearButton);
// press "Modify"
JemmyUtil.enterClickAndLeaveThreadSafe(ymPanel.modifyButton);
// clear dialog window
JemmyUtil.pressDialogButton(ymFrame, Bundle.getMessage("AddCarsToTrain?"), Bundle.getMessage("ButtonNo"));
JemmyUtil.waitFor(ymFrame);
// press "Done"
JemmyUtil.enterClickAndLeave(ymPanel.modifyButton);
JUnitUtil.dispose(ymFrame);
JUnitOperationsUtil.checkOperationsShutDownTask();
}
// @Test
// public void testLoop2() {
// for (int i = 0; i < 1000; i++) {
// setUp();
// testLocationWithWork();
// 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).getTrainByName("STF");
train2.setComment(Train.NONE);
Route route = train2.getRoute();
RouteLocation rl = route.getDepartsRouteLocation();
rl.setComment(RouteLocation.NONE);
}
}