97 lines
3.8 KiB
Java
97 lines
3.8 KiB
Java
package jmri.jmrit.operations.routes.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.RouteManager;
|
|
import jmri.jmrit.operations.routes.gui.RouteEditFrame;
|
|
import jmri.util.JUnitOperationsUtil;
|
|
import jmri.util.JUnitUtil;
|
|
import jmri.util.JmriJFrame;
|
|
import jmri.util.swing.JemmyUtil;
|
|
|
|
/**
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
*/
|
|
public class RouteCopyFrameTest extends OperationsTestCase {
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
RouteCopyFrame t = new RouteCopyFrame(null);
|
|
Assert.assertNotNull("exists",t);
|
|
JUnitUtil.dispose(t);
|
|
}
|
|
|
|
@Test
|
|
public void testCopyNoRouteSelected() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
JUnitOperationsUtil.createThreeLocationRoute();
|
|
RouteCopyFrame rcf = new RouteCopyFrame(null);
|
|
Assert.assertNotNull("exists", rcf);
|
|
|
|
// route not selected
|
|
rcf.routeNameTextField.setText("TestCopyRouteName");
|
|
JemmyUtil.enterClickAndLeave(rcf.copyButton);
|
|
RouteManager rmanager = InstanceManager.getDefault(RouteManager.class);
|
|
Assert.assertEquals("routes 1", 1, rmanager.getRoutesByNameList().size());
|
|
JemmyUtil.pressDialogButton(rcf, Bundle.getMessage("CopyRoute"), Bundle.getMessage("ButtonOK"));
|
|
JemmyUtil.waitFor(rcf);
|
|
JUnitUtil.dispose(rcf);
|
|
}
|
|
|
|
@Test
|
|
public void testCopy() {
|
|
Assume.assumeFalse(GraphicsEnvironment.isHeadless());
|
|
Route r = JUnitOperationsUtil.createThreeLocationRoute();
|
|
RouteCopyFrame rcf = new RouteCopyFrame(r);
|
|
Assert.assertNotNull("exists", rcf);
|
|
|
|
// no new route name
|
|
JemmyUtil.enterClickAndLeaveThreadSafe(rcf.copyButton);
|
|
RouteManager rmanager = InstanceManager.getDefault(RouteManager.class);
|
|
Assert.assertEquals("routes 1", 1, rmanager.getRoutesByNameList().size());
|
|
JemmyUtil.pressDialogButton(rcf, Bundle.getMessage("EnterRouteName"), Bundle.getMessage("ButtonOK"));
|
|
JemmyUtil.waitFor(rcf);
|
|
|
|
// name too long
|
|
rcf.routeNameTextField.setText("abcdefghijklmnopqrstuvwxwyz");
|
|
JemmyUtil.enterClickAndLeaveThreadSafe(rcf.copyButton);
|
|
Assert.assertEquals("routes 1", 1, rmanager.getRoutesByNameList().size());
|
|
JemmyUtil.pressDialogButton(rcf, Bundle.getMessage("CanNotAddRoute"), Bundle.getMessage("ButtonOK"));
|
|
JemmyUtil.waitFor(rcf);
|
|
|
|
// good route name
|
|
rcf.routeNameTextField.setText("TestCopyRouteName");
|
|
JemmyUtil.enterClickAndLeave(rcf.copyButton);
|
|
Assert.assertEquals("routes 2", 2, rmanager.getRoutesByNameList().size());
|
|
Assert.assertNotNull("Route exists", rmanager.getRouteByName("TestCopyRouteName"));
|
|
|
|
RouteEditFrame editRouteFrame = (RouteEditFrame) JmriJFrame.getFrame(Bundle.getMessage("TitleRouteEdit"));
|
|
Assert.assertNotNull("Edit frame", editRouteFrame);
|
|
|
|
JUnitUtil.dispose(editRouteFrame);
|
|
|
|
// same route name, error
|
|
JemmyUtil.enterClickAndLeaveThreadSafe(rcf.copyButton);
|
|
Assert.assertEquals("routes 2", 2, rmanager.getRoutesByNameList().size());
|
|
JemmyUtil.pressDialogButton(rcf, Bundle.getMessage("CanNotAddRoute"), Bundle.getMessage("ButtonOK"));
|
|
JemmyUtil.waitFor(rcf);
|
|
|
|
editRouteFrame = (RouteEditFrame) JmriJFrame.getFrame(Bundle.getMessage("TitleRouteEdit"));
|
|
Assert.assertNull("Edit frame", editRouteFrame);
|
|
|
|
JUnitUtil.dispose(rcf);
|
|
}
|
|
|
|
// private static final Logger log = LoggerFactory.getLogger(RouteCopyFrameTest.class);
|
|
|
|
}
|