01: package com.reeltwo.jumble.fast;
02:
03: import java.io.File;
04: import java.io.FileInputStream;
05: import java.io.FileOutputStream;
06: import java.io.ObjectInputStream;
07: import java.io.ObjectOutputStream;
08:
09: import junit.framework.Test;
10: import junit.framework.TestCase;
11: import junit.framework.TestSuite;
12:
13: import org.apache.bcel.util.ClassLoader;
14:
15: import experiments.JumblerExperimentSecondTest;
16: import experiments.JumblerExperimentTest;
17:
18: /**
19: * Tests the corresponding class.
20: *
21: * @author Tin Pavlinic
22: * @version $Revision: 500 $
23: */
24: public class TestOrderTest extends TestCase {
25: private TestOrder mOrder;
26:
27: public void setUp() {
28: Class[] classes = new Class[] { JumblerExperimentTest.class,
29: JumblerExperimentSecondTest.class };
30:
31: long[] runtimes = new long[] { 300, 200, 100 };
32: mOrder = new TestOrder(classes, runtimes);
33:
34: }
35:
36: public void tearDown() {
37: mOrder = null;
38: }
39:
40: public final void testGetTestCount() {
41: assertEquals(3, mOrder.getTestCount());
42: }
43:
44: public final void testGetTestIndex() {
45: assertEquals(2, mOrder.getTestIndex(0));
46: assertEquals(1, mOrder.getTestIndex(1));
47: assertEquals(0, mOrder.getTestIndex(2));
48: }
49:
50: public final void testGetTestClasses() {
51: String[] classes = mOrder.getTestClasses();
52: assertEquals("experiments.JumblerExperimentTest", classes[0]);
53: assertEquals("experiments.JumblerExperimentSecondTest",
54: classes[1]);
55: assertEquals(2, classes.length);
56: }
57:
58: public final void testSavingAndLoading() throws Exception {
59: // Write the object
60: ObjectOutputStream out = new ObjectOutputStream(
61: new FileOutputStream("loadAndSaveTestOrder.tmp"));
62: out.writeObject(mOrder);
63: out.close();
64: // Read the object
65: ObjectInputStream in = new ObjectInputStream(
66: new FileInputStream("loadAndSaveTestOrder.tmp"));
67: mOrder = (TestOrder) in.readObject();
68: in.close();
69: // delete the temporary file
70: assertTrue(new File("loadAndSaveTestOrder.tmp").delete());
71:
72: // run the tests again
73: testGetTestCount();
74: testGetTestIndex();
75: testGetTestClasses();
76: }
77:
78: public final void testChangeClassLoader() throws Exception {
79: Object newOrder = mOrder.clone(new ClassLoader());
80: assertNotSame(mOrder.getClass(), newOrder.getClass());
81: }
82:
83: public static Test suite() {
84: TestSuite suite = new TestSuite(TestOrderTest.class);
85: return suite;
86: }
87:
88: public static void main(String[] args) {
89: junit.textui.TestRunner.run(suite());
90: }
91: }
|