package jmri.jmrit.operations.trains.tools; import java.io.File; import org.junit.Assert; import org.junit.jupiter.api.*; import jmri.InstanceManager; import jmri.jmrit.operations.OperationsTestCase; 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 ExportTrainsTest extends OperationsTestCase { @Test public void testCTor() { ExportTrains t = new ExportTrains(); Assert.assertNotNull("exists", t); } @Test @jmri.util.junit.annotations.DisabledIfHeadless public void testCreateFile() { ExportTrains exportTrains = new ExportTrains(); Assert.assertNotNull("exists", exportTrains); JUnitOperationsUtil.initOperationsData(); // built trains increase coverage TrainManager tmanager = InstanceManager.getDefault(TrainManager.class); Train train = tmanager.getTrainByName("STF"); Assert.assertTrue(train.build()); // next should cause export complete dialog to appear Thread export = new Thread(exportTrains::writeOperationsTrainsFile); export.setName("Export Trains"); // NOI18N export.start(); JUnitUtil.waitFor(() -> { return export.getState().equals(Thread.State.WAITING); }, "wait for prompt"); JemmyUtil.pressDialogButton(Bundle.getMessage("ExportComplete"), Bundle.getMessage("ButtonOK")); jmri.util.JUnitUtil.waitFor(() -> !export.isAlive(), "wait for export to complete"); File file = new File(ExportTrains.defaultOperationsFilename()); Assert.assertTrue("Confirm file creation", file.exists()); JUnitOperationsUtil.checkOperationsShutDownTask(); } // private static final Logger log = LoggerFactory.getLogger(ExportTrainsTest.class); }