KickJava   Java API By Example, From Geeks To Geeks.

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


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 UsageCallCountTest extends TestCase {
13
14     private MockControl<VoidMethodInterface> control;
15
16     private VoidMethodInterface mock;
17
18     private interface VoidMethodInterface {
19         void method();
20     }
21
22     protected void setUp() {
23         control = MockControl.createControl(VoidMethodInterface.class);
24         mock = control.getMock();
25     }
26
27     public void testMockWithNoExpectedCallsPassesWithNoCalls() {
28         control.replay();
29         control.verify();
30     }
31
32     public void testMockWithNoExpectedCallsFailsAtFirstCall() {
33         control.replay();
34         assertMethodCallFails();
35     }
36
37     public void testMockWithOneExpectedCallFailsAtVerify() {
38         callMethodOnce();
39         control.replay();
40         assertVerifyFails();
41     }
42
43     public void testMockWithOneExpectedCallPassesWithOneCall() {
44         callMethodOnce();
45         control.replay();
46         callMethodOnce();
47         control.verify();
48     }
49
50     public void testMockWithOneExpectedCallFailsAtSecondCall() {
51         callMethodOnce();
52         control.replay();
53         callMethodOnce();
54         assertMethodCallFails();
55     }
56
57     public void testTooFewCalls() {
58         callMethodThreeTimes();
59         control.replay();
60         callMethodTwice();
61         assertVerifyFails();
62     }
63
64     public void testCorrectNumberOfCalls() {
65         callMethodThreeTimes();
66         control.replay();
67         callMethodThreeTimes();
68         control.verify();
69     }
70
71     public void testTooManyCalls() {
72         callMethodThreeTimes();
73         control.replay();
74         callMethodThreeTimes();
75         assertMethodCallFails();
76     }
77
78     private void callMethodOnce() {
79         mock.method();
80     }
81
82     private void callMethodTwice() {
83         mock.method();
84         mock.method();
85     }
86
87     private void callMethodThreeTimes() {
88         mock.method();
89         mock.method();
90         mock.method();
91     }
92
93     private void assertVerifyFails() {
94         try {
95             control.verify();
96             fail("Expected AssertionFailedError");
97         } catch (AssertionFailedError expected) {
98         }
99     }
100
101     private void assertMethodCallFails() {
102         try {
103             mock.method();
104             fail("Expected AssertionFailedError");
105         } catch (AssertionFailedError expected) {
106         }
107     }
108
109     public void testNoUpperLimitWithoutCallCountSet() {
110         mock.method();
111         control.setVoidCallable(MockControl.ONE_OR_MORE);
112         control.replay();
113         assertVerifyFails();
114         mock.method();
115         control.verify();
116         mock.method();
117         control.verify();
118         mock.method();
119         control.verify();
120     }
121 }
122
Popular Tags