source: tmcsimulator/trunk/test/tmcsim/cadsimulator/viewer/CADConsoleViewerTest.java @ 455

Revision 455, 9.4 KB checked in by jdalbey, 7 years ago (diff)

ConfigStatusTab? updated to fix @169.

Line 
1package tmcsim.cadsimulator.viewer;
2
3import java.io.StringWriter;
4import java.util.logging.Level;
5import java.util.logging.Logger;
6import junit.framework.TestCase;
7import tmcsim.cadsimulator.viewer.model.CADSimulatorState;
8import tmcsim.common.CADEnums;
9
10/**
11 *
12 * @author jdalbey
13 */
14public class CADConsoleViewerTest extends TestCase
15{
16
17    CADConsoleViewer console;
18    CADSimulatorState cadmodel;
19    StringWriter sw;
20
21    public CADConsoleViewerTest(String testName)
22    {
23        super(testName);
24    }
25
26    @Override
27    protected void setUp() throws Exception
28    {
29        super.setUp();
30        console = new CADConsoleViewer("config/cad_simulator_config.properties");
31        cadmodel = new CADSimulatorState();
32        cadmodel.addObserver(console);
33        sw = new StringWriter();
34        console.setWriter(sw);
35    }
36    /**
37     * compare StringWriter contents against expected
38     */
39    private void verify(String msg, String expect)
40    {
41        String result = sw.toString().trim();
42        result = result.replaceAll("\n", ",");
43        String fullExpect = expect.trim();
44        fullExpect = fullExpect.replaceAll("\n", ",");
45        assertTrue(msg + ": " + result, result.endsWith(fullExpect));
46    }
47
48    public static void pause(int millis)
49    {
50        try
51        {
52            Thread.sleep(millis);
53        } catch (InterruptedException ex)
54        {
55        }
56    }
57
58    /**
59     * Test of setVisible method, of class CADConsoleViewer.
60     */
61    public void testSetVisible()
62    {
63        String expected1 =
64                "--- CAD Simulator ---\n"
65                + "Elapsed Simulation Time     : 0:00:00\n"
66                + "Status                      : No Script\n"
67                + "Connected CAD Terminals     : 0\n"
68                + "Simulation Manager Connected: No\n"
69                + "Connected to Paramics       : No\n"
70                + "Network Loaded              : None\n"
71                + "-- Info Messages --\n\n"
72                + "-- Error Messages --";
73        System.out.println("setVisible");
74        console.setVisible(true);
75        String out = sw.toString().trim();
76        assertEquals(expected1, out);
77    }
78
79    public void testConnect()
80    {
81        String expected2 =
82                "--- CAD Simulator ---\n"
83                + "Elapsed Simulation Time     : 0:00:00\n"
84                + "Status                      : No Script\n"
85                + "Connected CAD Terminals     : 1\n"
86                + "Simulation Manager Connected: No\n"
87                + "Connected to Paramics       : No\n"
88                + "Network Loaded              : None\n"
89                + "-- Info Messages --\n\n"
90                + "-- Error Messages --\n\n";
91        cadmodel.connectClient();
92        verify("connected 1 terminal output incorrect: ", expected2);
93    }
94
95    public void testConnect2()
96    {
97        String expected3 =
98                "--- CAD Simulator ---\n"
99                + "Elapsed Simulation Time     : 0:00:00\n"
100                + "Status                      : No Script\n"
101                + "Connected CAD Terminals     : 2\n"
102                + "Simulation Manager Connected: No\n"
103                + "Connected to Paramics       : No\n"
104                + "Network Loaded              : None\n"
105                + "-- Info Messages --\n\n"
106                + "-- Error Messages --\n\n";
107        cadmodel.connectClient();
108        cadmodel.connectClient();
109        verify("connected 2 terminals output incorrect: ", expected3);
110    }
111
112    public void testDisconnect()
113    {
114        String expected3 =
115                "--- CAD Simulator ---\n"
116                + "Elapsed Simulation Time     : 0:00:00\n"
117                + "Status                      : No Script\n"
118                + "Connected CAD Terminals     : 2\n"
119                + "Simulation Manager Connected: No\n"
120                + "Connected to Paramics       : No\n"
121                + "Network Loaded              : None\n"
122                + "-- Info Messages --\n\n"
123                + "-- Error Messages --\n\n";
124        cadmodel.connectClient();
125        cadmodel.connectClient();
126        cadmodel.connectClient();
127        cadmodel.disconnectClient();
128        verify("disconnect terminal output incorrect: ", expected3);
129    }
130
131    public void testSimMgrConnect()
132    {
133        String expected4 =
134                "--- CAD Simulator ---\n"
135                + "Elapsed Simulation Time     : 0:00:00\n"
136                + "Status                      : No Script\n"
137                + "Connected CAD Terminals     : 0\n"
138                + "Simulation Manager Connected: Yes\n"
139                + "Connected to Paramics       : No\n"
140                + "Network Loaded              : None\n"
141                + "-- Info Messages --\n\n"
142                + "-- Error Messages --\n\n";
143        cadmodel.setSimManagerStatus(true);
144        verify("sim mgr connected output incorrect: ", expected4);
145    }
146
147    public void testInfoPane()
148    {
149        String expected5 =
150                "--- CAD Simulator ---\n"
151                + "Elapsed Simulation Time     : 0:00:00\n"
152                + "Status                      : No Script\n"
153                + "Connected CAD Terminals     : 0\n"
154                + "Simulation Manager Connected: No\n"
155                + "Connected to Paramics       : No\n"
156                + "Network Loaded              : None\n"
157                + "-- Info Messages --\n"
158                + ". = Console Info Message.\n"
159                + "-- Error Messages --\n\n";
160        Logger cadSimLogger = Logger.getLogger("tmcsim.cadsimulator");
161        cadSimLogger.logp(Level.INFO, "", "", "Console Info Message.");
162        verify("Info message output incorrect: ", expected5);
163    }
164
165    public void testErrorPane()
166    {
167        String expected7 =
168                "--- CAD Simulator ---\n"
169                + "Elapsed Simulation Time     : 0:00:00\n"
170                + "Status                      : No Script\n"
171                + "Connected CAD Terminals     : 0\n"
172                + "Simulation Manager Connected: No\n"
173                + "Connected to Paramics       : No\n"
174                + "Network Loaded              : None\n"
175                + "-- Info Messages --\n\n"
176                + "-- Error Messages --\n"
177                + "Someclass.Somemethod = Sample error message.\n";
178        Logger cadSimLogger = Logger.getLogger("tmcsim.cadsimulator");
179        cadSimLogger.logp(Level.SEVERE, "Someclass", "Somemethod", "Sample error message.");
180        verify("Error message output incorrect: ", expected7);
181    }
182
183    public void testParamicsChg()
184    {
185        String expected6 =
186                "--- CAD Simulator ---\n"
187                + "Elapsed Simulation Time     : 0:00:00\n"
188                + "Status                      : No Script\n"
189                + "Connected CAD Terminals     : 0\n"
190                + "Simulation Manager Connected: No\n"
191                + "Connected to Paramics       : Yes\n"
192                + "Network Loaded              : None\n"
193                + "-- Info Messages --\n\n"
194                + "-- Error Messages --\n\n";
195        cadmodel.setParamicsStatus(CADEnums.PARAMICS_STATUS.CONNECTED);
196        pause(500);
197        verify("paramics connected should be yes", expected6);
198    }
199
200    public void testSimStatus()
201    {
202        String expected8 =
203                "--- CAD Simulator ---\n"
204                + "Elapsed Simulation Time     : 0:00:00\n"
205                + "Status                      : Ready\n"
206                + "Connected CAD Terminals     : 0\n"
207                + "Simulation Manager Connected: No\n"
208                + "Connected to Paramics       : No\n"
209                + "Network Loaded              : None\n"
210                + "-- Info Messages --\n\n"
211                + "-- Error Messages --\n\n";
212        cadmodel.setScriptStatus(CADEnums.SCRIPT_STATUS.SCRIPT_STOPPED_NOT_STARTED);
213        verify("sim status should be ready", expected8);
214        cadmodel.setScriptStatus(CADEnums.SCRIPT_STATUS.SCRIPT_RUNNING);
215        String result = sw.toString();
216        assertTrue("sim status should be running: " + result, result.contains("Running"));
217    }
218
219    public void testSimTime()
220    {
221        String expected9 =
222                "--- CAD Simulator ---\n"
223                + "Elapsed Simulation Time     : 0:01:01\n"
224                + "Status                      : No Script\n"
225                + "Connected CAD Terminals     : 0\n"
226                + "Simulation Manager Connected: No\n"
227                + "Connected to Paramics       : No\n"
228                + "Network Loaded              : None\n"
229                + "-- Info Messages --\n\n"
230                + "-- Error Messages --\n\n";
231        cadmodel.setTime(61L);
232        verify("sim time should be 0:01:01", expected9);
233    }
234
235    public void testNetworkID()
236    {
237        String expected10 =
238                "--- CAD Simulator ---\n"
239                + "Elapsed Simulation Time     : 0:00:00\n"
240                + "Status                      : No Script\n"
241                + "Connected CAD Terminals     : 0\n"
242                + "Simulation Manager Connected: No\n"
243                + "Connected to Paramics       : No\n"
244                + "Network Loaded              : 17\n"
245                + "-- Info Messages --\n\n"
246                + "-- Error Messages --\n\n";
247        // this will tell the model it has a new network ID
248        cadmodel.setParamicsNetworkLoaded("17");
249        cadmodel.setParamicsStatus(CADEnums.PARAMICS_STATUS.LOADED);
250        pause(500);
251        verify("network id should be 17", expected10);
252    }
253}
Note: See TracBrowser for help on using the repository browser.