1   /*
2    * @(#) SimulatorTest.java Sep 4, 2003
3    * 
4    * Copyright (c) 2003 Delft University of Technology Jaffalaan 5, 2628 BX Delft,
5    * the Netherlands All rights reserved.
6    * 
7    * This software is proprietary information of Delft University of Technology
8    * The code is published under the General Public License
9    */
10  package nl.tudelft.simulation.dsol.simulators;
11  
12  import java.rmi.RemoteException;
13  
14  import junit.framework.Assert;
15  import junit.framework.TestCase;
16  import nl.tudelft.simulation.dsol.SimRuntimeException;
17  import nl.tudelft.simulation.dsol.simulators.SimulatorInterface;
18  
19  /***
20   * The SimulatorTest test the basic behavior of the simulator <br>
21   * (c) copyright 2003 <a href="http://www.simulation.tudelft.nl">Delft
22   * University of Technology </a>, the Netherlands. <br>
23   * See for project information <a
24   * href="http://www.simulation.tudelft.nl">www.simulation.tudelft.nl </a> <br>
25   * License of use: <a href="http://www.gnu.org/copyleft/gpl.html">General Public
26   * License (GPL) </a>, no warranty <br>
27   * 
28   * @version 2.0 21.09.2003 <br>
29   * @author <a href="http://www.tbm.tudelft.nl/webstaf/peterja/index.htm">Peter
30   *         Jacobs </a>, <a
31   *         href="http://www.tbm.tudelft.nl/webstaf/alexandv/index.htm">Alexander
32   *         Verbraeck </a>
33   */
34  public class SimulatorTest extends TestCase
35  {
36  	/*** TEST_METHOD refers to the name of the test method */
37  	public static final String TEST_METHOD = "test";
38  
39  	/*** simulator is the target to test */
40  	protected SimulatorInterface simulator;
41  
42  	/***
43  	 * constructs a new SimulatorTest
44  	 * 
45  	 * @param target is the simulator which to test
46  	 */
47  	public SimulatorTest(final SimulatorInterface target)
48  	{
49  		this(TEST_METHOD, target);
50  	}
51  
52  	/***
53  	 * constructs a new SimulatorTest
54  	 * 
55  	 * @param arg0 the name of the test method
56  	 * @param target is the simulator which to test
57  	 */
58  	public SimulatorTest(final String arg0, final SimulatorInterface target)
59  	{
60  		super(arg0);
61  		this.simulator = target;
62  	}
63  
64  	/***
65  	 * test the DEVS Simulator
66  	 */
67  	public void test()
68  	{
69  		try
70  		{
71  			this.simulator.start();
72  			Assert.fail("Simulator not initialized");
73  		} catch (Exception exception)
74  		{
75  			Assert.assertTrue(exception.getClass().equals(
76  					SimRuntimeException.class));
77  		}
78  		try
79  		{
80  			this.simulator.stop();
81  			Assert.fail("Simulator not running");
82  		} catch (Exception exception)
83  		{
84  			Assert.assertTrue(exception.getClass().equals(
85  					SimRuntimeException.class));
86  		}
87  		try
88  		{
89  			this.simulator.step();
90  			Assert.fail("Simulator not initialized");
91  		} catch (Exception exception)
92  		{
93  			Assert.assertTrue(exception.getClass().equals(
94  					SimRuntimeException.class));
95  		}
96  		try
97  		{
98  			Assert.assertFalse(this.simulator.isRunning());
99  		} catch (Exception exception)
100 		{
101 			Assert.assertTrue(exception.getClass()
102 					.equals(RemoteException.class));
103 		}
104 		try
105 		{
106 			Assert.assertNull(this.simulator.getReplication());
107 			Assert.assertTrue(new Double(this.simulator.getSimulatorTime())
108 					.isNaN());
109 			this.simulator.initialize(null);
110 		} catch (Exception exception)
111 		{
112 			//initialize(null) should throw an exception
113 			Assert.assertTrue(exception instanceof IllegalArgumentException);
114 		}
115 	}
116 }