Coverage Summary for Class: MultisetIteratorTester (com.google.common.collect.testing.google)

Class Method, % Line, %
MultisetIteratorTester 0% (0/6) 0% (0/22)
MultisetIteratorTester$1 0% (0/2) 0% (0/2)
MultisetIteratorTester$2 0% (0/2) 0% (0/2)
MultisetIteratorTester$3 0% (0/2) 0% (0/2)
MultisetIteratorTester$4 0% (0/2) 0% (0/2)
Total 0% (0/14) 0% (0/30)


1 /* 2  * Copyright (C) 2011 The Guava Authors 3  * 4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5  * in compliance with the License. You may obtain a copy of the License at 6  * 7  * http://www.apache.org/licenses/LICENSE-2.0 8  * 9  * Unless required by applicable law or agreed to in writing, software distributed under the License 10  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11  * or implied. See the License for the specific language governing permissions and limitations under 12  * the License. 13  */ 14  15 package com.google.common.collect.testing.google; 16  17 import static com.google.common.collect.testing.IteratorFeature.MODIFIABLE; 18 import static com.google.common.collect.testing.IteratorFeature.UNMODIFIABLE; 19 import static com.google.common.collect.testing.features.CollectionFeature.KNOWN_ORDER; 20 import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ITERATOR_REMOVE; 21  22 import com.google.common.annotations.GwtCompatible; 23 import com.google.common.annotations.GwtIncompatible; 24 import com.google.common.collect.testing.Helpers; 25 import com.google.common.collect.testing.IteratorTester; 26 import com.google.common.collect.testing.features.CollectionFeature; 27 import java.lang.reflect.Method; 28 import java.util.Arrays; 29 import java.util.Iterator; 30 import java.util.List; 31 import org.junit.Ignore; 32  33 /** 34  * Tester to make sure the {@code iterator().remove()} implementation of {@code Multiset} works when 35  * there are multiple occurrences of elements. 36  * 37  * @author Louis Wasserman 38  */ 39 @GwtCompatible(emulated = true) 40 @Ignore // Affects only Android test runner, which respects JUnit 4 annotations on JUnit 3 tests. 41 public class MultisetIteratorTester<E> extends AbstractMultisetTester<E> { 42  @SuppressWarnings("unchecked") 43  @CollectionFeature.Require({SUPPORTS_ITERATOR_REMOVE, KNOWN_ORDER}) 44  public void testRemovingIteratorKnownOrder() { 45  new IteratorTester<E>( 46  4, 47  MODIFIABLE, 48  getSubjectGenerator().order(Arrays.asList(e0(), e1(), e1(), e2())), 49  IteratorTester.KnownOrder.KNOWN_ORDER) { 50  @Override 51  protected Iterator<E> newTargetIterator() { 52  return getSubjectGenerator().create(e0(), e1(), e1(), e2()).iterator(); 53  } 54  }.test(); 55  } 56  57  @SuppressWarnings("unchecked") 58  @CollectionFeature.Require(value = SUPPORTS_ITERATOR_REMOVE, absent = KNOWN_ORDER) 59  public void testRemovingIteratorUnknownOrder() { 60  new IteratorTester<E>( 61  4, 62  MODIFIABLE, 63  Arrays.asList(e0(), e1(), e1(), e2()), 64  IteratorTester.KnownOrder.UNKNOWN_ORDER) { 65  @Override 66  protected Iterator<E> newTargetIterator() { 67  return getSubjectGenerator().create(e0(), e1(), e1(), e2()).iterator(); 68  } 69  }.test(); 70  } 71  72  @SuppressWarnings("unchecked") 73  @CollectionFeature.Require(value = KNOWN_ORDER, absent = SUPPORTS_ITERATOR_REMOVE) 74  public void testIteratorKnownOrder() { 75  new IteratorTester<E>( 76  4, 77  UNMODIFIABLE, 78  getSubjectGenerator().order(Arrays.asList(e0(), e1(), e1(), e2())), 79  IteratorTester.KnownOrder.KNOWN_ORDER) { 80  @Override 81  protected Iterator<E> newTargetIterator() { 82  return getSubjectGenerator().create(e0(), e1(), e1(), e2()).iterator(); 83  } 84  }.test(); 85  } 86  87  @SuppressWarnings("unchecked") 88  @CollectionFeature.Require(absent = {SUPPORTS_ITERATOR_REMOVE, KNOWN_ORDER}) 89  public void testIteratorUnknownOrder() { 90  new IteratorTester<E>( 91  4, 92  UNMODIFIABLE, 93  Arrays.asList(e0(), e1(), e1(), e2()), 94  IteratorTester.KnownOrder.UNKNOWN_ORDER) { 95  @Override 96  protected Iterator<E> newTargetIterator() { 97  return getSubjectGenerator().create(e0(), e1(), e1(), e2()).iterator(); 98  } 99  }.test(); 100  } 101  102  /** 103  * Returns {@link Method} instances for the tests that assume multisets support duplicates so that 104  * the test of {@code Multisets.forSet()} can suppress them. 105  */ 106  @GwtIncompatible // reflection 107  public static List<Method> getIteratorDuplicateInitializingMethods() { 108  return Arrays.asList( 109  Helpers.getMethod(MultisetIteratorTester.class, "testIteratorKnownOrder"), 110  Helpers.getMethod(MultisetIteratorTester.class, "testIteratorUnknownOrder"), 111  Helpers.getMethod(MultisetIteratorTester.class, "testRemovingIteratorKnownOrder"), 112  Helpers.getMethod(MultisetIteratorTester.class, "testRemovingIteratorUnknownOrder")); 113  } 114 }