1 /* 2 * Copyright (C) 2009 The Guava Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.common.collect; 18 19 import java.util.Collections; 20 21 /** 22 * Unit test for {@link ForwardingMultimap}. 23 * 24 * @author Hayward Chan 25 */ 26 public class ForwardingMultimapTest extends ForwardingTestCase { 27 28 // Package-private so subclasses can access this variable. 29 Multimap<String, Boolean> forward; 30 setUp()31 @Override public void setUp() throws Exception { 32 super.setUp(); 33 /* 34 * Class parameters must be raw, so we can't create a proxy with generic 35 * type arguments. The created proxy only records calls and returns null, so 36 * the type is irrelevant at runtime. 37 */ 38 @SuppressWarnings("unchecked") 39 final Multimap<String, Boolean> multimap = 40 createProxyInstance(Multimap.class); 41 forward = new ForwardingMultimap<String, Boolean>() { 42 @Override protected Multimap<String, Boolean> delegate() { 43 return multimap; 44 } 45 }; 46 } 47 testSize()48 public void testSize() { 49 forward.size(); 50 assertEquals("[size]", getCalls()); 51 } 52 testIsEmpty()53 public void testIsEmpty() { 54 forward.isEmpty(); 55 assertEquals("[isEmpty]", getCalls()); 56 } 57 testContainsKey_Object()58 public void testContainsKey_Object() { 59 forward.containsKey("asdf"); 60 assertEquals("[containsKey(Object)]", getCalls()); 61 } 62 testContainsValue_Object()63 public void testContainsValue_Object() { 64 forward.containsValue("asdf"); 65 assertEquals("[containsValue(Object)]", getCalls()); 66 } 67 testContainsEntry_Object_Object()68 public void testContainsEntry_Object_Object() { 69 forward.containsEntry("asdf", false); 70 assertEquals("[containsEntry(Object,Object)]", getCalls()); 71 } 72 testPut_Key_Value()73 public void testPut_Key_Value() { 74 forward.put("asdf", true); 75 assertEquals("[put(Object,Object)]", getCalls()); 76 } 77 testRemove_Key_Value()78 public void testRemove_Key_Value() { 79 forward.remove("asdf", false); 80 assertEquals("[remove(Object,Object)]", getCalls()); 81 } 82 testPutAll_Key_Iterable()83 public void testPutAll_Key_Iterable() { 84 forward.remove("asfd", Collections.<Boolean>emptyList()); 85 assertEquals("[remove(Object,Object)]", getCalls()); 86 } 87 testPutAll_Multimap()88 public void testPutAll_Multimap() { 89 forward.putAll(ArrayListMultimap.<String, Boolean>create()); 90 assertEquals("[putAll(Multimap)]", getCalls()); 91 } 92 testReplaceValues_Key_Iterable()93 public void testReplaceValues_Key_Iterable() { 94 forward.replaceValues("key", Collections.<Boolean>emptyList()); 95 assertEquals("[replaceValues(Object,Iterable)]", getCalls()); 96 } 97 testRemoveAll_Object()98 public void testRemoveAll_Object() { 99 forward.removeAll("key"); 100 assertEquals("[removeAll(Object)]", getCalls()); 101 } 102 testClear()103 public void testClear() { 104 forward.clear(); 105 assertEquals("[clear]", getCalls()); 106 } 107 testGet_Key()108 public void testGet_Key() { 109 forward.get(null); 110 assertEquals("[get(Object)]", getCalls()); 111 } 112 testKeySet()113 public void testKeySet() { 114 forward.keySet(); 115 assertEquals("[keySet]", getCalls()); 116 } 117 testKeys()118 public void testKeys() { 119 forward.keys(); 120 assertEquals("[keys]", getCalls()); 121 } 122 testValues()123 public void testValues() { 124 forward.values(); 125 assertEquals("[values]", getCalls()); 126 } 127 testEntries()128 public void testEntries() { 129 forward.entries(); 130 assertEquals("[entries]", getCalls()); 131 } 132 testAsMap()133 public void testAsMap() { 134 forward.asMap(); 135 assertEquals("[asMap]", getCalls()); 136 } 137 testEquals()138 public void testEquals() { 139 forward.equals(null); 140 assertEquals("[equals(Object)]", getCalls()); 141 } 142 testHashCode()143 public void testHashCode() { 144 forward.hashCode(); 145 assertEquals("[hashCode]", getCalls()); 146 } 147 testToString()148 public void testToString() { 149 forward.toString(); 150 assertEquals("[toString]", getCalls()); 151 } 152 } 153