01: package com.reeltwo.jumble.fast;
02:
03: import java.lang.reflect.Method;
04: import java.util.Set;
05:
06: import com.reeltwo.jumble.mutation.Mutater;
07: import com.reeltwo.jumble.mutation.MutatingClassLoader;
08:
09: import junit.framework.Test;
10: import junit.framework.TestCase;
11: import junit.framework.TestSuite;
12:
13: /**
14: * Tests the corresponding class.
15: *
16: * @author Tin Pavlinic
17: * @version $Revision: 500 $
18: */
19: public class FailedTestMapTest extends TestCase {
20: private FailedTestMap mMap;
21:
22: public void setUp() throws Exception {
23: mMap = new FailedTestMap();
24:
25: mMap.addFailure("DummyClass", "dummyMethod", 0, "dummyTest1");
26: mMap.addFailure("DummyClass", "dummyMethod", 1, "dummyTest1");
27: mMap.addFailure("DummyClass", "dummyMethod", 2, "dummyTest2");
28:
29: mMap.addFailure("DummyClass", "dummyMethod2", 0,
30: "dummyMethod2Test");
31: mMap.addFailure("DummyClass", "dummyMethod2", 1,
32: "dummyMethod2Test");
33: mMap.addFailure("DummyClass", "dummyMethod2", 2,
34: "dummyMethod2Test");
35:
36: mMap.addFailure("DummyClass2", "dummyMethod", 0, "dummyTest1");
37: }
38:
39: public void tearDown() {
40: mMap = null;
41: }
42:
43: public void testChangeClassLoader() throws Exception {
44: ClassLoader cl = new MutatingClassLoader("DummyClass",
45: new Mutater(0), System.getProperty("java.class.path"));
46:
47: Object other = mMap.clone(cl);
48:
49: assertEquals(other.getClass().getName(), mMap.getClass()
50: .getName());
51: assertNotSame(other.getClass(), mMap.getClass());
52: Method m = other.getClass().getMethod("getLastFailure",
53: new Class[] { String.class, String.class, int.class });
54: String ret = (String) m.invoke(other, new Object[] {
55: "DummyClass", "dummyMethod", new Integer(0) });
56: assertEquals("dummyTest1", ret);
57: }
58:
59: public void testGetFailedTests() {
60: Set fail1 = mMap.getFailedTests("DummyClass", "dummyMethod");
61: assertEquals(2, fail1.size());
62: assertTrue(fail1.contains("dummyTest1"));
63: assertTrue(fail1.contains("dummyTest2"));
64:
65: Set fail2 = mMap.getFailedTests("DummyClass", "dummyMethod2");
66: assertEquals(1, fail2.size());
67: assertTrue(fail2.contains("dummyMethod2Test"));
68:
69: Set fail3 = mMap.getFailedTests("DummyClass2", "dummyMethod");
70: assertEquals(1, fail3.size());
71: assertTrue(fail3.contains("dummyTest1"));
72:
73: Set empty = mMap.getFailedTests("DummyClass", "fakeMethod");
74: assertTrue(empty.isEmpty());
75: }
76:
77: public void testGetLastFailure() {
78: assertEquals("dummyTest1", mMap.getLastFailure("DummyClass",
79: "dummyMethod", 0));
80:
81: assertEquals("dummyTest2", mMap.getLastFailure("DummyClass",
82: "dummyMethod", 2));
83:
84: assertEquals(null, mMap.getLastFailure("DummyClass",
85: "dummyMethod", 3));
86:
87: assertEquals(null, mMap.getLastFailure("DummyClass",
88: "fakeMethod", 0));
89: }
90:
91: public static Test suite() {
92: TestSuite suite = new TestSuite(FailedTestMapTest.class);
93: return suite;
94: }
95:
96: public static void main(String[] args) {
97: junit.textui.TestRunner.run(suite());
98: }
99: }
|