1 /* Copyright (c) 2000-2003, jMock.org. See bundled LICENSE.txt */
2 package org.jmock.expectation;
3
4 import java.util.Enumeration;
5 import java.util.Hashtable;
6
7 /***
8 * @version $Revision: 1.1 $
9 */
10 public class ReturnObjectMap extends MockObject {
11 private final Hashtable returnValues = new Hashtable();
12 private final String name;
13
14 public ReturnObjectMap(String name) {
15 this.name = name;
16 }
17
18 public Object getValue(Object key) {
19 if (key == null) {
20 key = Null.NULL;
21 }
22 AssertMo.assertTrue(name + " does not contain " + key.toString(), returnValues.containsKey(key));
23 return ((CallCounter) returnValues.get(key)).getValue();
24 }
25
26 public Object getValue(short key) {
27 return getValue(new Short(key));
28 }
29
30 public void putReturnValue(Object key, Object value) {
31 returnValues.put(key != null ? key : Null.NULL, new CallCounter(key, value));
32 }
33
34 public void putReturnValue(Object key, int value) {
35 putReturnValue(key, new Integer(value));
36 }
37
38 public void putReturnValue(short key, Object value) {
39 putReturnValue(new Short(key), value);
40 }
41
42 public void putReturnValue(Object key, boolean value) {
43 putReturnValue(key, new Boolean(value));
44 }
45
46 public int getIntValue(Object key) {
47 return ((Integer) getValue(key)).intValue();
48 }
49
50 public boolean getBooleanValue(String key) {
51 return ((Boolean) getValue(key)).booleanValue();
52 }
53
54 private class CallCounter implements Verifiable {
55 private int count = 0;
56 private final Object value;
57 private final Object key;
58
59 public CallCounter(Object key, Object value) {
60 this.key = key;
61 this.value = value;
62 }
63
64 public Object getValue() {
65 count++;
66 return value;
67 }
68
69 public void verify() {
70 AssertMo.assertTrue("Object never called for key: " + key, count > 0);
71 }
72 }
73
74 public void verify() {
75 super.verify();
76
77 for (Enumeration enumeration = returnValues.elements(); enumeration.hasMoreElements();) {
78 ((Verifiable) enumeration.nextElement()).verify();
79 }
80 }
81 }
This page was automatically generated by Maven