KickJava   Java API By Example, From Geeks To Geeks.

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


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 junit.framework.AssertionFailedError;
8 import junit.framework.TestCase;
9
10 import org.easymock.MockControl;
11
12 public class UsageTest extends TestCase {
13
14     MockControl<IMethods> control;
15
16     IMethods mock;
17
18     protected void setUp() {
19         control = MockControl.createControl(IMethods.class);
20         mock = control.getMock();
21     }
22
23     public void testExactCallCountByLastCall() {
24         mock.oneArgumentMethod(false);
25         control.setReturnValue("Test");
26         control.setReturnValue("Test2");
27
28         control.replay();
29
30         assertEquals("Test", mock.oneArgumentMethod(false));
31         assertEquals("Test2", mock.oneArgumentMethod(false));
32
33         boolean failed = false;
34         try {
35             mock.oneArgumentMethod(false);
36         } catch (AssertionFailedError expected) {
37             failed = true;
38         }
39         if (!failed)
40             fail("expected AssertionFailedError");
41     }
42
43     public void testOpenCallCountByLastCall() {
44         mock.oneArgumentMethod(false);
45         control.setReturnValue("Test");
46         control.setReturnValue("Test2", MockControl.ONE_OR_MORE);
47
48         control.replay();
49
50         assertEquals("Test", mock.oneArgumentMethod(false));
51         assertEquals("Test2", mock.oneArgumentMethod(false));
52         assertEquals("Test2", mock.oneArgumentMethod(false));
53     }
54
55     public void testExactCallCountByLastThrowable() {
56         mock.oneArgumentMethod(false);
57         control.setReturnValue("Test");
58         control.setReturnValue("Test2");
59         control.setThrowable(new IndexOutOfBoundsException JavaDoc(), 1);
60
61         control.replay();
62
63         assertEquals("Test", mock.oneArgumentMethod(false));
64         assertEquals("Test2", mock.oneArgumentMethod(false));
65
66         try {
67             mock.oneArgumentMethod(false);
68         } catch (IndexOutOfBoundsException JavaDoc expected) {
69         }
70
71         boolean failed = true;
72         try {
73             try {
74                 mock.oneArgumentMethod(false);
75             } catch (IndexOutOfBoundsException JavaDoc expected) {
76             }
77             failed = false;
78         } catch (AssertionFailedError expected) {
79         }
80         if (!failed)
81             fail("expected AssertionFailedError");
82     }
83
84     public void testOpenCallCountByLastThrowable() {
85         mock.oneArgumentMethod(false);
86         control.setReturnValue("Test");
87         control.setReturnValue("Test2");
88         control.setThrowable(new IndexOutOfBoundsException JavaDoc(),
89                 MockControl.ONE_OR_MORE);
90
91         control.replay();
92
93         assertEquals("Test", mock.oneArgumentMethod(false));
94         assertEquals("Test2", mock.oneArgumentMethod(false));
95
96         try {
97             mock.oneArgumentMethod(false);
98         } catch (IndexOutOfBoundsException JavaDoc expected) {
99         }
100         try {
101             mock.oneArgumentMethod(false);
102         } catch (IndexOutOfBoundsException JavaDoc expected) {
103         }
104     }
105
106     public void testMoreThanOneArgument() {
107         mock.threeArgumentMethod(1, "2", "3");
108         control.setReturnValue("Test", 2);
109
110         control.replay();
111
112         assertEquals("Test", mock.threeArgumentMethod(1, "2", "3"));
113
114         boolean failed = true;
115         try {
116             control.verify();
117             failed = false;
118         } catch (AssertionFailedError expected) {
119             assertEquals(
120                     "\n Expectation failure on verify:"
121                             + "\n threeArgumentMethod(1, \"2\", \"3\"): expected: 2, actual: 1",
122                     expected.getMessage());
123         }
124         if (!failed) {
125             fail("exception expected");
126         }
127     }
128
129     public void testUnexpectedCallWithArray() {
130         control.reset();
131         control.setDefaultMatcher(MockControl.ARRAY_MATCHER);
132         control.replay();
133         boolean failed = false;
134         String JavaDoc[] strings = new String JavaDoc[] { "Test" };
135         try {
136             mock.arrayMethod(strings);
137         } catch (AssertionFailedError expected) {
138             failed = true;
139             assertEquals("\n Unexpected method call arrayMethod([\"Test\"]):"
140                     + "\n arrayMethod([\"Test\"]): expected: 0, actual: 1",
141                     expected.getMessage());
142         }
143         if (!failed) {
144             fail("exception expected");
145         }
146
147     }
148
149     public void testWrongArguments() {
150         mock.simpleMethodWithArgument("3");
151         control.replay();
152
153         try {
154             mock.simpleMethodWithArgument("5");
155             fail();
156         } catch (AssertionFailedError expected) {
157             assertEquals(
158                     "\n Unexpected method call simpleMethodWithArgument(\"5\"):"
159                             + "\n simpleMethodWithArgument(\"5\"): expected: 0, actual: 1"
160                             + "\n simpleMethodWithArgument(\"3\"): expected: 1, actual: 0",
161                     expected.getMessage());
162         }
163
164     }
165
166     public void testSummarizeSameObjectArguments() {
167         mock.simpleMethodWithArgument("3");
168         mock.simpleMethodWithArgument("3");
169         control.replay();
170
171         try {
172             mock.simpleMethodWithArgument("5");
173             fail();
174         } catch (AssertionFailedError expected) {
175             assertEquals(
176                     "\n Unexpected method call simpleMethodWithArgument(\"5\"):"
177                             + "\n simpleMethodWithArgument(\"5\"): expected: 0, actual: 1"
178                             + "\n simpleMethodWithArgument(\"3\"): expected: 2, actual: 0",
179                     expected.getMessage());
180         }
181
182     }
183
184     public void testArgumentsOrdered() {
185         mock.simpleMethodWithArgument("4");
186         mock.simpleMethodWithArgument("3");
187         mock.simpleMethodWithArgument("2");
188         mock.simpleMethodWithArgument("0");
189         mock.simpleMethodWithArgument("1");
190         control.replay();
191
192         try {
193             mock.simpleMethodWithArgument("5");
194             fail();
195         } catch (AssertionFailedError expected) {
196             assertEquals(
197                     "\n Unexpected method call simpleMethodWithArgument(\"5\"):"
198                             + "\n simpleMethodWithArgument(\"5\"): expected: 0, actual: 1"
199                             + "\n simpleMethodWithArgument(\"4\"): expected: 1, actual: 0"
200                             + "\n simpleMethodWithArgument(\"3\"): expected: 1, actual: 0"
201                             + "\n simpleMethodWithArgument(\"2\"): expected: 1, actual: 0"
202                             + "\n simpleMethodWithArgument(\"0\"): expected: 1, actual: 0"
203                             + "\n simpleMethodWithArgument(\"1\"): expected: 1, actual: 0",
204                     expected.getMessage());
205         }
206
207     }
208
209 }
Popular Tags