1 package junit.tests.extensions;
2
3 import junit.extensions.TestSetup;
4 import junit.framework.Test;
5 import junit.framework.TestCase;
6 import junit.framework.TestResult;
7 import junit.framework.TestSuite;
8 import junit.tests.WasRun;
9
10
11
12
13 public class ExtensionTest extends TestCase {
14 static class TornDown extends TestSetup {
15 boolean fTornDown = false;
16
17 TornDown(Test test) {
18 super(test);
19 }
20
21 @Override
22 protected void tearDown() {
23 fTornDown = true;
24 }
25 }
26
27 public void testRunningErrorInTestSetup() {
28 TestCase test = new TestCase("failure") {
29 @Override
30 public void runTest() {
31 fail();
32 }
33 };
34
35 TestSetup wrapper = new TestSetup(test);
36
37 TestResult result = new TestResult();
38 wrapper.run(result);
39 assertTrue(!result.wasSuccessful());
40 }
41
42 public void testRunningErrorsInTestSetup() {
43 TestCase failure = new TestCase("failure") {
44 @Override
45 public void runTest() {
46 fail();
47 }
48 };
49
50 TestCase error = new TestCase("error") {
51 @Override
52 public void runTest() {
53 throw new Error();
54 }
55 };
56
57 TestSuite suite = new TestSuite();
58 suite.addTest(failure);
59 suite.addTest(error);
60
61 TestSetup wrapper = new TestSetup(suite);
62
63 TestResult result = new TestResult();
64 wrapper.run(result);
65
66 assertEquals(1, result.failureCount());
67 assertEquals(1, result.errorCount());
68 }
69
70 public void testSetupErrorDontTearDown() {
71 WasRun test = new WasRun();
72
73 TornDown wrapper = new TornDown(test) {
74 @Override
75 public void setUp() {
76 fail();
77 }
78 };
79
80 TestResult result = new TestResult();
81 wrapper.run(result);
82
83 assertTrue(!wrapper.fTornDown);
84 }
85
86 public void testSetupErrorInTestSetup() {
87 WasRun test = new WasRun();
88
89 TestSetup wrapper = new TestSetup(test) {
90 @Override
91 public void setUp() {
92 fail();
93 }
94 };
95
96 TestResult result = new TestResult();
97 wrapper.run(result);
98
99 assertTrue(!test.fWasRun);
100 assertTrue(!result.wasSuccessful());
101 }
102 }