137 lines
4.6 KiB
Java
137 lines
4.6 KiB
Java
package jmri.jmrit.operations.automation.actions;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
import org.junit.Assert;
|
|
import org.junit.jupiter.api.*;
|
|
|
|
import jmri.InstanceManager;
|
|
import jmri.jmrit.operations.OperationsManager;
|
|
import jmri.jmrit.operations.OperationsTestCase;
|
|
import jmri.jmrit.operations.automation.AutomationItem;
|
|
import jmri.jmrit.operations.setup.Setup;
|
|
import jmri.jmrit.operations.trains.Train;
|
|
import jmri.jmrit.operations.trains.TrainManager;
|
|
import jmri.jmrit.operations.trains.excel.TrainCustomManifest;
|
|
import jmri.util.JUnitOperationsUtil;
|
|
|
|
/**
|
|
*
|
|
* @author Paul Bender Copyright (C) 2017
|
|
*/
|
|
public class RunTrainActionTest extends OperationsTestCase {
|
|
|
|
@Test
|
|
public void testCTor() {
|
|
RunTrainAction t = new RunTrainAction();
|
|
Assert.assertNotNull("exists", t);
|
|
}
|
|
|
|
@Test
|
|
public void testActionNoAutomationItem() {
|
|
RunTrainAction action = new RunTrainAction();
|
|
Assert.assertNotNull("exists", action);
|
|
// does nothing, no automationItem
|
|
action.doAction();
|
|
}
|
|
|
|
@Test
|
|
public void testGetActionName() {
|
|
RunTrainAction action = new RunTrainAction();
|
|
Assert.assertEquals("name", Bundle.getMessage("RunTrain"), action.getName());
|
|
}
|
|
|
|
@Test
|
|
public void testIsMessageOkEnabled() {
|
|
RunTrainAction action = new RunTrainAction();
|
|
Assert.assertTrue(action.isMessageOkEnabled());
|
|
}
|
|
|
|
@Test
|
|
public void testIsMessageFailEnabled() {
|
|
RunTrainAction action = new RunTrainAction();
|
|
Assert.assertTrue(action.isMessageFailEnabled());
|
|
}
|
|
|
|
@Test
|
|
public void testIsConcurrentAction() {
|
|
RunTrainAction action = new RunTrainAction();
|
|
Assert.assertFalse(action.isConcurrentAction());
|
|
}
|
|
|
|
@Test
|
|
public void testRunTrainActionFailures() {
|
|
|
|
JUnitOperationsUtil.initOperationsData();
|
|
|
|
RunTrainAction action = new RunTrainAction();
|
|
Assert.assertNotNull("exists", action);
|
|
AutomationItem automationItem = new AutomationItem("TestId");
|
|
automationItem.setAction(action);
|
|
Assert.assertEquals("confirm registered", automationItem, action.getAutomationItem());
|
|
|
|
// confirm that default is not enabled
|
|
Assert.assertFalse(Setup.isGenerateCsvManifestEnabled());
|
|
|
|
// does nothing, not enabled
|
|
action.doAction();
|
|
Assert.assertFalse(automationItem.isActionRunning());
|
|
Assert.assertFalse(automationItem.isActionSuccessful());
|
|
|
|
jmri.util.JUnitAppender.assertWarnMessage("Generate CSV Manifest isn't enabled!");
|
|
|
|
Setup.setGenerateCsvManifestEnabled(true);
|
|
|
|
// does nothing, excel program not configured
|
|
action.doAction();
|
|
Assert.assertFalse(automationItem.isActionRunning());
|
|
Assert.assertFalse(automationItem.isActionSuccessful());
|
|
|
|
jmri.util.JUnitAppender.assertWarnMessage(
|
|
"Manifest creator file not found!, directory name: csvManifests, file name: MC4JMRI.xls");
|
|
|
|
// load dummy file
|
|
File file = new File(
|
|
InstanceManager.getDefault(OperationsManager.class)
|
|
.getFile(InstanceManager.getDefault(TrainCustomManifest.class).getDirectoryName()),
|
|
"Test_Excel_File.xls");
|
|
InstanceManager.getDefault(TrainCustomManifest.class).setFileName(file.getName());
|
|
|
|
try {
|
|
file.createNewFile();
|
|
} catch (IOException e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
|
|
// confirm file exists
|
|
Assert.assertTrue(InstanceManager.getDefault(TrainCustomManifest.class).doesExcelFileExist());
|
|
|
|
TrainManager tmanager = InstanceManager.getDefault(TrainManager.class);
|
|
Train train1 = tmanager.getTrainById("1");
|
|
Assert.assertNotNull(train1);
|
|
|
|
// does nothing, no train assignment
|
|
action.doAction();
|
|
Assert.assertFalse(automationItem.isActionRunning());
|
|
Assert.assertFalse(automationItem.isActionSuccessful());
|
|
|
|
jmri.util.JUnitAppender.assertWarnMessage("No train selected for custom manifest");
|
|
|
|
automationItem.setTrain(train1);
|
|
// does nothing, train isn't built
|
|
action.doAction();
|
|
Assert.assertFalse(automationItem.isActionRunning());
|
|
Assert.assertFalse(automationItem.isActionSuccessful());
|
|
|
|
jmri.util.JUnitAppender.assertWarnMessage("Train (STF) needs to be built before creating a custom manifest");
|
|
|
|
JUnitOperationsUtil.checkOperationsShutDownTask();
|
|
|
|
}
|
|
|
|
// private static final Logger log = LoggerFactory.getLogger(RunTrainActionTest.class);
|
|
|
|
}
|