Coverage Summary for Class: MultisetEntrySetTester (com.google.common.collect.testing.google)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| MultisetEntrySetTester | 0% (0/1) | 0% (0/18) | 0% (0/125) |
1 /* 2 * Copyright (C) 2008 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.testing.google; 18 19 import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD; 20 import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ITERATOR_REMOVE; 21 import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; 22 import static com.google.common.collect.testing.features.CollectionSize.ONE; 23 import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; 24 import static com.google.common.collect.testing.features.CollectionSize.ZERO; 25 import static com.google.common.collect.testing.google.MultisetFeature.ENTRIES_ARE_VIEWS; 26 27 import com.google.common.annotations.GwtCompatible; 28 import com.google.common.collect.Iterables; 29 import com.google.common.collect.Multiset; 30 import com.google.common.collect.Multisets; 31 import com.google.common.collect.testing.features.CollectionFeature; 32 import com.google.common.collect.testing.features.CollectionSize; 33 import java.util.Collections; 34 import java.util.Iterator; 35 import org.junit.Ignore; 36 37 /** 38 * Tests for {@code Multiset.entrySet}. 39 * 40 * @author Jared Levy 41 */ 42 @GwtCompatible 43 @Ignore // Affects only Android test runner, which respects JUnit 4 annotations on JUnit 3 tests. 44 public class MultisetEntrySetTester<E> extends AbstractMultisetTester<E> { 45 46 @CollectionFeature.Require(SUPPORTS_REMOVE) 47 public void testEntrySet_clear() { 48 getMultiset().entrySet().clear(); 49 assertTrue("multiset not empty after entrySet().clear()", getMultiset().isEmpty()); 50 } 51 52 @CollectionSize.Require(ONE) 53 @CollectionFeature.Require(SUPPORTS_ITERATOR_REMOVE) 54 public void testEntrySet_iteratorRemovePropagates() { 55 Iterator<Multiset.Entry<E>> iterator = getMultiset().entrySet().iterator(); 56 assertTrue( 57 "non-empty multiset.entrySet() iterator.hasNext() returned false", iterator.hasNext()); 58 assertEquals( 59 "multiset.entrySet() iterator.next() returned incorrect entry", 60 Multisets.immutableEntry(e0(), 1), 61 iterator.next()); 62 assertFalse( 63 "size 1 multiset.entrySet() iterator.hasNext() returned true after next()", 64 iterator.hasNext()); 65 iterator.remove(); 66 assertTrue( 67 "multiset isn't empty after multiset.entrySet() iterator.remove()", 68 getMultiset().isEmpty()); 69 } 70 71 @CollectionSize.Require(absent = ZERO) 72 @CollectionFeature.Require(SUPPORTS_REMOVE) 73 public void testEntrySet_removePresent() { 74 assertTrue( 75 "multiset.entrySet.remove(presentEntry) returned false", 76 getMultiset().entrySet().remove(Multisets.immutableEntry(e0(), 1))); 77 assertFalse("multiset contains element after removing its entry", getMultiset().contains(e0())); 78 } 79 80 @CollectionSize.Require(absent = ZERO) 81 @CollectionFeature.Require(SUPPORTS_REMOVE) 82 public void testEntrySet_removeAbsent() { 83 assertFalse( 84 "multiset.entrySet.remove(missingEntry) returned true", 85 getMultiset().entrySet().remove(Multisets.immutableEntry(e0(), 2))); 86 assertTrue( 87 "multiset didn't contain element after removing a missing entry", 88 getMultiset().contains(e0())); 89 } 90 91 @CollectionSize.Require(absent = ZERO) 92 @CollectionFeature.Require(SUPPORTS_REMOVE) 93 public void testEntrySet_removeAllPresent() { 94 assertTrue( 95 "multiset.entrySet.removeAll(presentEntry) returned false", 96 getMultiset() 97 .entrySet() 98 .removeAll(Collections.singleton(Multisets.immutableEntry(e0(), 1)))); 99 assertFalse("multiset contains element after removing its entry", getMultiset().contains(e0())); 100 } 101 102 @CollectionSize.Require(absent = ZERO) 103 @CollectionFeature.Require(SUPPORTS_REMOVE) 104 public void testEntrySet_removeAllAbsent() { 105 assertFalse( 106 "multiset.entrySet.remove(missingEntry) returned true", 107 getMultiset() 108 .entrySet() 109 .removeAll(Collections.singleton(Multisets.immutableEntry(e0(), 2)))); 110 assertTrue( 111 "multiset didn't contain element after removing a missing entry", 112 getMultiset().contains(e0())); 113 } 114 115 @CollectionSize.Require(ONE) 116 @CollectionFeature.Require(SUPPORTS_REMOVE) 117 public void testEntrySet_retainAllPresent() { 118 assertFalse( 119 "multiset.entrySet.retainAll(presentEntry) returned false", 120 getMultiset() 121 .entrySet() 122 .retainAll(Collections.singleton(Multisets.immutableEntry(e0(), 1)))); 123 assertTrue( 124 "multiset doesn't contains element after retaining its entry", 125 getMultiset().contains(e0())); 126 } 127 128 @CollectionSize.Require(ONE) 129 @CollectionFeature.Require(SUPPORTS_REMOVE) 130 public void testEntrySet_retainAllAbsent() { 131 assertTrue( 132 "multiset.entrySet.retainAll(missingEntry) returned true", 133 getMultiset() 134 .entrySet() 135 .retainAll(Collections.singleton(Multisets.immutableEntry(e0(), 2)))); 136 assertFalse( 137 "multiset contains element after retaining a different entry", 138 getMultiset().contains(e0())); 139 } 140 141 @CollectionSize.Require(SEVERAL) 142 @CollectionFeature.Require(SUPPORTS_REMOVE) 143 @MultisetFeature.Require(ENTRIES_ARE_VIEWS) 144 public void testEntryViewReflectsRemove() { 145 initThreeCopies(); 146 assertEquals(3, getMultiset().count(e0())); 147 Multiset.Entry<E> entry = Iterables.getOnlyElement(getMultiset().entrySet()); 148 assertEquals(3, entry.getCount()); 149 assertTrue(getMultiset().remove(e0())); 150 assertEquals(2, entry.getCount()); 151 assertTrue(getMultiset().elementSet().remove(e0())); 152 assertEquals(0, entry.getCount()); 153 } 154 155 @CollectionSize.Require(SEVERAL) 156 @CollectionFeature.Require(SUPPORTS_ITERATOR_REMOVE) 157 @MultisetFeature.Require(ENTRIES_ARE_VIEWS) 158 public void testEntryReflectsIteratorRemove() { 159 initThreeCopies(); 160 assertEquals(3, getMultiset().count(e0())); 161 Multiset.Entry<E> entry = Iterables.getOnlyElement(getMultiset().entrySet()); 162 assertEquals(3, entry.getCount()); 163 Iterator<E> itr = getMultiset().iterator(); 164 itr.next(); 165 itr.remove(); 166 assertEquals(2, entry.getCount()); 167 itr.next(); 168 itr.remove(); 169 itr.next(); 170 itr.remove(); 171 assertEquals(0, entry.getCount()); 172 } 173 174 @CollectionSize.Require(SEVERAL) 175 @CollectionFeature.Require(SUPPORTS_REMOVE) 176 @MultisetFeature.Require(ENTRIES_ARE_VIEWS) 177 public void testEntryReflectsClear() { 178 initThreeCopies(); 179 assertEquals(3, getMultiset().count(e0())); 180 Multiset.Entry<E> entry = Iterables.getOnlyElement(getMultiset().entrySet()); 181 assertEquals(3, entry.getCount()); 182 getMultiset().clear(); 183 assertEquals(0, entry.getCount()); 184 } 185 186 @CollectionSize.Require(SEVERAL) 187 @CollectionFeature.Require(SUPPORTS_REMOVE) 188 @MultisetFeature.Require(ENTRIES_ARE_VIEWS) 189 public void testEntryReflectsEntrySetClear() { 190 initThreeCopies(); 191 assertEquals(3, getMultiset().count(e0())); 192 Multiset.Entry<E> entry = Iterables.getOnlyElement(getMultiset().entrySet()); 193 assertEquals(3, entry.getCount()); 194 getMultiset().entrySet().clear(); 195 assertEquals(0, entry.getCount()); 196 } 197 198 @CollectionSize.Require(SEVERAL) 199 @CollectionFeature.Require(SUPPORTS_ITERATOR_REMOVE) 200 @MultisetFeature.Require(ENTRIES_ARE_VIEWS) 201 public void testEntryReflectsEntrySetIteratorRemove() { 202 initThreeCopies(); 203 assertEquals(3, getMultiset().count(e0())); 204 Iterator<Multiset.Entry<E>> entryItr = getMultiset().entrySet().iterator(); 205 Multiset.Entry<E> entry = entryItr.next(); 206 entryItr.remove(); 207 assertEquals(0, entry.getCount()); 208 } 209 210 @CollectionSize.Require(SEVERAL) 211 @CollectionFeature.Require(SUPPORTS_REMOVE) 212 @MultisetFeature.Require(ENTRIES_ARE_VIEWS) 213 public void testEntryReflectsElementSetClear() { 214 initThreeCopies(); 215 assertEquals(3, getMultiset().count(e0())); 216 Multiset.Entry<E> entry = Iterables.getOnlyElement(getMultiset().entrySet()); 217 assertEquals(3, entry.getCount()); 218 getMultiset().elementSet().clear(); 219 assertEquals(0, entry.getCount()); 220 } 221 222 @CollectionSize.Require(SEVERAL) 223 @CollectionFeature.Require(SUPPORTS_ITERATOR_REMOVE) 224 @MultisetFeature.Require(ENTRIES_ARE_VIEWS) 225 public void testEntryReflectsElementSetIteratorRemove() { 226 initThreeCopies(); 227 assertEquals(3, getMultiset().count(e0())); 228 Multiset.Entry<E> entry = Iterables.getOnlyElement(getMultiset().entrySet()); 229 assertEquals(3, entry.getCount()); 230 Iterator<E> elementItr = getMultiset().elementSet().iterator(); 231 elementItr.next(); 232 elementItr.remove(); 233 assertEquals(0, entry.getCount()); 234 } 235 236 @CollectionSize.Require(SEVERAL) 237 @CollectionFeature.Require({SUPPORTS_REMOVE, SUPPORTS_ADD}) 238 @MultisetFeature.Require(ENTRIES_ARE_VIEWS) 239 public void testEntryReflectsRemoveThenAdd() { 240 initThreeCopies(); 241 assertEquals(3, getMultiset().count(e0())); 242 Multiset.Entry<E> entry = Iterables.getOnlyElement(getMultiset().entrySet()); 243 assertEquals(3, entry.getCount()); 244 assertTrue(getMultiset().remove(e0())); 245 assertEquals(2, entry.getCount()); 246 assertTrue(getMultiset().elementSet().remove(e0())); 247 assertEquals(0, entry.getCount()); 248 getMultiset().add(e0(), 2); 249 assertEquals(2, entry.getCount()); 250 } 251 252 public void testToString() { 253 assertEquals(getMultiset().entrySet().toString(), getMultiset().toString()); 254 } 255 }