diff options
Diffstat (limited to 'guava-testlib/src/com/google/common/collect/testing/testers')
68 files changed, 227 insertions, 1052 deletions
diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/AbstractListIndexOfTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/AbstractListIndexOfTester.java index 21fff11..af960a5 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/AbstractListIndexOfTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/AbstractListIndexOfTester.java @@ -19,7 +19,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.WrongType; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -32,7 +31,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Chris Povirk */ -@GwtCompatible public abstract class AbstractListIndexOfTester<E> extends AbstractListTester<E> { /** Override to call {@code indexOf()} or {@code lastIndexOf()}. */ @@ -47,7 +45,7 @@ public abstract class AbstractListIndexOfTester<E> @CollectionSize.Require(absent = ZERO) public void testFind_yes() { assertEquals(getMethodName() + "(firstElement) should return 0", - 0, find(getOrderedElements().get(0))); + 0, find(samples.e0)); } public void testFind_no() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/AbstractListTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/AbstractListTester.java index 5bebdb3..268022d 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/AbstractListTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/AbstractListTester.java @@ -16,7 +16,6 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.Helpers; @@ -30,7 +29,6 @@ import java.util.List; * * @author George van den Driessche */ -@GwtCompatible public class AbstractListTester<E> extends AbstractCollectionTester<E> { /* * Previously we had a field named list that was initialized to the value of diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/AbstractQueueTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/AbstractQueueTester.java index dd6a260..5f7477c 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/AbstractQueueTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/AbstractQueueTester.java @@ -16,7 +16,6 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import java.util.Queue; @@ -28,7 +27,6 @@ import java.util.Queue; * * @author Jared Levy */ -@GwtCompatible public class AbstractQueueTester<E> extends AbstractCollectionTester<E> { protected final Queue<E> getQueue() { return (Queue<E>) collection; diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/AbstractSetTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/AbstractSetTester.java index 544373e..76a5326 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/AbstractSetTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/AbstractSetTester.java @@ -16,7 +16,6 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import java.util.Set; @@ -26,7 +25,6 @@ import java.util.Set; * * @author George van den Driessche */ -@GwtCompatible public class AbstractSetTester<E> extends AbstractCollectionTester<E> { /* * Previously we had a field named set that was initialized to the value of diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionAddAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionAddAllTester.java index 38d5261..b5e3085 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionAddAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionAddAllTester.java @@ -17,23 +17,17 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import static com.google.common.collect.testing.features.CollectionFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; import static com.google.common.collect.testing.features.CollectionFeature.RESTRICTS_ELEMENTS; -import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD; +import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD_ALL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static java.util.Collections.singletonList; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.AbstractCollectionTester; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; import java.lang.reflect.Method; -import java.util.ConcurrentModificationException; -import java.util.Iterator; import java.util.List; /** @@ -47,16 +41,15 @@ import java.util.List; * @author Kevin Bourrillion */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible(emulated = true) public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) public void testAddAll_supportedNothing() { assertFalse("addAll(nothing) should return false", collection.addAll(emptyCollection())); expectUnchanged(); } - @CollectionFeature.Require(absent = SUPPORTS_ADD) + @CollectionFeature.Require(absent = SUPPORTS_ADD_ALL) public void testAddAll_unsupportedNothing() { try { assertFalse("addAll(nothing) should return false or throw", @@ -66,14 +59,14 @@ public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { expectUnchanged(); } - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) public void testAddAll_supportedNonePresent() { assertTrue("addAll(nonePresent) should return true", collection.addAll(createDisjointCollection())); expectAdded(samples.e3, samples.e4); } - @CollectionFeature.Require(absent = SUPPORTS_ADD) + @CollectionFeature.Require(absent = SUPPORTS_ADD_ALL) public void testAddAll_unsupportedNonePresent() { try { collection.addAll(createDisjointCollection()); @@ -84,7 +77,7 @@ public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { expectMissing(samples.e3, samples.e4); } - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) @CollectionSize.Require(absent = ZERO) public void testAddAll_supportedSomePresent() { assertTrue("addAll(somePresent) should return true", @@ -93,7 +86,7 @@ public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { assertTrue("should contain " + samples.e0, collection.contains(samples.e0)); } - @CollectionFeature.Require(absent = SUPPORTS_ADD) + @CollectionFeature.Require(absent = SUPPORTS_ADD_ALL) @CollectionSize.Require(absent = ZERO) public void testAddAll_unsupportedSomePresent() { try { @@ -104,21 +97,7 @@ public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { expectUnchanged(); } - @CollectionFeature.Require({SUPPORTS_ADD, - FAILS_FAST_ON_CONCURRENT_MODIFICATION}) - @CollectionSize.Require(absent = ZERO) - public void testAddAllConcurrentWithIteration() { - try { - Iterator<E> iterator = collection.iterator(); - assertTrue(collection.addAll(MinimalCollection.of(samples.e3, samples.e0))); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @CollectionFeature.Require(absent = SUPPORTS_ADD) + @CollectionFeature.Require(absent = SUPPORTS_ADD_ALL) @CollectionSize.Require(absent = ZERO) public void testAddAll_unsupportedAllPresent() { try { @@ -129,7 +108,7 @@ public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { expectUnchanged(); } - @CollectionFeature.Require(value = {SUPPORTS_ADD, + @CollectionFeature.Require(value = {SUPPORTS_ADD_ALL, ALLOWS_NULL_VALUES}, absent = RESTRICTS_ELEMENTS) public void testAddAll_nullSupported() { List<E> containsNull = singletonList(null); @@ -142,7 +121,7 @@ public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { expectAdded((E) null); } - @CollectionFeature.Require(value = SUPPORTS_ADD, + @CollectionFeature.Require(value = SUPPORTS_ADD_ALL, absent = ALLOWS_NULL_VALUES) public void testAddAll_nullUnsupported() { List<E> containsNull = singletonList(null); @@ -156,7 +135,7 @@ public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { "Should not contain null after unsupported addAll(containsNull)"); } - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) public void testAddAll_nullCollectionReference() { try { collection.addAll(null); @@ -172,8 +151,7 @@ public class CollectionAddAllTester<E> extends AbstractCollectionTester<E> { * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5045147">Sun * bug 5045147</a> is fixed. */ - @GwtIncompatible("reflection") public static Method getAddAllNullUnsupportedMethod() { - return Helpers.getMethod(CollectionAddAllTester.class, "testAddAll_nullUnsupported"); + return Platform.getMethod(CollectionAddAllTester.class, "testAddAll_nullUnsupported"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionAddTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionAddTester.java index afe276b..1de5b14 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionAddTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionAddTester.java @@ -17,21 +17,15 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import static com.google.common.collect.testing.features.CollectionFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; import static com.google.common.collect.testing.features.CollectionFeature.RESTRICTS_ELEMENTS; import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.AbstractCollectionTester; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; import java.lang.reflect.Method; -import java.util.ConcurrentModificationException; -import java.util.Iterator; /** * A generic JUnit test which tests {@code add} operations on a collection. @@ -44,7 +38,6 @@ import java.util.Iterator; * @author Kevin Bourrillion */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible(emulated = true) public class CollectionAddTester<E> extends AbstractCollectionTester<E> { @CollectionFeature.Require(SUPPORTS_ADD) public void testAdd_supportedNotPresent() { @@ -96,20 +89,6 @@ public class CollectionAddTester<E> extends AbstractCollectionTester<E> { "Should not contain null after unsupported add(null)"); } - @CollectionFeature.Require({SUPPORTS_ADD, - FAILS_FAST_ON_CONCURRENT_MODIFICATION}) - @CollectionSize.Require(absent = ZERO) - public void testAddConcurrentWithIteration() { - try { - Iterator<E> iterator = collection.iterator(); - assertTrue(collection.add(samples.e3)); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - /** * Returns the {@link Method} instance for {@link #testAdd_nullSupported()} so * that tests of {@link @@ -122,20 +101,20 @@ public class CollectionAddTester<E> extends AbstractCollectionTester<E> { * seems more likely that code would depend on that behavior than on the * other. Thus, we say the bug is in add(), which fails to support null. */ - @GwtIncompatible("reflection") public static Method getAddNullSupportedMethod() { - return Helpers.getMethod(CollectionAddTester.class, "testAdd_nullSupported"); + return Platform.getMethod(CollectionAddTester.class, "testAdd_nullSupported"); } /** - * Returns the {@link Method} instance for {@link #testAdd_nullSupported()} - * so that tests of {@link java.util.TreeSet} can suppress it with {@code - * FeatureSpecificTestSuiteBuilder.suppressing()} until <a - * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5045147">Sun bug - * 5045147</a> is fixed. + * Returns the {@link Method} instance for {@link #testAdd_nullSupported()} so + * that tests of {@link + * java.util.Collections#checkedCollection(java.util.Collection, Class)} can + * suppress it with {@code FeatureSpecificTestSuiteBuilder.suppressing()} + * until <a + * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5045147">Sun + * bug 5045147</a> is fixed. */ - @GwtIncompatible("reflection") public static Method getAddNullUnsupportedMethod() { - return Helpers.getMethod(CollectionAddTester.class, "testAdd_nullUnsupported"); + return Platform.getMethod(CollectionAddTester.class, "testAdd_nullUnsupported"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionClearTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionClearTester.java index a417e55..69f1d02 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionClearTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionClearTester.java @@ -16,19 +16,13 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.features.CollectionFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; -import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; -import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; +import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_CLEAR; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; -import java.util.ConcurrentModificationException; -import java.util.Iterator; - /** * A generic JUnit test which tests {@code clear()} operations on a collection. * Can't be invoked directly; please see @@ -38,16 +32,15 @@ import java.util.Iterator; * * @author George van den Driessche */ -@GwtCompatible public class CollectionClearTester<E> extends AbstractCollectionTester<E> { - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_CLEAR) public void testClear() { collection.clear(); assertTrue("After clear(), a collection should be empty.", collection.isEmpty()); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_CLEAR) @CollectionSize.Require(absent = ZERO) public void testClear_unsupported() { try { @@ -59,7 +52,7 @@ public class CollectionClearTester<E> extends AbstractCollectionTester<E> { expectUnchanged(); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_CLEAR) @CollectionSize.Require(ZERO) public void testClear_unsupportedByEmptyCollection() { try { @@ -68,22 +61,4 @@ public class CollectionClearTester<E> extends AbstractCollectionTester<E> { } expectUnchanged(); } - - @CollectionFeature.Require({SUPPORTS_REMOVE, - FAILS_FAST_ON_CONCURRENT_MODIFICATION}) - @CollectionSize.Require(SEVERAL) - public void testClearConcurrentWithIteration() { - try { - Iterator<E> iterator = collection.iterator(); - collection.clear(); - iterator.next(); - /* - * We prefer for iterators to fail immediately on hasNext, but ArrayList - * and LinkedList will notably return true on hasNext here! - */ - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionContainsAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionContainsAllTester.java index 4fd424b..40be02b 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionContainsAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionContainsAllTester.java @@ -20,7 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.ALLOW import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.WrongType; @@ -40,7 +39,6 @@ import java.util.Collection; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class CollectionContainsAllTester<E> extends AbstractCollectionTester<E> { public void testContainsAll_empty() { @@ -87,7 +85,6 @@ public class CollectionContainsAllTester<E> } @CollectionFeature.Require(ALLOWS_NULL_VALUES) - @CollectionSize.Require(absent = ZERO) public void testContainsAll_nullPresent() { initCollectionWithNullElement(); assertTrue(collection.containsAll(MinimalCollection.of((E) null))); diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionContainsTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionContainsTester.java index e8f754a..49337c3 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionContainsTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionContainsTester.java @@ -20,7 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.ALLOW import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.WrongType; import com.google.common.collect.testing.features.CollectionFeature; @@ -36,7 +35,6 @@ import com.google.common.collect.testing.features.CollectionSize; * @author Kevin Bourrillion * @author Chris Povirk */ -@GwtCompatible public class CollectionContainsTester<E> extends AbstractCollectionTester<E> { @CollectionSize.Require(absent = ZERO) public void testContains_yes() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionCreationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionCreationTester.java index 3e7499c..401a0f2 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionCreationTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionCreationTester.java @@ -19,10 +19,7 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.AbstractCollectionTester; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -37,7 +34,6 @@ import java.lang.reflect.Method; * * @author Chris Povirk */ -@GwtCompatible(emulated = true) public class CollectionCreationTester<E> extends AbstractCollectionTester<E> { @CollectionFeature.Require(ALLOWS_NULL_VALUES) @CollectionSize.Require(absent = ZERO) @@ -66,8 +62,7 @@ public class CollectionCreationTester<E> extends AbstractCollectionTester<E> { * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5045147">Sun * bug 5045147</a> is fixed. */ - @GwtIncompatible("reflection") public static Method getCreateWithNullUnsupportedMethod() { - return Helpers.getMethod(CollectionCreationTester.class, "testCreateWithNull_unsupported"); + return Platform.getMethod(CollectionCreationTester.class, "testCreateWithNull_unsupported"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionEqualsTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionEqualsTester.java index c59db0a..fe642fc 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionEqualsTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionEqualsTester.java @@ -16,7 +16,6 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; /** @@ -26,7 +25,6 @@ import com.google.common.collect.testing.AbstractCollectionTester; * * @author George van den Driessche */ -@GwtCompatible public class CollectionEqualsTester<E> extends AbstractCollectionTester<E> { public void testEquals_self() { assertTrue("An Object should be equal to itself.", @@ -45,4 +43,4 @@ public class CollectionEqualsTester<E> extends AbstractCollectionTester<E> { + "object that is not a Collection.", collection.equals("huh?")); } -} +}
\ No newline at end of file diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionIsEmptyTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionIsEmptyTester.java index 94e2c13..8d11f42 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionIsEmptyTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionIsEmptyTester.java @@ -18,7 +18,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.features.CollectionSize; @@ -31,7 +30,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Kevin Bourrillion */ -@GwtCompatible public class CollectionIsEmptyTester<E> extends AbstractCollectionTester<E> { @CollectionSize.Require(ZERO) public void testIsEmpty_yes() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionIteratorTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionIteratorTester.java index 6a8d567..3e54cfc 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionIteratorTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionIteratorTester.java @@ -21,8 +21,6 @@ import static com.google.common.collect.testing.IteratorFeature.UNMODIFIABLE; import static com.google.common.collect.testing.features.CollectionFeature.KNOWN_ORDER; import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.IteratorFeature; @@ -48,7 +46,6 @@ import java.util.concurrent.CopyOnWriteArraySet; * * @author Chris Povirk */ -@GwtCompatible(emulated = true) public class CollectionIteratorTester<E> extends AbstractCollectionTester<E> { public void testIterator() { List<E> iteratorElements = new ArrayList<E>(); @@ -123,9 +120,8 @@ public class CollectionIteratorTester<E> extends AbstractCollectionTester<E> { * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6570575">Sun bug * 6570575</a> is fixed. */ - @GwtIncompatible("reflection") public static Method getIteratorKnownOrderRemoveSupportedMethod() { - return Helpers.getMethod( + return Platform.getMethod( CollectionIteratorTester.class, "testIterator_knownOrderRemoveSupported"); } @@ -134,9 +130,8 @@ public class CollectionIteratorTester<E> extends AbstractCollectionTester<E> { * {@link #testIterator_unknownOrderRemoveSupported()} so that tests of * classes with unmodifiable iterators can suppress it. */ - @GwtIncompatible("reflection") public static Method getIteratorUnknownOrderRemoveSupportedMethod() { - return Helpers.getMethod( + return Platform.getMethod( CollectionIteratorTester.class, "testIterator_unknownOrderRemoveSupported"); } @@ -160,9 +155,8 @@ public class CollectionIteratorTester<E> extends AbstractCollectionTester<E> { * supports {@code remove()} on only the first element, and the iterator * tester can't handle that. */ - @GwtIncompatible("reflection") public static Method getIteratorKnownOrderRemoveUnsupportedMethod() { - return Helpers.getMethod( + return Platform.getMethod( CollectionIteratorTester.class, "testIterator_knownOrderRemoveUnsupported"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRemoveAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRemoveAllTester.java index f607916..1005307 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRemoveAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRemoveAllTester.java @@ -18,12 +18,9 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_QUERIES; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import static com.google.common.collect.testing.features.CollectionFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; -import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; -import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; +import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE_ALL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.WrongType; @@ -31,8 +28,6 @@ import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; import java.util.Collections; -import java.util.ConcurrentModificationException; -import java.util.Iterator; /** * A generic JUnit test which tests {@code removeAll} operations on a @@ -45,23 +40,22 @@ import java.util.Iterator; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) public void testRemoveAll_emptyCollection() { assertFalse("removeAll(emptyCollection) should return false", collection.removeAll(MinimalCollection.of())); expectUnchanged(); } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) public void testRemoveAll_nonePresent() { assertFalse("removeAll(disjointCollection) should return false", collection.removeAll(MinimalCollection.of(samples.e3))); expectUnchanged(); } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) @CollectionSize.Require(absent = ZERO) public void testRemoveAll_allPresent() { assertTrue("removeAll(intersectingCollection) should return true", @@ -69,7 +63,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { expectMissing(samples.e0); } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) @CollectionSize.Require(absent = ZERO) public void testRemoveAll_somePresent() { assertTrue("removeAll(intersectingCollection) should return true", @@ -77,24 +71,10 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { expectMissing(samples.e0); } - @CollectionFeature.Require({SUPPORTS_REMOVE, - FAILS_FAST_ON_CONCURRENT_MODIFICATION}) - @CollectionSize.Require(SEVERAL) - public void testRemoveAllSomePresentConcurrentWithIteration() { - try { - Iterator<E> iterator = collection.iterator(); - assertTrue(collection.removeAll(MinimalCollection.of(samples.e0, samples.e3))); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - /** * Trigger the other.size() >= this.size() case in AbstractSet.removeAll(). */ - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) @CollectionSize.Require(absent = ZERO) public void testRemoveAll_somePresentLargeCollectionToRemove() { assertTrue("removeAll(largeIntersectingCollection) should return true", @@ -104,7 +84,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { expectMissing(samples.e0); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_REMOVE_ALL) public void testRemoveAll_unsupportedEmptyCollection() { try { assertFalse("removeAll(emptyCollection) should return false or throw " @@ -115,7 +95,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { expectUnchanged(); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_REMOVE_ALL) public void testRemoveAll_unsupportedNonePresent() { try { assertFalse("removeAll(disjointCollection) should return false or throw " @@ -126,7 +106,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { expectUnchanged(); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_REMOVE_ALL) @CollectionSize.Require(absent = ZERO) public void testRemoveAll_unsupportedPresent() { try { @@ -146,7 +126,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { * suppress only the former. */ - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) @CollectionSize.Require(ZERO) public void testRemoveAll_nullCollectionReferenceEmptySubject() { try { @@ -156,7 +136,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { } } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) @CollectionSize.Require(absent = ZERO) public void testRemoveAll_nullCollectionReferenceNonEmptySubject() { try { @@ -166,7 +146,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { } } - @CollectionFeature.Require(value = SUPPORTS_REMOVE, + @CollectionFeature.Require(value = SUPPORTS_REMOVE_ALL, absent = ALLOWS_NULL_QUERIES) public void testRemoveAll_containsNullNo() { MinimalCollection<?> containsNull = MinimalCollection.of((Object) null); @@ -178,7 +158,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { expectUnchanged(); } - @CollectionFeature.Require({SUPPORTS_REMOVE, ALLOWS_NULL_QUERIES}) + @CollectionFeature.Require({SUPPORTS_REMOVE_ALL, ALLOWS_NULL_QUERIES}) public void testRemoveAll_containsNullNoButAllowed() { MinimalCollection<?> containsNull = MinimalCollection.of((Object) null); assertFalse("removeAll(containsNull) should return false", @@ -186,7 +166,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { expectUnchanged(); } - @CollectionFeature.Require({SUPPORTS_REMOVE, ALLOWS_NULL_VALUES}) + @CollectionFeature.Require({SUPPORTS_REMOVE_ALL, ALLOWS_NULL_VALUES}) @CollectionSize.Require(absent = ZERO) public void testRemoveAll_containsNullYes() { initCollectionWithNullElement(); @@ -195,7 +175,7 @@ public class CollectionRemoveAllTester<E> extends AbstractCollectionTester<E> { // TODO: make this work with MinimalCollection } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) public void testRemoveAll_containsWrongType() { try { assertFalse("removeAll(containsWrongType) should return false or throw", diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRemoveTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRemoveTester.java index 3818fd9..2d051bc 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRemoveTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRemoveTester.java @@ -18,18 +18,14 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_QUERIES; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import static com.google.common.collect.testing.features.CollectionFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; -import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.WrongType; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; -import java.util.ConcurrentModificationException; import java.util.Iterator; /** @@ -42,7 +38,6 @@ import java.util.Iterator; * @author George van den Driessche */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class CollectionRemoveTester<E> extends AbstractCollectionTester<E> { @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(absent = ZERO) @@ -55,20 +50,6 @@ public class CollectionRemoveTester<E> extends AbstractCollectionTester<E> { expectMissing(samples.e0); } - @CollectionFeature.Require({SUPPORTS_REMOVE, - FAILS_FAST_ON_CONCURRENT_MODIFICATION}) - @CollectionSize.Require(SEVERAL) - public void testRemovePresentConcurrentWithIteration() { - try { - Iterator<E> iterator = collection.iterator(); - assertTrue(collection.remove(samples.e0)); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - @CollectionFeature.Require(SUPPORTS_REMOVE) public void testRemove_notPresent() { assertFalse("remove(notPresent) should return false", diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRetainAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRetainAllTester.java index 693c0b1..fbfd0d8 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRetainAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionRetainAllTester.java @@ -17,11 +17,10 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; +import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_RETAIN_ALL; import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.features.CollectionFeature; @@ -42,7 +41,6 @@ import java.util.List; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { /** @@ -105,21 +103,21 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // retainAll(empty) - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(ZERO) public void testRetainAll_emptyPreviouslyEmpty() { expectReturnsFalse(empty); expectUnchanged(); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_RETAIN_ALL) @CollectionSize.Require(ZERO) public void testRetainAll_emptyPreviouslyEmptyUnsupported() { expectReturnsFalseOrThrows(empty); expectUnchanged(); } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = ZERO) public void testRetainAll_emptyPreviouslyNonEmpty() { expectReturnsTrue(empty); @@ -127,7 +125,7 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { expectMissing(samples.e0, samples.e1, samples.e2); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = ZERO) public void testRetainAll_emptyPreviouslyNonEmptyUnsupported() { expectThrows(empty); @@ -136,21 +134,21 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // retainAll(disjoint) - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(ZERO) public void testRetainAll_disjointPreviouslyEmpty() { expectReturnsFalse(disjoint); expectUnchanged(); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_RETAIN_ALL) @CollectionSize.Require(ZERO) public void testRetainAll_disjointPreviouslyEmptyUnsupported() { expectReturnsFalseOrThrows(disjoint); expectUnchanged(); } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = ZERO) public void testRetainAll_disjointPreviouslyNonEmpty() { expectReturnsTrue(disjoint); @@ -158,7 +156,7 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { expectMissing(samples.e0, samples.e1, samples.e2); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = ZERO) public void testRetainAll_disjointPreviouslyNonEmptyUnsupported() { expectThrows(disjoint); @@ -167,13 +165,13 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // retainAll(superset) - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) public void testRetainAll_superset() { expectReturnsFalse(superset); expectUnchanged(); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_RETAIN_ALL) public void testRetainAll_supersetUnsupported() { expectReturnsFalseOrThrows(superset); expectUnchanged(); @@ -181,14 +179,14 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // retainAll(subset) - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = {ZERO, ONE}) public void testRetainAll_subset() { expectReturnsTrue(nonEmptyProperSubset); expectContents(nonEmptyProperSubset.toRetain); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = {ZERO, ONE}) public void testRetainAll_subsetUnsupported() { expectThrows(nonEmptyProperSubset); @@ -197,13 +195,13 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // retainAll(sameElements) - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) public void testRetainAll_sameElements() { expectReturnsFalse(sameElements); expectUnchanged(); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_RETAIN_ALL) public void testRetainAll_sameElementsUnsupported() { expectReturnsFalseOrThrows(sameElements); expectUnchanged(); @@ -211,14 +209,14 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // retainAll(partialOverlap) - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = {ZERO, ONE}) public void testRetainAll_partialOverlap() { expectReturnsTrue(partialOverlap); expectContents(samples.e2); } - @CollectionFeature.Require(absent = SUPPORTS_REMOVE) + @CollectionFeature.Require(absent = SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = {ZERO, ONE}) public void testRetainAll_partialOverlapUnsupported() { expectThrows(partialOverlap); @@ -227,14 +225,14 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // retainAll(containsDuplicates) - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(ONE) public void testRetainAll_containsDuplicatesSizeOne() { expectReturnsFalse(containsDuplicates); expectContents(samples.e0); } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = {ZERO, ONE}) public void testRetainAll_containsDuplicatesSizeSeveral() { expectReturnsTrue(containsDuplicates); @@ -243,21 +241,21 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // retainAll(nullSingleton) - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(ZERO) public void testRetainAll_nullSingletonPreviouslyEmpty() { expectReturnsFalse(nullSingleton); expectUnchanged(); } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = ZERO) public void testRetainAll_nullSingletonPreviouslyNonEmpty() { expectReturnsTrue(nullSingleton); expectContents(); } - @CollectionFeature.Require({SUPPORTS_REMOVE, ALLOWS_NULL_VALUES}) + @CollectionFeature.Require({SUPPORTS_RETAIN_ALL, ALLOWS_NULL_VALUES}) @CollectionSize.Require(ONE) public void testRetainAll_nullSingletonPreviouslySingletonWithNull() { initCollectionWithNullElement(); @@ -265,7 +263,7 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { expectContents(createArrayWithNullElement()); } - @CollectionFeature.Require({SUPPORTS_REMOVE, ALLOWS_NULL_VALUES}) + @CollectionFeature.Require({SUPPORTS_RETAIN_ALL, ALLOWS_NULL_VALUES}) @CollectionSize.Require(absent = {ZERO, ONE}) public void testRetainAll_nullSingletonPreviouslySeveralWithNull() { initCollectionWithNullElement(); @@ -275,7 +273,7 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { // nullSingleton.retainAll() - @CollectionFeature.Require({SUPPORTS_REMOVE, ALLOWS_NULL_VALUES}) + @CollectionFeature.Require({SUPPORTS_RETAIN_ALL, ALLOWS_NULL_VALUES}) @CollectionSize.Require(absent = ZERO) public void testRetainAll_containsNonNullWithNull() { initCollectionWithNullElement(); @@ -292,7 +290,7 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { * suppress only the former. */ - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(ZERO) public void testRetainAll_nullCollectionReferenceEmptySubject() { try { @@ -302,7 +300,7 @@ public class CollectionRetainAllTester<E> extends AbstractCollectionTester<E> { } } - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = ZERO) public void testRetainAll_nullCollectionReferenceNonEmptySubject() { try { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSerializationEqualTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSerializationEqualTester.java deleted file mode 100644 index 1fbfe26..0000000 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSerializationEqualTester.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2012 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.common.collect.testing.testers; - -import static com.google.common.collect.testing.features.CollectionFeature.SERIALIZABLE; - -import com.google.common.annotations.GwtCompatible; -import com.google.common.collect.testing.AbstractCollectionTester; -import com.google.common.collect.testing.features.CollectionFeature; -import com.google.common.testing.SerializableTester; - -/** - * Basic reserialization test for collection types that must preserve {@code equals()} behavior - * when reserialized. (Sets and Lists, but not bare Collections.) - * - * @author Louis Wasserman - */ -@GwtCompatible -public class CollectionSerializationEqualTester<E> extends AbstractCollectionTester<E> { - @CollectionFeature.Require(SERIALIZABLE) - public void testReserialize() { - assertEquals( - actualContents(), - SerializableTester.reserialize(actualContents())); - } -} diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSerializationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSerializationTester.java deleted file mode 100644 index bc4470e..0000000 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSerializationTester.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2012 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.common.collect.testing.testers; - -import static com.google.common.collect.testing.features.CollectionFeature.SERIALIZABLE; - -import com.google.common.annotations.GwtCompatible; -import com.google.common.collect.testing.AbstractCollectionTester; -import com.google.common.collect.testing.Helpers; -import com.google.common.collect.testing.features.CollectionFeature; -import com.google.common.testing.SerializableTester; - -/** - * Basic reserialization test for collections. - * - * @author Louis Wasserman - */ -@GwtCompatible -public class CollectionSerializationTester<E> extends AbstractCollectionTester<E> { - @CollectionFeature.Require(SERIALIZABLE) - public void testReserialize() { - // For a bare Collection, the most we can guarantee is that the elements are preserved. - Helpers.assertEqualIgnoringOrder( - actualContents(), - SerializableTester.reserialize(actualContents())); - } -} diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSizeTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSizeTester.java index 0c9693d..f7fa87b 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSizeTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionSizeTester.java @@ -16,7 +16,6 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; /** @@ -28,7 +27,6 @@ import com.google.common.collect.testing.AbstractCollectionTester; * * @author Kevin Bourrillion */ -@GwtCompatible public class CollectionSizeTester<E> extends AbstractCollectionTester<E> { public void testSize() { assertEquals("size():", getNumElements(), collection.size()); diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionToArrayTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionToArrayTester.java index d7de38b..3d65969 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionToArrayTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionToArrayTester.java @@ -19,8 +19,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.KNOWN_ORDER; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.WrongType; @@ -42,7 +40,6 @@ import java.util.List; * @author Kevin Bourrillion * @author Chris Povirk */ -@GwtCompatible(emulated = true) public class CollectionToArrayTester<E> extends AbstractCollectionTester<E> { public void testToArray_noArgs() { Object[] array = collection.toArray(); @@ -195,8 +192,7 @@ public class CollectionToArrayTester<E> extends AbstractCollectionTester<E> { * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6260652">Sun bug * 6260652</a> is fixed. */ - @GwtIncompatible("reflection") public static Method getToArrayIsPlainObjectArrayMethod() { - return Helpers.getMethod(CollectionToArrayTester.class, "testToArray_isPlainObjectArray"); + return Platform.getMethod(CollectionToArrayTester.class, "testToArray_isPlainObjectArray"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionToStringTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionToStringTester.java index 4d93fa9..120a112 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/CollectionToStringTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/CollectionToStringTester.java @@ -22,7 +22,6 @@ import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractCollectionTester; import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; @@ -37,7 +36,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Kevin Bourrillion */ -@GwtCompatible public class CollectionToStringTester<E> extends AbstractCollectionTester<E> { public void testToString_minimal() { assertNotNull("toString() should not return null", diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAllAtIndexTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAllAtIndexTester.java index 1844106..be64b0d 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAllAtIndexTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAllAtIndexTester.java @@ -19,10 +19,10 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; +import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_ADD_ALL_WITH_INDEX; import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_ADD_WITH_INDEX; import static java.util.Collections.singletonList; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -40,9 +40,8 @@ import java.util.List; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) @CollectionSize.Require(absent = ZERO) public void testAddAllAtIndex_supportedAllPresent() { assertTrue("addAll(n, allPresent) should return true", @@ -50,7 +49,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectAdded(0, samples.e0); } - @ListFeature.Require(absent = SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(absent = SUPPORTS_ADD_ALL_WITH_INDEX) @CollectionSize.Require(absent = ZERO) public void testAddAllAtIndex_unsupportedAllPresent() { try { @@ -61,7 +60,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectUnchanged(); } - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) @CollectionSize.Require(absent = ZERO) public void testAddAllAtIndex_supportedSomePresent() { assertTrue("addAll(n, allPresent) should return true", @@ -69,7 +68,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectAdded(0, samples.e0, samples.e3); } - @ListFeature.Require(absent = SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(absent = SUPPORTS_ADD_ALL_WITH_INDEX) @CollectionSize.Require(absent = ZERO) public void testAddAllAtIndex_unsupportedSomePresent() { try { @@ -81,14 +80,14 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectMissing(samples.e3); } - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) public void testAddAllAtIndex_supportedNothing() { assertFalse("addAll(n, nothing) should return false", getList().addAll(0, emptyCollection())); expectUnchanged(); } - @ListFeature.Require(absent = SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(absent = SUPPORTS_ADD_ALL_WITH_INDEX) public void testAddAllAtIndex_unsupportedNothing() { try { assertFalse("addAll(n, nothing) should return false or throw", @@ -98,7 +97,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectUnchanged(); } - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) public void testAddAllAtIndex_withDuplicates() { MinimalCollection<E> elementsToAdd = MinimalCollection.of(samples.e0, samples.e1, samples.e0, samples.e1); @@ -107,7 +106,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectAdded(0, samples.e0, samples.e1, samples.e0, samples.e1); } - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) @CollectionFeature.Require(ALLOWS_NULL_VALUES) public void testAddAllAtIndex_nullSupported() { List<E> containsNull = singletonList(null); @@ -120,7 +119,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectAdded(0, (E) null); } - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) @CollectionFeature.Require(absent = ALLOWS_NULL_VALUES) public void testAddAllAtIndex_nullUnsupported() { List<E> containsNull = singletonList(null); @@ -134,7 +133,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { "Should not contain null after unsupported addAll(n, containsNull)"); } - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) @CollectionSize.Require(absent = {ZERO, ONE}) public void testAddAllAtIndex_middle() { assertTrue("addAll(middle, disjoint) should return true", @@ -142,7 +141,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectAdded(getNumElements() / 2, createDisjointCollection()); } - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) @CollectionSize.Require(absent = ZERO) public void testAddAllAtIndex_end() { assertTrue("addAll(end, disjoint) should return true", @@ -150,7 +149,7 @@ public class ListAddAllAtIndexTester<E> extends AbstractListTester<E> { expectAdded(getNumElements(), createDisjointCollection()); } - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) + @ListFeature.Require(SUPPORTS_ADD_ALL_WITH_INDEX) public void testAddAllAtIndex_nullCollectionReference() { try { getList().addAll(0, null); diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAllTester.java index f76d5db..3e9cb49 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAllTester.java @@ -16,10 +16,9 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD; +import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD_ALL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -34,9 +33,8 @@ import com.google.common.collect.testing.features.CollectionSize; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class ListAddAllTester<E> extends AbstractListTester<E> { - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) @CollectionSize.Require(absent = ZERO) public void testAddAll_supportedAllPresent() { assertTrue("addAll(allPresent) should return true", @@ -44,7 +42,7 @@ public class ListAddAllTester<E> extends AbstractListTester<E> { expectAdded(samples.e0); } - @CollectionFeature.Require(absent = SUPPORTS_ADD) + @CollectionFeature.Require(absent = SUPPORTS_ADD_ALL) @CollectionSize.Require(absent = ZERO) public void testAddAll_unsupportedAllPresent() { try { @@ -55,7 +53,7 @@ public class ListAddAllTester<E> extends AbstractListTester<E> { expectUnchanged(); } - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) public void testAddAll_withDuplicates() { MinimalCollection<E> elementsToAdd = MinimalCollection.of(samples.e0, samples.e1, samples.e0, samples.e1); diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAtIndexTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAtIndexTester.java index ab92dd9..9721393 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAtIndexTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListAddAtIndexTester.java @@ -17,21 +17,15 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import static com.google.common.collect.testing.features.CollectionFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_ADD_WITH_INDEX; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.ListFeature; import java.lang.reflect.Method; -import java.util.ConcurrentModificationException; -import java.util.Iterator; /** * A generic JUnit test which tests {@code add(int, Object)} operations on a @@ -43,7 +37,6 @@ import java.util.Iterator; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible(emulated = true) public class ListAddAtIndexTester<E> extends AbstractListTester<E> { @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) @CollectionSize.Require(absent = ZERO) @@ -73,19 +66,6 @@ public class ListAddAtIndexTester<E> extends AbstractListTester<E> { expectAdded(0, samples.e3); } - @CollectionFeature.Require(FAILS_FAST_ON_CONCURRENT_MODIFICATION) - @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) - public void testAddAtIndexConcurrentWithIteration() { - try { - Iterator<E> iterator = collection.iterator(); - getList().add(0, samples.e3); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - @ListFeature.Require(absent = SUPPORTS_ADD_WITH_INDEX) public void testAddAtIndex_unsupportedNotPresent() { try { @@ -158,9 +138,8 @@ public class ListAddAtIndexTester<E> extends AbstractListTester<E> { * {@link #testAddAtIndex_nullSupported()} so that tests can suppress it. See * {@link CollectionAddTester#getAddNullSupportedMethod()} for details. */ - @GwtIncompatible("reflection") public static Method getAddNullSupportedMethod() { - return Helpers.getMethod( + return Platform.getMethod( ListAddAtIndexTester.class, "testAddAtIndex_nullSupported"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListAddTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListAddTester.java index d974761..0fc8dd0 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListAddTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListAddTester.java @@ -20,8 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.ALLOW import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -39,7 +37,6 @@ import java.util.List; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible(emulated = true) public class ListAddTester<E> extends AbstractListTester<E> { @CollectionFeature.Require(SUPPORTS_ADD) @CollectionSize.Require(absent = ZERO) @@ -79,8 +76,7 @@ public class ListAddTester<E> extends AbstractListTester<E> { * {@link #testAdd_supportedNullPresent()} so that tests can suppress it. See * {@link CollectionAddTester#getAddNullSupportedMethod()} for details. */ - @GwtIncompatible("reflection") public static Method getAddSupportedNullPresentMethod() { - return Helpers.getMethod(ListAddTester.class, "testAdd_supportedNullPresent"); + return Platform.getMethod(ListAddTester.class, "testAdd_supportedNullPresent"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListCreationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListCreationTester.java index 257ffab..601eea4 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListCreationTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListCreationTester.java @@ -20,7 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.REJEC import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -33,7 +32,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Chris Povirk */ -@GwtCompatible public class ListCreationTester<E> extends AbstractListTester<E> { @CollectionFeature.Require(absent = REJECTS_DUPLICATES_AT_CREATION) @CollectionSize.Require(absent = {ZERO, ONE}) diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListEqualsTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListEqualsTester.java index c1adc6a..9e7e13e 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListEqualsTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListEqualsTester.java @@ -18,7 +18,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.MinimalSet; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -34,12 +33,11 @@ import java.util.List; * * @author George van den Driessche */ -@GwtCompatible public class ListEqualsTester<E> extends AbstractListTester<E> { public void testEquals_otherListWithSameElements() { assertTrue( "A List should equal any other List containing the same elements.", - getList().equals(new ArrayList<E>(getOrderedElements()))); + getList().equals(new ArrayList<E>(getSampleElements()))); } @CollectionSize.Require(absent = CollectionSize.ZERO) diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListGetTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListGetTester.java index eed4112..340e0cb 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListGetTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListGetTester.java @@ -16,8 +16,6 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; - /** * A generic JUnit test which tests {@code get()} operations on a list. Can't be * invoked directly; please see @@ -27,11 +25,10 @@ import com.google.common.annotations.GwtCompatible; * * @author Chris Povirk */ -@GwtCompatible public class ListGetTester<E> extends AbstractListTester<E> { public void testGet_valid() { // This calls get() on each index and checks the result: - expectContents(createOrderedArray()); + expectContents(createSamplesArray()); } public void testGet_negative() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListHashCodeTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListHashCodeTester.java index 30ed6c2..f7f3291 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListHashCodeTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListHashCodeTester.java @@ -16,10 +16,6 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; -import com.google.common.collect.testing.Helpers; - import java.lang.reflect.Method; /** @@ -29,11 +25,10 @@ import java.lang.reflect.Method; * * @author George van den Driessche */ -@GwtCompatible(emulated = true) public class ListHashCodeTester<E> extends AbstractListTester<E> { public void testHashCode() { int expectedHashCode = 1; - for (E element : getOrderedElements()) { + for (E element : getSampleElements()) { expectedHashCode = 31 * expectedHashCode + ((element == null) ? 0 : element.hashCode()); } @@ -47,8 +42,7 @@ public class ListHashCodeTester<E> extends AbstractListTester<E> { * list tests on unhashable objects can suppress it with * {@code FeatureSpecificTestSuiteBuilder.suppressing()}. */ - @GwtIncompatible("reflection") public static Method getHashCodeMethod() { - return Helpers.getMethod(ListHashCodeTester.class, "testHashCode"); + return Platform.getMethod(ListHashCodeTester.class, "testHashCode"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListIndexOfTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListIndexOfTester.java index 5da84e8..4c96c19 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListIndexOfTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListIndexOfTester.java @@ -20,7 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.REJEC import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -33,7 +32,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Chris Povirk */ -@GwtCompatible public class ListIndexOfTester<E> extends AbstractListIndexOfTester<E> { @Override protected int find(Object o) { return getList().indexOf(o); diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListLastIndexOfTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListLastIndexOfTester.java index 041a22d..a3f9812 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListLastIndexOfTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListLastIndexOfTester.java @@ -20,7 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.REJEC import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -33,7 +32,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Chris Povirk */ -@GwtCompatible public class ListLastIndexOfTester<E> extends AbstractListIndexOfTester<E> { @Override protected int find(Object o) { return getList().lastIndexOf(o); diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListListIteratorTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListListIteratorTester.java index 438634b..c8c8d6f 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListListIteratorTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListListIteratorTester.java @@ -24,8 +24,6 @@ import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_SE import static com.google.common.collect.testing.testers.Platform.listListIteratorTesterNumIterations; import static java.util.Collections.singleton; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.IteratorFeature; import com.google.common.collect.testing.ListIteratorTester; @@ -48,7 +46,6 @@ import java.util.concurrent.CopyOnWriteArraySet; * @author Chris Povirk * @author Kevin Bourrillion */ -@GwtCompatible(emulated = true) public class ListListIteratorTester<E> extends AbstractListTester<E> { // TODO: switch to DerivedIteratorTestSuiteBuilder @@ -71,7 +68,7 @@ public class ListListIteratorTester<E> extends AbstractListTester<E> { private void runListIteratorTest(Set<IteratorFeature> features) { new ListIteratorTester<E>( listListIteratorTesterNumIterations(), singleton(samples.e4), features, - Helpers.copyToList(getOrderedElements()), 0) { + Helpers.copyToList(getSampleElements()), 0) { { // TODO: don't set this universally stopTestingWhenAddThrowsException(); @@ -117,9 +114,8 @@ public class ListListIteratorTester<E> extends AbstractListTester<E> { * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6570575">Sun bug * 6570575</a> is fixed. */ - @GwtIncompatible("reflection") public static Method getListIteratorFullyModifiableMethod() { - return Helpers.getMethod( + return Platform.getMethod( ListListIteratorTester.class, "testListIterator_fullyModifiable"); } @@ -128,9 +124,8 @@ public class ListListIteratorTester<E> extends AbstractListTester<E> { * {@link #testListIterator_unmodifiable()} so that it can be suppressed in * GWT tests. */ - @GwtIncompatible("reflection") public static Method getListIteratorUnmodifiableMethod() { - return Helpers.getMethod( + return Platform.getMethod( ListListIteratorTester.class, "testListIterator_unmodifiable"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveAllTester.java index 8eb83ec..faeec46 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveAllTester.java @@ -16,11 +16,10 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; +import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE_ALL; import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -35,9 +34,8 @@ import com.google.common.collect.testing.features.CollectionSize; * @author George van den Driessche */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class ListRemoveAllTester<E> extends AbstractListTester<E> { - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_REMOVE_ALL) @CollectionSize.Require(absent = {ZERO, ONE}) public void testRemoveAll_duplicate() { ArrayWithDuplicate<E> arrayAndDuplicate = createArrayWithDuplicateElement(); diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveAtIndexTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveAtIndexTester.java index 47c1e95..cb37c67 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveAtIndexTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveAtIndexTester.java @@ -16,19 +16,14 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.features.CollectionFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_REMOVE_WITH_INDEX; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.Helpers; -import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.ListFeature; -import java.util.ConcurrentModificationException; -import java.util.Iterator; import java.util.List; /** @@ -40,7 +35,6 @@ import java.util.List; * * @author Chris Povirk */ -@GwtCompatible public class ListRemoveAtIndexTester<E> extends AbstractListTester<E> { @ListFeature.Require(absent = SUPPORTS_REMOVE_WITH_INDEX) @CollectionSize.Require(absent = ZERO) @@ -85,20 +79,6 @@ public class ListRemoveAtIndexTester<E> extends AbstractListTester<E> { runRemoveTest(getNumElements() / 2); } - @CollectionFeature.Require(FAILS_FAST_ON_CONCURRENT_MODIFICATION) - @ListFeature.Require(SUPPORTS_REMOVE_WITH_INDEX) - @CollectionSize.Require(absent = ZERO) - public void testRemoveAtIndexConcurrentWithIteration() { - try { - Iterator<E> iterator = collection.iterator(); - getList().remove(getNumElements() / 2); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - @ListFeature.Require(SUPPORTS_REMOVE_WITH_INDEX) @CollectionSize.Require(absent = ZERO) public void testRemoveAtIndex_last() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveTester.java index e338ca0..0094928 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListRemoveTester.java @@ -20,7 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.SUPPO import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -33,7 +32,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author George van den Driessche */ -@GwtCompatible public class ListRemoveTester<E> extends AbstractListTester<E> { @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(absent = {ZERO, ONE}) diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListRetainAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListRetainAllTester.java index 872e096..2ede664 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListRetainAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListRetainAllTester.java @@ -16,12 +16,11 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; +import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_RETAIN_ALL; import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -35,9 +34,8 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Chris Povirk */ -@GwtCompatible public class ListRetainAllTester<E> extends AbstractListTester<E> { - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(absent = {ZERO, ONE}) public void testRetainAll_duplicatesKept() { E[] array = createSamplesArray(); @@ -49,7 +47,7 @@ public class ListRetainAllTester<E> extends AbstractListTester<E> { } @SuppressWarnings("unchecked") - @CollectionFeature.Require(SUPPORTS_REMOVE) + @CollectionFeature.Require(SUPPORTS_RETAIN_ALL) @CollectionSize.Require(SEVERAL) public void testRetainAll_duplicatesRemoved() { E[] array = createSamplesArray(); diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListSetTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListSetTester.java index df3b8ad..2b3b7b0 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListSetTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListSetTester.java @@ -20,9 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.ALLOW import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_SET; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.ListFeature; @@ -38,7 +35,6 @@ import java.lang.reflect.Method; * * @author George van den Driessche */ -@GwtCompatible(emulated = true) public class ListSetTester<E> extends AbstractListTester<E> { @ListFeature.Require(SUPPORTS_SET) @CollectionSize.Require(absent = ZERO) @@ -149,8 +145,7 @@ public class ListSetTester<E> extends AbstractListTester<E> { * seems more likely that code would depend on that behavior than on the * other. Thus, we say the bug is in set(), which fails to support null. */ - @GwtIncompatible("reflection") public static Method getSetNullSupportedMethod() { - return Helpers.getMethod(ListSetTester.class, "testSet_null"); + return Platform.getMethod(ListSetTester.class, "testSet_null"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListSubListTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListSubListTester.java index e01dce5..7ba68ba 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListSubListTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListSubListTester.java @@ -16,8 +16,6 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.Helpers.getMethod; -import static com.google.common.collect.testing.features.CollectionFeature.SERIALIZABLE_INCLUDING_VIEWS; import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_ADD_WITH_INDEX; @@ -25,13 +23,9 @@ import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_RE import static com.google.common.collect.testing.features.ListFeature.SUPPORTS_SET; import static java.util.Collections.emptyList; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.Helpers; -import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.ListFeature; -import com.google.common.testing.SerializableTester; import java.lang.reflect.Method; import java.util.Arrays; @@ -49,7 +43,6 @@ import java.util.concurrent.CopyOnWriteArrayList; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible(emulated = true) public class ListSubListTester<E> extends AbstractListTester<E> { public void testSubList_startNegative() { try { @@ -178,7 +171,7 @@ public class ListSubListTester<E> extends AbstractListTester<E> { List<E> subList = getList().subList(0, 2).subList(1, 2); assertEquals("subList(0, 2).subList(1, 2) " + "should be a single-element list of the element at index 1", - Collections.singletonList(getOrderedElements().get(1)), subList); + Collections.singletonList(samples.e1), subList); } @CollectionSize.Require(absent = {ZERO}) @@ -305,22 +298,6 @@ public class ListSubListTester<E> extends AbstractListTester<E> { -1); } - @CollectionFeature.Require(SERIALIZABLE_INCLUDING_VIEWS) - public void testReserializeWholeSubList() { - SerializableTester.reserializeAndAssert(getList().subList(0, getNumElements())); - } - - @CollectionFeature.Require(SERIALIZABLE_INCLUDING_VIEWS) - public void testReserializeEmptySubList() { - SerializableTester.reserializeAndAssert(getList().subList(0, 0)); - } - - @CollectionFeature.Require(SERIALIZABLE_INCLUDING_VIEWS) - @CollectionSize.Require(absent = {ZERO, ONE}) - public void testReserializeSubList() { - SerializableTester.reserializeAndAssert(getList().subList(0, 2)); - } - /** * Returns the {@link Method} instance for * {@link #testSubList_originalListSetAffectsSubList()} so that tests @@ -329,9 +306,9 @@ public class ListSubListTester<E> extends AbstractListTester<E> { * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6570631">Sun bug * 6570631</a> is fixed. */ - @GwtIncompatible("reflection") public static Method getSubListOriginalListSetAffectsSubListMethod() { - return getMethod(ListSubListTester.class, "testSubList_originalListSetAffectsSubList"); + return Platform + .getMethod(ListSubListTester.class, "testSubList_originalListSetAffectsSubList"); } /** @@ -342,9 +319,10 @@ public class ListSubListTester<E> extends AbstractListTester<E> { * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6570631">Sun bug * 6570631</a> is fixed. */ - @GwtIncompatible("reflection") - public static Method getSubListOriginalListSetAffectsSubListLargeListMethod() { - return getMethod(ListSubListTester.class, "testSubList_originalListSetAffectsSubListLargeList"); + public static Method + getSubListOriginalListSetAffectsSubListLargeListMethod() { + return Platform + .getMethod(ListSubListTester.class, "testSubList_originalListSetAffectsSubListLargeList"); } /** @@ -355,9 +333,9 @@ public class ListSubListTester<E> extends AbstractListTester<E> { * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6570575">Sun bug * 6570575</a> is fixed. */ - @GwtIncompatible("reflection") public static Method getSubListSubListRemoveAffectsOriginalLargeListMethod() { - return getMethod(ListSubListTester.class, "testSubList_subListRemoveAffectsOriginalLargeList"); + return Platform.getMethod( + ListSubListTester.class, "testSubList_subListRemoveAffectsOriginalLargeList"); } /* diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/ListToArrayTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/ListToArrayTester.java index ca11aba..f990ffb 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/ListToArrayTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/ListToArrayTester.java @@ -18,7 +18,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionSize; import java.util.Arrays; @@ -32,27 +31,26 @@ import java.util.Arrays; * * @author Chris Povirk */ -@GwtCompatible public class ListToArrayTester<E> extends AbstractListTester<E> { // CollectionToArrayTester tests everything except ordering. public void testToArray_noArg() { Object[] actual = getList().toArray(); assertArrayEquals("toArray() order should match list", - createOrderedArray(), actual); + createSamplesArray(), actual); } @CollectionSize.Require(absent = ZERO) public void testToArray_tooSmall() { Object[] actual = getList().toArray(new Object[0]); assertArrayEquals("toArray(tooSmall) order should match list", - createOrderedArray(), actual); + createSamplesArray(), actual); } public void testToArray_largeEnough() { Object[] actual = getList().toArray(new Object[getNumElements()]); assertArrayEquals("toArray(largeEnough) order should match list", - createOrderedArray(), actual); + createSamplesArray(), actual); } private static void assertArrayEquals(String message, Object[] expected, diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapClearTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapClearTester.java index 2f341ff..302df11 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapClearTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapClearTester.java @@ -16,20 +16,13 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import static com.google.common.collect.testing.features.MapFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; -import static com.google.common.collect.testing.features.MapFeature.SUPPORTS_REMOVE; +import static com.google.common.collect.testing.features.MapFeature.SUPPORTS_CLEAR; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.MapFeature; -import java.util.ConcurrentModificationException; -import java.util.Iterator; -import java.util.Map.Entry; - /** * A generic JUnit test which tests {@code clear()} operations on a map. * Can't be invoked directly; please see @@ -40,58 +33,15 @@ import java.util.Map.Entry; * @author George van den Driessche * @author Chris Povirk */ -@GwtCompatible public class MapClearTester<K, V> extends AbstractMapTester<K, V> { - @MapFeature.Require(SUPPORTS_REMOVE) + @MapFeature.Require(SUPPORTS_CLEAR) public void testClear() { getMap().clear(); assertTrue("After clear(), a map should be empty.", getMap().isEmpty()); } - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, - SUPPORTS_REMOVE}) - @CollectionSize.Require(SEVERAL) - public void testClearConcurrentWithEntrySetIteration() { - try { - Iterator<Entry<K, V>> iterator = getMap().entrySet().iterator(); - getMap().clear(); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, - SUPPORTS_REMOVE}) - @CollectionSize.Require(SEVERAL) - public void testClearConcurrentWithKeySetIteration() { - try { - Iterator<K> iterator = getMap().keySet().iterator(); - getMap().clear(); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, - SUPPORTS_REMOVE}) - @CollectionSize.Require(SEVERAL) - public void testClearConcurrentWithValuesIteration() { - try { - Iterator<V> iterator = getMap().values().iterator(); - getMap().clear(); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @MapFeature.Require(absent = SUPPORTS_REMOVE) + @MapFeature.Require(absent = SUPPORTS_CLEAR) @CollectionSize.Require(absent = ZERO) public void testClear_unsupported() { try { @@ -103,7 +53,7 @@ public class MapClearTester<K, V> extends AbstractMapTester<K, V> { expectUnchanged(); } - @MapFeature.Require(absent = SUPPORTS_REMOVE) + @MapFeature.Require(absent = SUPPORTS_CLEAR) @CollectionSize.Require(ZERO) public void testClear_unsupportedByEmptyCollection() { try { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapContainsKeyTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapContainsKeyTester.java index 7a69636..cbfeaf4 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapContainsKeyTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapContainsKeyTester.java @@ -20,7 +20,6 @@ import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_KEYS; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_QUERIES; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; import com.google.common.collect.testing.WrongType; import com.google.common.collect.testing.features.CollectionSize; @@ -35,7 +34,6 @@ import com.google.common.collect.testing.features.MapFeature; * * @author George van den Driessche */ -@GwtCompatible public class MapContainsKeyTester<K, V> extends AbstractMapTester<K, V> { @CollectionSize.Require(absent = ZERO) public void testContains_yes() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapContainsValueTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapContainsValueTester.java index e587f67..7c44040 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapContainsValueTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapContainsValueTester.java @@ -19,7 +19,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.MapFeature.*; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; import com.google.common.collect.testing.WrongType; import com.google.common.collect.testing.features.CollectionSize; @@ -35,7 +34,6 @@ import com.google.common.collect.testing.features.MapFeature; * @author George van den Driessche * @author Chris Povirk */ -@GwtCompatible public class MapContainsValueTester<K, V> extends AbstractMapTester<K, V> { @CollectionSize.Require(absent = ZERO) public void testContains_yes() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapCreationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapCreationTester.java index 499a53b..00f8bfc 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapCreationTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapCreationTester.java @@ -22,14 +22,10 @@ import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_ import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_VALUES; import static com.google.common.collect.testing.features.MapFeature.REJECTS_DUPLICATES_AT_CREATION; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.AbstractMapTester; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.MapFeature; -import java.lang.reflect.Method; import java.util.Arrays; import java.util.List; import java.util.Map.Entry; @@ -44,7 +40,6 @@ import java.util.Map.Entry; * @author Chris Povirk * @author Kevin Bourrillion */ -@GwtCompatible(emulated = true) public class MapCreationTester<K, V> extends AbstractMapTester<K, V> { @MapFeature.Require(ALLOWS_NULL_KEYS) @CollectionSize.Require(absent = ZERO) @@ -126,13 +121,13 @@ public class MapCreationTester<K, V> extends AbstractMapTester<K, V> { private Entry<K, V>[] getEntriesMultipleNullKeys() { Entry<K, V>[] entries = createArrayWithNullKey(); - entries[0] = entry(null, entries[0].getValue()); + entries[0] = entries[getNullLocation()]; return entries; } private Entry<K, V>[] getEntriesMultipleNonNullKeys() { Entry<K, V>[] entries = createSamplesArray(); - entries[0] = entry(samples.e1.getKey(), samples.e0.getValue()); + entries[0] = samples.e1; return entries; } @@ -143,16 +138,4 @@ public class MapCreationTester<K, V> extends AbstractMapTester<K, V> { Arrays.asList(entries).subList(1, getNumElements()); expectContents(expectedWithDuplicateRemoved); } - - /** - * Returns the {@link Method} instance for {@link - * #testCreateWithNullKeyUnsupported()} so that tests can suppress it - * with {@code FeatureSpecificTestSuiteBuilder.suppressing()} until <a - * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5045147">Sun - * bug 5045147</a> is fixed. - */ - @GwtIncompatible("reflection") - public static Method getCreateWithNullKeyUnsupportedMethod() { - return Helpers.getMethod(MapCreationTester.class, "testCreateWithNullKeyUnsupported"); - } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapEqualsTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapEqualsTester.java index b73c523..66b71e7 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapEqualsTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapEqualsTester.java @@ -19,7 +19,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_KEYS; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_VALUES; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionSize; @@ -38,7 +37,6 @@ import java.util.Map.Entry; * @author George van den Driessche * @author Chris Povirk */ -@GwtCompatible public class MapEqualsTester<K, V> extends AbstractMapTester<K, V> { public void testEquals_otherMapWithSameEntries() { assertTrue( diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapGetTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapGetTester.java index a1c934d..9860931 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapGetTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapGetTester.java @@ -20,7 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.ALLOW import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_KEYS; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; import com.google.common.collect.testing.WrongType; import com.google.common.collect.testing.features.CollectionFeature; @@ -37,7 +36,6 @@ import com.google.common.collect.testing.features.MapFeature; * @author Kevin Bourrillion * @author Chris Povirk */ -@GwtCompatible public class MapGetTester<K, V> extends AbstractMapTester<K, V> { @CollectionSize.Require(absent = ZERO) public void testGet_yes() { @@ -61,7 +59,7 @@ public class MapGetTester<K, V> extends AbstractMapTester<K, V> { } catch (NullPointerException tolerated) { } } - + @MapFeature.Require(ALLOWS_NULL_KEYS) @CollectionSize.Require(absent = ZERO) public void testGet_nonNullWhenNullContained() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapHashCodeTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapHashCodeTester.java index c2483bc..ccfde43 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapHashCodeTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapHashCodeTester.java @@ -19,7 +19,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_KEYS; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_VALUES; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.MapFeature; @@ -35,7 +34,6 @@ import java.util.Map; * @author George van den Driessche * @author Chris Povirk */ -@GwtCompatible public class MapHashCodeTester<K, V> extends AbstractMapTester<K, V> { public void testHashCode() { int expectedHashCode = 0; diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapIsEmptyTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapIsEmptyTester.java index 8eb31da..8d27eb7 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapIsEmptyTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapIsEmptyTester.java @@ -18,7 +18,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; import com.google.common.collect.testing.features.CollectionSize; @@ -31,7 +30,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Kevin Bourrillion */ -@GwtCompatible public class MapIsEmptyTester<K, V> extends AbstractMapTester<K, V> { @CollectionSize.Require(ZERO) public void testIsEmpty_yes() { @@ -42,4 +40,4 @@ public class MapIsEmptyTester<K, V> extends AbstractMapTester<K, V> { public void testIsEmpty_no() { assertFalse("isEmpty() should return false", getMap().isEmpty()); } -} +}
\ No newline at end of file diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/NavigableMapNavigationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapNavigationTester.java index 26f9918..8c2bf60 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/NavigableMapNavigationTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapNavigationTester.java @@ -31,15 +31,16 @@ import java.util.Collections; import java.util.List; import java.util.Map.Entry; import java.util.NavigableMap; +import java.util.NoSuchElementException; /** * A generic JUnit test which tests operations on a NavigableMap. Can't be - * invoked directly; please see {@code NavigableMapTestSuiteBuilder}. + * invoked directly; please see {@code MapTestSuiteBuilder}. * * @author Jesse Wilson * @author Louis Wasserman */ -public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> { +public class MapNavigationTester<K, V> extends AbstractMapTester<K, V> { private NavigableMap<K, V> navigableMap; private List<Entry<K, V>> entries; @@ -78,6 +79,11 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> @CollectionSize.Require(ZERO) public void testEmptyMapFirst() { assertNull(navigableMap.firstEntry()); + try { + navigableMap.firstKey(); + fail(); + } catch (NoSuchElementException e) { + } } @MapFeature.Require(SUPPORTS_REMOVE) @@ -101,7 +107,12 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> @CollectionSize.Require(ZERO) public void testEmptyMapLast() { assertNull(navigableMap.lastEntry()); - } + try { + assertNull(navigableMap.lastKey()); + fail(); + } catch (NoSuchElementException e) { + } + } @MapFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(ZERO) @@ -112,6 +123,7 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> @CollectionSize.Require(ONE) public void testSingletonMapFirst() { assertEquals(a, navigableMap.firstEntry()); + assertEquals(a.getKey(), navigableMap.firstKey()); } @MapFeature.Require(SUPPORTS_REMOVE) @@ -136,6 +148,7 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> @CollectionSize.Require(ONE) public void testSingletonMapLast() { assertEquals(a, navigableMap.lastEntry()); + assertEquals(a.getKey(), navigableMap.lastKey()); } @MapFeature.Require(SUPPORTS_REMOVE) @@ -148,6 +161,7 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> @CollectionSize.Require(SEVERAL) public void testFirst() { assertEquals(a, navigableMap.firstEntry()); + assertEquals(a.getKey(), navigableMap.firstKey()); } @MapFeature.Require(SUPPORTS_REMOVE) @@ -166,7 +180,7 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> } catch (UnsupportedOperationException e) { } } - + @CollectionSize.Require(SEVERAL) public void testLower() { resetWithHole(); @@ -177,7 +191,7 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> assertEquals(a, navigableMap.lowerEntry(c.getKey())); assertEquals(a.getKey(), navigableMap.lowerKey(c.getKey())); } - + @CollectionSize.Require(SEVERAL) public void testFloor() { resetWithHole(); @@ -210,12 +224,13 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> assertEquals(null, navigableMap.higherEntry(c.getKey())); assertEquals(null, navigableMap.higherKey(c.getKey())); } - + @CollectionSize.Require(SEVERAL) public void testLast() { assertEquals(c, navigableMap.lastEntry()); + assertEquals(c.getKey(), navigableMap.lastKey()); } - + @MapFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(SEVERAL) public void testPollLast() { @@ -232,7 +247,7 @@ public class NavigableMapNavigationTester<K, V> extends AbstractMapTester<K, V> fail(); } catch (UnsupportedOperationException e) { } - } + } @CollectionSize.Require(SEVERAL) public void testDescendingNavigation() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapPutAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapPutAllTester.java index 41eec75..d36e736 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapPutAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapPutAllTester.java @@ -19,22 +19,15 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_KEYS; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_VALUES; -import static com.google.common.collect.testing.features.MapFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; -import static com.google.common.collect.testing.features.MapFeature.SUPPORTS_PUT; +import static com.google.common.collect.testing.features.MapFeature.SUPPORTS_PUT_ALL; import static java.util.Collections.singletonList; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.AbstractMapTester; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.MapFeature; -import java.lang.reflect.Method; import java.util.Collections; -import java.util.ConcurrentModificationException; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -51,7 +44,6 @@ import java.util.Map.Entry; * @author Kevin Bourrillion */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible(emulated = true) public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { private List<Entry<K, V>> containsNullKey; private List<Entry<K, V>> containsNullValue; @@ -62,13 +54,13 @@ public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { containsNullValue = singletonList(entry(samples.e3.getKey(), null)); } - @MapFeature.Require(SUPPORTS_PUT) + @MapFeature.Require(SUPPORTS_PUT_ALL) public void testPutAll_supportedNothing() { getMap().putAll(emptyMap()); expectUnchanged(); } - @MapFeature.Require(absent = SUPPORTS_PUT) + @MapFeature.Require(absent = SUPPORTS_PUT_ALL) public void testPutAll_unsupportedNothing() { try { getMap().putAll(emptyMap()); @@ -77,13 +69,13 @@ public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { expectUnchanged(); } - @MapFeature.Require(SUPPORTS_PUT) + @MapFeature.Require(SUPPORTS_PUT_ALL) public void testPutAll_supportedNonePresent() { putAll(createDisjointCollection()); expectAdded(samples.e3, samples.e4); } - @MapFeature.Require(absent = SUPPORTS_PUT) + @MapFeature.Require(absent = SUPPORTS_PUT_ALL) public void testPutAll_unsupportedNonePresent() { try { putAll(createDisjointCollection()); @@ -94,28 +86,14 @@ public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { expectMissing(samples.e3, samples.e4); } - @MapFeature.Require(SUPPORTS_PUT) + @MapFeature.Require(SUPPORTS_PUT_ALL) @CollectionSize.Require(absent = ZERO) public void testPutAll_supportedSomePresent() { putAll(MinimalCollection.of(samples.e3, samples.e0)); expectAdded(samples.e3); } - @MapFeature.Require({ FAILS_FAST_ON_CONCURRENT_MODIFICATION, - SUPPORTS_PUT }) - @CollectionSize.Require(absent = ZERO) - public void testPutAllSomePresentConcurrentWithEntrySetIteration() { - try { - Iterator<Entry<K, V>> iterator = getMap().entrySet().iterator(); - putAll(MinimalCollection.of(samples.e3, samples.e0)); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @MapFeature.Require(absent = SUPPORTS_PUT) + @MapFeature.Require(absent = SUPPORTS_PUT_ALL) @CollectionSize.Require(absent = ZERO) public void testPutAll_unsupportedSomePresent() { try { @@ -126,7 +104,7 @@ public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { expectUnchanged(); } - @MapFeature.Require(absent = SUPPORTS_PUT) + @MapFeature.Require(absent = SUPPORTS_PUT_ALL) @CollectionSize.Require(absent = ZERO) public void testPutAll_unsupportedAllPresent() { try { @@ -136,16 +114,16 @@ public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { expectUnchanged(); } - @MapFeature.Require({SUPPORTS_PUT, + @MapFeature.Require({SUPPORTS_PUT_ALL, ALLOWS_NULL_KEYS}) public void testPutAll_nullKeySupported() { putAll(containsNullKey); expectAdded(containsNullKey.get(0)); } - @MapFeature.Require(value = SUPPORTS_PUT, + @MapFeature.Require(value = SUPPORTS_PUT_ALL, absent = ALLOWS_NULL_KEYS) - public void testPutAll_nullKeyUnsupported() { + public void testAdd_nullKeyUnsupported() { try { putAll(containsNullKey); fail("putAll(containsNullKey) should throw"); @@ -157,16 +135,16 @@ public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { "putAll(containsNullKey)"); } - @MapFeature.Require({SUPPORTS_PUT, + @MapFeature.Require({SUPPORTS_PUT_ALL, ALLOWS_NULL_VALUES}) public void testPutAll_nullValueSupported() { putAll(containsNullValue); expectAdded(containsNullValue.get(0)); } - @MapFeature.Require(value = SUPPORTS_PUT, + @MapFeature.Require(value = SUPPORTS_PUT_ALL, absent = ALLOWS_NULL_VALUES) - public void testPutAll_nullValueUnsupported() { + public void testAdd_nullValueUnsupported() { try { putAll(containsNullValue); fail("putAll(containsNullValue) should throw"); @@ -178,7 +156,7 @@ public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { "putAll(containsNullValue)"); } - @MapFeature.Require(SUPPORTS_PUT) + @MapFeature.Require(SUPPORTS_PUT_ALL) public void testPutAll_nullCollectionReference() { try { getMap().putAll(null); @@ -198,16 +176,4 @@ public class MapPutAllTester<K, V> extends AbstractMapTester<K, V> { } getMap().putAll(map); } - - /** - * Returns the {@link Method} instance for {@link - * #testPutAll_nullKeyUnsupported()} so that tests can suppress it with {@code - * FeatureSpecificTestSuiteBuilder.suppressing()} until <a - * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5045147">Sun - * bug 5045147</a> is fixed. - */ - @GwtIncompatible("reflection") - public static Method getPutAllNullKeyUnsupportedMethod() { - return Helpers.getMethod(MapPutAllTester.class, "testPutAll_nullKeyUnsupported"); - } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapPutTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapPutTester.java index 7c242d5..69b57ca 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapPutTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapPutTester.java @@ -19,19 +19,12 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_KEYS; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_VALUES; -import static com.google.common.collect.testing.features.MapFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; import static com.google.common.collect.testing.features.MapFeature.SUPPORTS_PUT; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; import com.google.common.collect.testing.AbstractMapTester; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.MapFeature; -import java.lang.reflect.Method; -import java.util.ConcurrentModificationException; -import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; @@ -46,7 +39,6 @@ import java.util.Map.Entry; * @author Kevin Bourrillion */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible(emulated = true) public class MapPutTester<K, V> extends AbstractMapTester<K, V> { private Entry<K, V> nullKeyEntry; private Entry<K, V> nullValueEntry; @@ -67,45 +59,6 @@ public class MapPutTester<K, V> extends AbstractMapTester<K, V> { expectAdded(samples.e3); } - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, SUPPORTS_PUT}) - @CollectionSize.Require(absent = ZERO) - public void testPutAbsentConcurrentWithEntrySetIteration() { - try { - Iterator<Entry<K, V>> iterator = getMap().entrySet().iterator(); - put(samples.e3); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, SUPPORTS_PUT}) - @CollectionSize.Require(absent = ZERO) - public void testPutAbsentConcurrentWithKeySetIteration() { - try { - Iterator<K> iterator = getMap().keySet().iterator(); - put(samples.e3); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, SUPPORTS_PUT}) - @CollectionSize.Require(absent = ZERO) - public void testPutAbsentConcurrentWithValueIteration() { - try { - Iterator<V> iterator = getMap().values().iterator(); - put(samples.e3); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - @MapFeature.Require(absent = SUPPORTS_PUT) public void testPut_unsupportedNotPresent() { try { @@ -240,17 +193,4 @@ public class MapPutTester<K, V> extends AbstractMapTester<K, V> { private V put(Map.Entry<K, V> entry) { return getMap().put(entry.getKey(), entry.getValue()); } - - /** - * Returns the {@link Method} instance for {@link - * #testPut_nullKeyUnsupported()} so that tests of {@link java.util.TreeMap} - * can suppress it with {@code FeatureSpecificTestSuiteBuilder.suppressing()} - * until <a - * href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5045147">Sun bug - * 5045147</a> is fixed. - */ - @GwtIncompatible("reflection") - public static Method getPutNullKeyUnsupportedMethod() { - return Helpers.getMethod(MapPutTester.class, "testPut_nullKeyUnsupported"); - } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapRemoveTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapRemoveTester.java index 4a7a5b4..6ba33ce 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapRemoveTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapRemoveTester.java @@ -16,23 +16,16 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_KEYS; import static com.google.common.collect.testing.features.MapFeature.ALLOWS_NULL_QUERIES; -import static com.google.common.collect.testing.features.MapFeature.FAILS_FAST_ON_CONCURRENT_MODIFICATION; import static com.google.common.collect.testing.features.MapFeature.SUPPORTS_REMOVE; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; import com.google.common.collect.testing.WrongType; import com.google.common.collect.testing.features.CollectionSize; import com.google.common.collect.testing.features.MapFeature; -import java.util.ConcurrentModificationException; -import java.util.Iterator; -import java.util.Map.Entry; - /** * A generic JUnit test which tests {@code remove} operations on a map. Can't be * invoked directly; please see @@ -44,7 +37,6 @@ import java.util.Map.Entry; * @author Chris Povirk */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class MapRemoveTester<K, V> extends AbstractMapTester<K, V> { @MapFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(absent = ZERO) @@ -57,48 +49,6 @@ public class MapRemoveTester<K, V> extends AbstractMapTester<K, V> { expectMissing(samples.e0); } - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, - SUPPORTS_REMOVE}) - @CollectionSize.Require(SEVERAL) - public void testRemovePresentConcurrentWithEntrySetIteration() { - try { - Iterator<Entry<K, V>> iterator = getMap().entrySet().iterator(); - getMap().remove(samples.e0.getKey()); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, - SUPPORTS_REMOVE}) - @CollectionSize.Require(SEVERAL) - public void testRemovePresentConcurrentWithKeySetIteration() { - try { - Iterator<K> iterator = getMap().keySet().iterator(); - getMap().remove(samples.e0.getKey()); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - - @MapFeature.Require({FAILS_FAST_ON_CONCURRENT_MODIFICATION, - SUPPORTS_REMOVE}) - @CollectionSize.Require(SEVERAL) - public void testRemovePresentConcurrentWithValuesIteration() { - try { - Iterator<V> iterator = getMap().values().iterator(); - getMap().remove(samples.e0.getKey()); - iterator.next(); - fail("Expected ConcurrentModificationException"); - } catch (ConcurrentModificationException expected) { - // success - } - } - @MapFeature.Require(SUPPORTS_REMOVE) public void testRemove_notPresent() { assertNull("remove(notPresent) should return null", diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapSerializationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapSerializationTester.java deleted file mode 100644 index 3d5c675..0000000 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapSerializationTester.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2012 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.common.collect.testing.testers; - -import static com.google.common.collect.testing.features.CollectionFeature.SERIALIZABLE; - -import com.google.common.annotations.GwtCompatible; -import com.google.common.collect.testing.AbstractMapTester; -import com.google.common.collect.testing.features.CollectionFeature; -import com.google.common.testing.SerializableTester; - -/** - * Basic serialization test for maps. - * - * @author Louis Wasserman - */ -@GwtCompatible -public class MapSerializationTester<K, V> extends AbstractMapTester<K, V> { - @CollectionFeature.Require(SERIALIZABLE) - public void testReserializeMap() { - SerializableTester.reserializeAndAssert(getMap()); - } -} diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/MapSizeTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/MapSizeTester.java index f3df9f0..6b3439a 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/MapSizeTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/MapSizeTester.java @@ -16,7 +16,6 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.AbstractMapTester; /** @@ -28,9 +27,8 @@ import com.google.common.collect.testing.AbstractMapTester; * * @author George van den Driessche */ -@GwtCompatible public class MapSizeTester<K, V> extends AbstractMapTester<K, V> { public void testSize() { assertEquals("size():", getNumElements(), getMap().size()); } -} +}
\ No newline at end of file diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/Platform.java b/guava-testlib/src/com/google/common/collect/testing/testers/Platform.java index cd3eb84..ba4d3f0 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/Platform.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/Platform.java @@ -16,17 +16,28 @@ package com.google.common.collect.testing.testers; -import com.google.common.annotations.GwtCompatible; +import java.lang.reflect.Method; /** * This class is emulated in GWT. * * @author Hayward Chan */ -@GwtCompatible class Platform { /** + * Delegate to {@link Class#getMethod(String, Class[])}. Not + * usable in GWT. + */ + static Method getMethod(Class<?> clazz, String methodName) { + try { + return clazz.getMethod(methodName); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + } + + /** * Format the template with args, only supports the placeholder * {@code %s}. */ diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/QueueElementTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/QueueElementTester.java index 26570ed..7c5ce41 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/QueueElementTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/QueueElementTester.java @@ -21,7 +21,6 @@ import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -36,7 +35,6 @@ import java.util.NoSuchElementException; * * @author Jared Levy */ -@GwtCompatible public class QueueElementTester<E> extends AbstractQueueTester<E> { @CollectionSize.Require(ZERO) public void testElement_empty() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/QueueOfferTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/QueueOfferTester.java index d9a67ea..f4fa792 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/QueueOfferTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/QueueOfferTester.java @@ -19,7 +19,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; /** @@ -32,7 +31,6 @@ import com.google.common.collect.testing.features.CollectionFeature; * @author Jared Levy */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class QueueOfferTester<E> extends AbstractQueueTester<E> { @CollectionFeature.Require(SUPPORTS_ADD) public void testOffer_supportedNotPresent() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/QueuePeekTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/QueuePeekTester.java index c9c045e..341e68d 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/QueuePeekTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/QueuePeekTester.java @@ -21,7 +21,6 @@ import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -34,7 +33,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author Jared Levy */ -@GwtCompatible public class QueuePeekTester<E> extends AbstractQueueTester<E> { @CollectionSize.Require(ZERO) public void testPeek_empty() { diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/QueuePollTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/QueuePollTester.java index 14c2803..a447bb0 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/QueuePollTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/QueuePollTester.java @@ -22,7 +22,6 @@ import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -36,7 +35,6 @@ import com.google.common.collect.testing.features.CollectionSize; * @author Jared Levy */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class QueuePollTester<E> extends AbstractQueueTester<E> { @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(ZERO) diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/QueueRemoveTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/QueueRemoveTester.java index 718f63b..07596f4 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/QueueRemoveTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/QueueRemoveTester.java @@ -22,7 +22,6 @@ import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -38,7 +37,6 @@ import java.util.NoSuchElementException; * @author Jared Levy */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class QueueRemoveTester<E> extends AbstractQueueTester<E> { @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(ZERO) diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/SetAddAllTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SetAddAllTester.java index 638d6ef..0dac713 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/SetAddAllTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/SetAddAllTester.java @@ -16,10 +16,9 @@ package com.google.common.collect.testing.testers; -import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD; +import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD_ALL; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.MinimalCollection; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -34,9 +33,8 @@ import com.google.common.collect.testing.features.CollectionSize; * @author Kevin Bourrillion */ @SuppressWarnings("unchecked") // too many "unchecked generic array creations" -@GwtCompatible public class SetAddAllTester<E> extends AbstractSetTester<E> { - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) @CollectionSize.Require(absent = ZERO) public void testAddAll_supportedSomePresent() { assertTrue("add(somePresent) should return true", @@ -44,7 +42,7 @@ public class SetAddAllTester<E> extends AbstractSetTester<E> { expectAdded(samples.e3); } - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) public void testAddAll_withDuplicates() { MinimalCollection<E> elementsToAdd = MinimalCollection.of(samples.e3, samples.e4, samples.e3, samples.e4); @@ -53,7 +51,7 @@ public class SetAddAllTester<E> extends AbstractSetTester<E> { expectAdded(samples.e3, samples.e4); } - @CollectionFeature.Require(SUPPORTS_ADD) + @CollectionFeature.Require(SUPPORTS_ADD_ALL) @CollectionSize.Require(absent = ZERO) public void testAddAll_supportedAllPresent() { assertFalse("add(allPresent) should return false", diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/SetAddTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SetAddTester.java index 216411e..d9d8601 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/SetAddTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/SetAddTester.java @@ -20,9 +20,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.ALLOW import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -37,7 +34,6 @@ import java.lang.reflect.Method; * * @author Kevin Bourrillion */ -@GwtCompatible(emulated = true) public class SetAddTester<E> extends AbstractSetTester<E> { @CollectionFeature.Require(SUPPORTS_ADD) @CollectionSize.Require(absent = ZERO) @@ -60,8 +56,7 @@ public class SetAddTester<E> extends AbstractSetTester<E> { * {@link #testAdd_supportedNullPresent()} so that tests can suppress it. See * {@link CollectionAddTester#getAddNullSupportedMethod()} for details. */ - @GwtIncompatible("reflection") public static Method getAddSupportedNullPresentMethod() { - return Helpers.getMethod(SetAddTester.class, "testAdd_supportedNullPresent"); + return Platform.getMethod(SetAddTester.class, "testAdd_supportedNullPresent"); } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/SetCreationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SetCreationTester.java index f81314d..50d83c7 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/SetCreationTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/SetCreationTester.java @@ -21,7 +21,6 @@ import static com.google.common.collect.testing.features.CollectionFeature.REJEC import static com.google.common.collect.testing.features.CollectionSize.ONE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -37,7 +36,6 @@ import java.util.List; * * @author Chris Povirk */ -@GwtCompatible public class SetCreationTester<E> extends AbstractSetTester<E> { @CollectionFeature.Require(value = ALLOWS_NULL_VALUES, absent = REJECTS_DUPLICATES_AT_CREATION) diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/SetEqualsTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SetEqualsTester.java index 9989d2d..a783a44 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/SetEqualsTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/SetEqualsTester.java @@ -18,7 +18,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.MinimalSet; import com.google.common.collect.testing.features.CollectionFeature; @@ -34,7 +33,6 @@ import java.util.Set; * * @author George van den Driessche */ -@GwtCompatible public class SetEqualsTester<E> extends AbstractSetTester<E> { public void testEquals_otherSetWithSameElements() { assertTrue( diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/SetHashCodeTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SetHashCodeTester.java index 09c6f5d..e8fc705 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/SetHashCodeTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/SetHashCodeTester.java @@ -18,9 +18,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; -import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -34,7 +31,6 @@ import java.util.Collection; * * @author George van den Driessche */ -@GwtCompatible(emulated = true) public class SetHashCodeTester<E> extends AbstractSetTester<E> { public void testHashCode() { int expectedHashCode = 0; @@ -69,10 +65,9 @@ public class SetHashCodeTester<E> extends AbstractSetTester<E> { * unhashable objects can suppress it with * {@code FeatureSpecificTestSuiteBuilder.suppressing()}. */ - @GwtIncompatible("reflection") public static Method[] getHashCodeMethods() { return new Method[]{ - Helpers.getMethod(SetHashCodeTester.class, "testHashCode"), - Helpers.getMethod(SetHashCodeTester.class, "testHashCode_containingNull") }; + Platform.getMethod(SetHashCodeTester.class, "testHashCode"), + Platform.getMethod(SetHashCodeTester.class, "testHashCode_containingNull") }; } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/NavigableSetNavigationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SetNavigationTester.java index 14c6a47..a35595a 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/NavigableSetNavigationTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/SetNavigationTester.java @@ -25,22 +25,21 @@ import com.google.common.collect.testing.Helpers; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.NavigableSet; -import java.util.TreeSet; +import java.util.NoSuchElementException; /** * A generic JUnit test which tests operations on a NavigableSet. Can't be - * invoked directly; please see {@code NavigableSetTestSuiteBuilder}. + * invoked directly; please see {@code SetTestSuiteBuilder}. * * @author Jesse Wilson * @author Louis Wasserman */ -public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { +public class SetNavigationTester<E> extends AbstractSetTester<E> { private NavigableSet<E> navigableSet; private List<E> values; @@ -64,7 +63,7 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { } } } - + /** * Resets the contents of navigableSet to have elements a, c, for the * navigation tests. @@ -74,6 +73,15 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { navigableSet = (NavigableSet<E>) getSet(); } + @CollectionSize.Require(ZERO) + public void testEmptySetFirst() { + try { + navigableSet.first(); + fail(); + } catch (NoSuchElementException e) { + } + } + @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(ZERO) public void testEmptySetPollFirst() { @@ -88,12 +96,26 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { assertNull(navigableSet.higher(samples.e0)); } + @CollectionSize.Require(ZERO) + public void testEmptySetLast() { + try { + navigableSet.last(); + fail(); + } catch (NoSuchElementException e) { + } + } + @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(ZERO) public void testEmptySetPollLast() { assertNull(navigableSet.pollLast()); } + @CollectionSize.Require(ONE) + public void testSingletonSetFirst() { + assertEquals(a, navigableSet.first()); + } + @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(ONE) public void testSingletonSetPollFirst() { @@ -109,6 +131,11 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { assertNull(navigableSet.higher(samples.e0)); } + @CollectionSize.Require(ONE) + public void testSingletonSetLast() { + assertEquals(a, navigableSet.last()); + } + @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(ONE) public void testSingletonSetPollLast() { @@ -116,6 +143,11 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { assertTrue(navigableSet.isEmpty()); } + @CollectionSize.Require(SEVERAL) + public void testFirst() { + assertEquals(a, navigableSet.first()); + } + @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(SEVERAL) public void testPollFirst() { @@ -134,15 +166,14 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { } @CollectionSize.Require(SEVERAL) - public void testLowerHole() { + public void testLower() { resetWithHole(); assertEquals(null, navigableSet.lower(a)); assertEquals(a, navigableSet.lower(b)); assertEquals(a, navigableSet.lower(c)); } - @CollectionSize.Require(SEVERAL) - public void testFloorHole() { + public void testFloor() { resetWithHole(); assertEquals(a, navigableSet.floor(a)); assertEquals(a, navigableSet.floor(b)); @@ -150,7 +181,7 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { } @CollectionSize.Require(SEVERAL) - public void testCeilingHole() { + public void testCeiling() { resetWithHole(); assertEquals(a, navigableSet.ceiling(a)); assertEquals(c, navigableSet.ceiling(b)); @@ -158,44 +189,16 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { } @CollectionSize.Require(SEVERAL) - public void testHigherHole() { + public void testHigher() { resetWithHole(); assertEquals(c, navigableSet.higher(a)); assertEquals(c, navigableSet.higher(b)); assertEquals(null, navigableSet.higher(c)); } - /* - * TODO(cpovirk): make "too small" and "too large" elements available for better navigation - * testing. At that point, we may be able to eliminate the "hole" tests, which would mean that - * ContiguousSet's tests would no longer need to suppress them. - */ - @CollectionSize.Require(SEVERAL) - public void testLower() { - assertEquals(null, navigableSet.lower(a)); - assertEquals(a, navigableSet.lower(b)); - assertEquals(b, navigableSet.lower(c)); - } - @CollectionSize.Require(SEVERAL) - public void testFloor() { - assertEquals(a, navigableSet.floor(a)); - assertEquals(b, navigableSet.floor(b)); - assertEquals(c, navigableSet.floor(c)); - } - - @CollectionSize.Require(SEVERAL) - public void testCeiling() { - assertEquals(a, navigableSet.ceiling(a)); - assertEquals(b, navigableSet.ceiling(b)); - assertEquals(c, navigableSet.ceiling(c)); - } - - @CollectionSize.Require(SEVERAL) - public void testHigher() { - assertEquals(b, navigableSet.higher(a)); - assertEquals(c, navigableSet.higher(b)); - assertEquals(null, navigableSet.higher(c)); + public void testLast() { + assertEquals(c, navigableSet.last()); } @CollectionFeature.Require(SUPPORTS_REMOVE) @@ -224,34 +227,4 @@ public class NavigableSetNavigationTester<E> extends AbstractSetTester<E> { Collections.reverse(descending); assertEquals(values, descending); } - - public void testEmptySubSet() { - NavigableSet<E> empty = navigableSet.subSet(samples.e0, false, samples.e0, false); - assertEquals(new TreeSet<E>(), empty); - } - - /* - * TODO(cpovirk): more testing of subSet/headSet/tailSet/descendingSet? and/or generate derived - * suites? - */ - - /** - * Returns the {@link Method} instances for the test methods in this class that create a set with - * a "hole" in it so that set tests of {@code ContiguousSet} can suppress them with {@code - * FeatureSpecificTestSuiteBuilder.suppressing()}. - */ - /* - * TODO(cpovirk): or we could make HOLES_FORBIDDEN a feature. Or we could declare that - * implementations are permitted to throw IAE if a hole is requested, and we could update - * test*Hole to permit IAE. (But might this ignore genuine bugs?) But see the TODO above - * testLower, which could make this all unnecessary - */ - public static Method[] getHoleMethods() { - return new Method[] { - Helpers.getMethod(NavigableSetNavigationTester.class, "testLowerHole"), - Helpers.getMethod(NavigableSetNavigationTester.class, "testFloorHole"), - Helpers.getMethod(NavigableSetNavigationTester.class, "testCeilingHole"), - Helpers.getMethod(NavigableSetNavigationTester.class, "testHigherHole"), - }; - } } diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/SetRemoveTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SetRemoveTester.java index ffc5044..1310cff 100644 --- a/guava-testlib/src/com/google/common/collect/testing/testers/SetRemoveTester.java +++ b/guava-testlib/src/com/google/common/collect/testing/testers/SetRemoveTester.java @@ -19,7 +19,6 @@ package com.google.common.collect.testing.testers; import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_REMOVE; import static com.google.common.collect.testing.features.CollectionSize.ZERO; -import com.google.common.annotations.GwtCompatible; import com.google.common.collect.testing.features.CollectionFeature; import com.google.common.collect.testing.features.CollectionSize; @@ -32,7 +31,6 @@ import com.google.common.collect.testing.features.CollectionSize; * * @author George van den Driessche */ -@GwtCompatible public class SetRemoveTester<E> extends AbstractSetTester<E> { @CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(absent = ZERO) diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/SortedMapNavigationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SortedMapNavigationTester.java deleted file mode 100644 index 9552a41..0000000 --- a/guava-testlib/src/com/google/common/collect/testing/testers/SortedMapNavigationTester.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2010 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.common.collect.testing.testers; - -import static com.google.common.collect.testing.features.CollectionSize.ONE; -import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; -import static com.google.common.collect.testing.features.CollectionSize.ZERO; - -import com.google.common.annotations.GwtCompatible; -import com.google.common.collect.testing.AbstractMapTester; -import com.google.common.collect.testing.Helpers; -import com.google.common.collect.testing.features.CollectionSize; - -import java.util.Collections; -import java.util.List; -import java.util.Map.Entry; -import java.util.NoSuchElementException; -import java.util.SortedMap; - -/** - * A generic JUnit test which tests operations on a SortedMap. Can't be - * invoked directly; please see {@code SortedMapTestSuiteBuilder}. - * - * @author Jesse Wilson - * @author Louis Wasserman - */ -@GwtCompatible -public class SortedMapNavigationTester<K, V> extends AbstractMapTester<K, V> { - - private SortedMap<K, V> navigableMap; - private Entry<K, V> a; - private Entry<K, V> c; - - @Override public void setUp() throws Exception { - super.setUp(); - navigableMap = (SortedMap<K, V>) getMap(); - List<Entry<K, V>> entries = Helpers.copyToList(getSubjectGenerator().getSampleElements( - getSubjectGenerator().getCollectionSize().getNumElements())); - Collections.sort(entries, Helpers.<K, V>entryComparator(navigableMap.comparator())); - - // some tests assume SEVERAL == 3 - if (entries.size() >= 1) { - a = entries.get(0); - if (entries.size() >= 3) { - c = entries.get(2); - } - } - } - - @CollectionSize.Require(ZERO) - public void testEmptyMapFirst() { - try { - navigableMap.firstKey(); - fail(); - } catch (NoSuchElementException e) { - } - } - - @CollectionSize.Require(ZERO) - public void testEmptyMapLast() { - try { - assertNull(navigableMap.lastKey()); - fail(); - } catch (NoSuchElementException e) { - } - } - - @CollectionSize.Require(ONE) - public void testSingletonMapFirst() { - assertEquals(a.getKey(), navigableMap.firstKey()); - } - - @CollectionSize.Require(ONE) - public void testSingletonMapLast() { - assertEquals(a.getKey(), navigableMap.lastKey()); - } - - @CollectionSize.Require(SEVERAL) - public void testFirst() { - assertEquals(a.getKey(), navigableMap.firstKey()); - } - - @CollectionSize.Require(SEVERAL) - public void testLast() { - assertEquals(c.getKey(), navigableMap.lastKey()); - } -} diff --git a/guava-testlib/src/com/google/common/collect/testing/testers/SortedSetNavigationTester.java b/guava-testlib/src/com/google/common/collect/testing/testers/SortedSetNavigationTester.java deleted file mode 100644 index b3a52d2..0000000 --- a/guava-testlib/src/com/google/common/collect/testing/testers/SortedSetNavigationTester.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2010 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.common.collect.testing.testers; - -import static com.google.common.collect.testing.features.CollectionSize.ONE; -import static com.google.common.collect.testing.features.CollectionSize.SEVERAL; -import static com.google.common.collect.testing.features.CollectionSize.ZERO; - -import com.google.common.annotations.GwtCompatible; -import com.google.common.collect.testing.Helpers; -import com.google.common.collect.testing.features.CollectionSize; - -import java.util.Collections; -import java.util.List; -import java.util.NoSuchElementException; -import java.util.SortedSet; - -/** - * A generic JUnit test which tests operations on a SortedSet. Can't be - * invoked directly; please see {@code SortedSetTestSuiteBuilder}. - * - * @author Jesse Wilson - * @author Louis Wasserman - */ -@GwtCompatible -public class SortedSetNavigationTester<E> extends AbstractSetTester<E> { - - private SortedSet<E> sortedSet; - private List<E> values; - private E a; - private E b; - private E c; - - @Override public void setUp() throws Exception { - super.setUp(); - sortedSet = (SortedSet<E>) getSet(); - values = Helpers.copyToList(getSubjectGenerator().getSampleElements( - getSubjectGenerator().getCollectionSize().getNumElements())); - Collections.sort(values, sortedSet.comparator()); - - // some tests assume SEVERAL == 3 - if (values.size() >= 1) { - a = values.get(0); - if (values.size() >= 3) { - b = values.get(1); - c = values.get(2); - } - } - } - - @CollectionSize.Require(ZERO) - public void testEmptySetFirst() { - try { - sortedSet.first(); - fail(); - } catch (NoSuchElementException e) { - } - } - - @CollectionSize.Require(ZERO) - public void testEmptySetLast() { - try { - sortedSet.last(); - fail(); - } catch (NoSuchElementException e) { - } - } - - @CollectionSize.Require(ONE) - public void testSingletonSetFirst() { - assertEquals(a, sortedSet.first()); - } - - @CollectionSize.Require(ONE) - public void testSingletonSetLast() { - assertEquals(a, sortedSet.last()); - } - - @CollectionSize.Require(SEVERAL) - public void testFirst() { - assertEquals(a, sortedSet.first()); - } - - @CollectionSize.Require(SEVERAL) - public void testLast() { - assertEquals(c, sortedSet.last()); - } -} |