001: package com.mockrunner.test.util;
002:
003: import java.util.HashMap;
004: import java.util.Map;
005: import java.util.Set;
006:
007: import com.mockrunner.util.common.CaseAwareMap;
008:
009: import junit.framework.TestCase;
010:
011: public class CaseAwareMapTest extends TestCase {
012: private CaseAwareMap map;
013:
014: protected void setUp() throws Exception {
015: super .setUp();
016: map = new CaseAwareMap();
017: }
018:
019: public void testSetCaseSensitive() {
020: assertFalse(map.isCaseSensitive());
021: map.setCaseSensitive(true);
022: assertTrue(map.isCaseSensitive());
023: map.put("test", "abc");
024: map.put(new Integer(3), "abc");
025: map.setCaseSensitive(true);
026: assertEquals(0, map.size());
027: }
028:
029: public void testSize() {
030: assertEquals(0, map.size());
031: map.put("test", "abc");
032: map.put(new Integer(3), "abc");
033: assertEquals(2, map.size());
034: map.setCaseSensitive(true);
035: map.put(new Integer(3), "abc");
036: assertEquals(1, map.size());
037: }
038:
039: public void testIsEmptyAndClear() {
040: assertTrue(map.isEmpty());
041: map.clear();
042: assertTrue(map.isEmpty());
043: map.put(new Integer(3), "abc");
044: assertFalse(map.isEmpty());
045: map.clear();
046: assertTrue(map.isEmpty());
047: }
048:
049: public void testKeySet() {
050: Set set = map.keySet();
051: assertTrue(set.isEmpty());
052: map.put("Test", "1");
053: map.put("XyZ", "2");
054: map.put("TEST", "3");
055: map.put(new Double(4), "4");
056: set = map.keySet();
057: assertEquals(3, set.size());
058: assertTrue(set.contains("Test"));
059: assertTrue(set.contains("XyZ"));
060: assertTrue(set.contains(new Double(4)));
061: map.setCaseSensitive(true);
062: map.put("Test", "1");
063: map.put("XyZ", "2");
064: map.put("TEST", "3");
065: map.put(new Double(4), "4");
066: assertEquals(4, set.size());
067: set = map.keySet();
068: assertTrue(set.contains("Test"));
069: assertTrue(set.contains("XyZ"));
070: assertTrue(set.contains(new Double(4)));
071: assertTrue(set.contains("TEST"));
072: }
073:
074: public void testPut() {
075: assertNull(map.put("Test", "abc"));
076: assertEquals("abc", map.put("TEST", "def"));
077: assertEquals("def", map.put("TesT", "ghi"));
078: assertEquals("ghi", map.put("test", "jkl"));
079: assertEquals(1, map.size());
080: Set set = map.keySet();
081: assertEquals(1, set.size());
082: assertTrue(set.contains("Test"));
083: map.setCaseSensitive(true);
084: assertNull(map.put("Test", "abc"));
085: assertNull(map.put("TEST", "def"));
086: assertNull(map.put("TesT", "ghi"));
087: assertNull(map.put("test", "jkl"));
088: assertEquals(4, map.size());
089: }
090:
091: public void testPutAll() {
092: Map otherMap = new HashMap();
093: otherMap.put("hello", "1");
094: otherMap.put("heLLo", "2");
095: otherMap.put(new Integer(3), "3");
096: map.putAll(otherMap);
097: assertEquals(2, map.size());
098: map.setCaseSensitive(true);
099: map.putAll(otherMap);
100: assertEquals(3, map.size());
101: }
102:
103: public void testGet() {
104: Object object = new Object();
105: map.put("Test", object);
106: map.put(new Integer(1), "123");
107: assertSame(object, map.get("test"));
108: assertSame(object, map.get("Test"));
109: assertSame(object, map.get("TEST"));
110: assertEquals("123", map.get(new Integer(1)));
111: map.setCaseSensitive(true);
112: map.put("Test", object);
113: assertNull(map.get("test"));
114: assertNull(map.get("TEST"));
115: assertSame(object, map.get("Test"));
116: }
117:
118: public void testValues() {
119: map.put("Test", "1");
120: map.put("TEST", "2");
121: map.put("TeSt", "3");
122: map.put(new Integer(1), "123");
123: assertEquals(2, map.values().size());
124: assertTrue(map.values().contains("3"));
125: assertTrue(map.values().contains("123"));
126: map.setCaseSensitive(true);
127: map.put("Test", "1");
128: map.put("TEST", "2");
129: map.put("TeSt", "3");
130: map.put(new Integer(1), "123");
131: assertEquals(4, map.values().size());
132: assertTrue(map.values().contains("1"));
133: assertTrue(map.values().contains("2"));
134: assertTrue(map.values().contains("3"));
135: assertTrue(map.values().contains("123"));
136: }
137:
138: public void testContainsKey() {
139: Object key = new Object();
140: map.put("Test", "1");
141: map.put("TEST", "2");
142: map.put("TeSt", "3");
143: map.put(key, "4");
144: assertTrue(map.containsKey("Test"));
145: assertTrue(map.containsKey("TEST"));
146: assertTrue(map.containsKey("TeSt"));
147: assertTrue(map.containsKey("tEsT"));
148: assertFalse(map.containsKey("Test1"));
149: assertTrue(map.containsKey(key));
150: map.setCaseSensitive(true);
151: map.put("Test", "1");
152: map.put("TEST", "2");
153: map.put("TeSt", "3");
154: map.put(key, "4");
155: assertTrue(map.containsKey("Test"));
156: assertTrue(map.containsKey("TEST"));
157: assertTrue(map.containsKey("TeSt"));
158: assertFalse(map.containsKey("tEsT"));
159: assertFalse(map.containsKey("Test1"));
160: assertTrue(map.containsKey(key));
161: }
162:
163: public void testContainsValue() {
164: Object key = new Object();
165: map.put("Test", "1");
166: map.put("TEST", "2");
167: map.put("TeSt", "3");
168: map.put(key, "4");
169: assertFalse(map.containsValue("1"));
170: assertFalse(map.containsValue("2"));
171: assertTrue(map.containsValue("3"));
172: assertTrue(map.containsValue("4"));
173: map.setCaseSensitive(true);
174: map.put("Test", "1");
175: map.put("TEST", "2");
176: map.put("TeSt", "3");
177: map.put(key, "4");
178: assertTrue(map.containsValue("1"));
179: assertTrue(map.containsValue("2"));
180: assertTrue(map.containsValue("3"));
181: assertTrue(map.containsValue("4"));
182: }
183:
184: public void testEntrySet() {
185: assertEquals(0, map.entrySet().size());
186: map.put("Test", "1");
187: map.put("TEST", "2");
188: map.put("TeSt", "3");
189: assertEquals(1, map.entrySet().size());
190: Map.Entry entry = (Map.Entry) map.entrySet().iterator().next();
191: assertEquals("Test", entry.getKey());
192: assertEquals("3", entry.getValue());
193: map.setCaseSensitive(true);
194: map.put("Test", "1");
195: map.put("TEST", "2");
196: map.put("TeSt", "3");
197: assertEquals(3, map.entrySet().size());
198: }
199:
200: public void testRemove() {
201: map.put("Test", "0");
202: map.put("test", "1");
203: map.put(new Integer(2), "2");
204: assertEquals(2, map.size());
205: assertEquals("1", map.remove("TeST"));
206: assertNull(map.remove("TEST"));
207: assertEquals(1, map.size());
208: assertEquals("2", map.remove(new Integer(2)));
209: assertEquals(0, map.size());
210: map.setCaseSensitive(true);
211: map.put("Test", "1");
212: map.put(new Integer(2), "2");
213: assertNull(map.remove("TEST"));
214: assertEquals("1", map.remove("Test"));
215: assertNull(map.remove("Test"));
216: assertEquals(1, map.size());
217: assertEquals("2", map.remove(new Integer(2)));
218: assertNull(map.remove(new Integer(2)));
219: }
220: }
|