-
Notifications
You must be signed in to change notification settings - Fork 331
/
RunTrainActionTest.java
146 lines (117 loc) · 4.73 KB
/
RunTrainActionTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
package jmri.jmrit.operations.automation.actions;
import java.io.File;
import java.io.IOException;
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;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
*
* @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).excelFileExists());
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");
}
// The minimal setup for log4J
@Override
@Before
public void setUp() {
super.setUp();
}
@Override
@After
public void tearDown() {
super.tearDown();
}
// private final static Logger log = LoggerFactory.getLogger(RunTrainActionTest.class);
}