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 }