KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > easymock > tests > UsageThrowableTest


1 /*
2  * Copyright (c) 2001-2005 OFFIS. This program is made available under the terms of
3  * the MIT License.
4  */

5 package org.easymock.tests;
6
7 import java.io.IOException JavaDoc;
8
9 import junit.framework.TestCase;
10
11 import org.easymock.MockControl;
12
13 public class UsageThrowableTest extends TestCase {
14
15     private MockControl<IMethods> control;
16
17     private IMethods mock;
18
19     protected void setUp() {
20         control = MockControl.createControl(IMethods.class);
21         mock = control.getMock();
22     }
23
24     public void testNoUpperLimit() {
25         mock.simpleMethodWithArgument("1");
26         control.setVoidCallable(MockControl.ONE_OR_MORE);
27         mock.simpleMethodWithArgument("2");
28         control.replay();
29         mock.simpleMethodWithArgument("1");
30         mock.simpleMethodWithArgument("1");
31         mock.simpleMethodWithArgument("2");
32         mock.simpleMethodWithArgument("1");
33         mock.simpleMethodWithArgument("1");
34         control.verify();
35     }
36
37     public void testThrowRuntimeException() {
38         testThrowUncheckedException(new RuntimeException JavaDoc());
39     }
40
41     public void testThrowSubclassOfRuntimeException() {
42         testThrowUncheckedException(new RuntimeException JavaDoc() {
43         });
44     }
45
46     public void testThrowError() {
47         testThrowUncheckedException(new Error JavaDoc());
48     }
49
50     public void testThrowSubclassOfError() {
51         testThrowUncheckedException(new Error JavaDoc() {
52         });
53     }
54
55     private void testThrowUncheckedException(Throwable JavaDoc throwable) {
56         mock.throwsNothing(true);
57         control.setReturnValue("true");
58         mock.throwsNothing(false);
59         control.setThrowable(throwable);
60
61         control.replay();
62
63         try {
64             mock.throwsNothing(false);
65             fail("Trowable expected");
66         } catch (Throwable JavaDoc expected) {
67             assertSame(throwable, expected);
68         }
69
70         assertEquals("true", mock.throwsNothing(true));
71     }
72
73     public void testThrowCheckedException() throws IOException JavaDoc {
74         testThrowCheckedException(new IOException JavaDoc());
75     }
76
77     public void testThrowSubclassOfCheckedException() throws IOException JavaDoc {
78         testThrowCheckedException(new IOException JavaDoc() {
79         });
80     }
81
82     private void testThrowCheckedException(IOException JavaDoc expected)
83             throws IOException JavaDoc {
84         try {
85             mock.throwsIOException(0);
86             control.setReturnValue("Value 0");
87             mock.throwsIOException(1);
88             control.setThrowable(expected);
89             mock.throwsIOException(2);
90             control.setReturnValue("Value 2");
91         } catch (IOException JavaDoc e) {
92             fail("Unexpected Exception");
93         }
94
95         control.replay();
96
97         assertEquals("Value 0", mock.throwsIOException(0));
98         assertEquals("Value 2", mock.throwsIOException(2));
99
100         try {
101             mock.throwsIOException(1);
102             fail("IOException expected");
103         } catch (IOException JavaDoc expectedException) {
104             assertSame(expectedException, expected);
105         }
106     }
107
108     public void testThrowAfterReturnValue() {
109         mock.throwsNothing(false);
110         control.setReturnValue("");
111         RuntimeException JavaDoc expectedException = new RuntimeException JavaDoc();
112         control.setThrowable(expectedException);
113
114         control.replay();
115
116         assertEquals("", mock.throwsNothing(false));
117
118         try {
119             mock.throwsNothing(false);
120             fail("RuntimeException expected");
121         } catch (RuntimeException JavaDoc actualException) {
122             assertSame(expectedException, actualException);
123         }
124
125         control.verify();
126     }
127
128 }
Popular Tags