aboutsummaryrefslogtreecommitdiffstats
path: root/guava-testlib/blackhole-gwt/src-super/com/google/common/collect/testing/google/super/com/google/common/collect/testing/google/AbstractMultisetSetCountTester.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-testlib/blackhole-gwt/src-super/com/google/common/collect/testing/google/super/com/google/common/collect/testing/google/AbstractMultisetSetCountTester.java')
-rw-r--r--guava-testlib/blackhole-gwt/src-super/com/google/common/collect/testing/google/super/com/google/common/collect/testing/google/AbstractMultisetSetCountTester.java387
1 files changed, 0 insertions, 387 deletions
diff --git a/guava-testlib/blackhole-gwt/src-super/com/google/common/collect/testing/google/super/com/google/common/collect/testing/google/AbstractMultisetSetCountTester.java b/guava-testlib/blackhole-gwt/src-super/com/google/common/collect/testing/google/super/com/google/common/collect/testing/google/AbstractMultisetSetCountTester.java
deleted file mode 100644
index 48b5ce2..0000000
--- a/guava-testlib/blackhole-gwt/src-super/com/google/common/collect/testing/google/super/com/google/common/collect/testing/google/AbstractMultisetSetCountTester.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright (C) 2009 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.google;
-
-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_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.Multiset;
-import com.google.common.collect.Multiset.Entry;
-import com.google.common.collect.testing.features.CollectionFeature;
-import com.google.common.collect.testing.features.CollectionSize;
-
-import java.util.ConcurrentModificationException;
-import java.util.Iterator;
-
-/**
- * Common superclass for {@link MultisetSetCountUnconditionallyTester} and
- * {@link MultisetSetCountConditionallyTester}. It is used by those testers to
- * test calls to the unconditional {@code setCount()} method and calls to the
- * conditional {@code setCount()} method when the expected present count is
- * correct.
- *
- * @author Chris Povirk
- */
-@GwtCompatible(emulated = true)
-public abstract class AbstractMultisetSetCountTester<E>
- extends AbstractMultisetTester<E> {
- /*
- * TODO: consider adding MultisetFeatures.SUPPORTS_SET_COUNT. Currently we
- * assume that using setCount() to increase the count is permitted iff add()
- * is permitted and similarly for decrease/remove(). We assume that a
- * setCount() no-op is permitted if either add() or remove() is permitted,
- * though we also allow it to "succeed" if neither is permitted.
- */
-
- private void assertSetCount(E element, int count) {
- setCountCheckReturnValue(element, count);
-
- assertEquals(
- "multiset.count() should return the value passed to setCount()",
- count, getMultiset().count(element));
-
- int size = 0;
- for (Multiset.Entry<E> entry : getMultiset().entrySet()) {
- size += entry.getCount();
- }
- assertEquals(
- "multiset.size() should be the sum of the counts of all entries",
- size, getMultiset().size());
- }
-
- /**
- * Call the {@code setCount()} method under test, and check its return value.
- */
- abstract void setCountCheckReturnValue(E element, int count);
-
- /**
- * Call the {@code setCount()} method under test, but do not check its return
- * value. Callers should use this method over
- * {@link #setCountCheckReturnValue(Object, int)} when they expect
- * {@code setCount()} to throw an exception, as checking the return value
- * could produce an incorrect error message like
- * "setCount() should return the original count" instead of the message passed
- * to a later invocation of {@code fail()}, like "setCount should throw
- * UnsupportedOperationException."
- */
- abstract void setCountNoCheckReturnValue(E element, int count);
-
- private void assertSetCountIncreasingFailure(E element, int count) {
- try {
- setCountNoCheckReturnValue(element, count);
- fail("a call to multiset.setCount() to increase an element's count "
- + "should throw");
- } catch (UnsupportedOperationException expected) {
- }
- }
-
- private void assertSetCountDecreasingFailure(E element, int count) {
- try {
- setCountNoCheckReturnValue(element, count);
- fail("a call to multiset.setCount() to decrease an element's count "
- + "should throw");
- } catch (UnsupportedOperationException expected) {
- }
- }
-
- // Unconditional setCount no-ops.
-
- private void assertZeroToZero() {
- assertSetCount(samples.e3, 0);
- }
-
- private void assertOneToOne() {
- assertSetCount(samples.e0, 1);
- }
-
- private void assertThreeToThree() {
- initThreeCopies();
- assertSetCount(samples.e0, 3);
- }
-
- @CollectionFeature.Require(SUPPORTS_ADD)
- public void testSetCount_zeroToZero_addSupported() {
- assertZeroToZero();
- }
-
- @CollectionFeature.Require(SUPPORTS_REMOVE)
- public void testSetCount_zeroToZero_removeSupported() {
- assertZeroToZero();
- }
-
- @CollectionFeature.Require(absent = {SUPPORTS_ADD, SUPPORTS_REMOVE})
- public void testSetCount_zeroToZero_unsupported() {
- try {
- assertZeroToZero();
- } catch (UnsupportedOperationException tolerated) {
- }
- }
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require(SUPPORTS_ADD)
- public void testSetCount_oneToOne_addSupported() {
- assertOneToOne();
- }
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require(SUPPORTS_REMOVE)
- public void testSetCount_oneToOne_removeSupported() {
- assertOneToOne();
- }
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require(absent = {SUPPORTS_ADD, SUPPORTS_REMOVE})
- public void testSetCount_oneToOne_unsupported() {
- try {
- assertOneToOne();
- } catch (UnsupportedOperationException tolerated) {
- }
- }
-
- @CollectionSize.Require(SEVERAL)
- @CollectionFeature.Require(SUPPORTS_ADD)
- public void testSetCount_threeToThree_addSupported() {
- assertThreeToThree();
- }
-
- @CollectionSize.Require(SEVERAL)
- @CollectionFeature.Require(SUPPORTS_REMOVE)
- public void testSetCount_threeToThree_removeSupported() {
- assertThreeToThree();
- }
-
- @CollectionSize.Require(SEVERAL)
- @CollectionFeature.Require(absent = {SUPPORTS_ADD, SUPPORTS_REMOVE})
- public void testSetCount_threeToThree_unsupported() {
- try {
- assertThreeToThree();
- } catch (UnsupportedOperationException tolerated) {
- }
- }
-
- // Unconditional setCount size increases:
-
- @CollectionFeature.Require(SUPPORTS_ADD)
- public void testSetCount_zeroToOne_supported() {
- assertSetCount(samples.e3, 1);
- }
-
- @CollectionFeature.Require({SUPPORTS_ADD,
- FAILS_FAST_ON_CONCURRENT_MODIFICATION})
- public void testSetCountZeroToOneConcurrentWithIteration() {
- try {
- Iterator<E> iterator = collection.iterator();
- assertSetCount(samples.e3, 1);
- iterator.next();
- fail("Expected ConcurrentModificationException");
- } catch (ConcurrentModificationException expected) {
- // success
- }
- }
-
- @CollectionFeature.Require({SUPPORTS_ADD,
- FAILS_FAST_ON_CONCURRENT_MODIFICATION})
- public void testSetCountZeroToOneConcurrentWithEntrySetIteration() {
- try {
- Iterator<Entry<E>> iterator = getMultiset().entrySet().iterator();
- assertSetCount(samples.e3, 1);
- iterator.next();
- fail("Expected ConcurrentModificationException");
- } catch (ConcurrentModificationException expected) {
- // success
- }
- }
-
- @CollectionFeature.Require(SUPPORTS_ADD)
- public void testSetCount_zeroToThree_supported() {
- assertSetCount(samples.e3, 3);
- }
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require(SUPPORTS_ADD)
- public void testSetCount_oneToThree_supported() {
- assertSetCount(samples.e0, 3);
- }
-
- @CollectionFeature.Require(absent = SUPPORTS_ADD)
- public void testSetCount_zeroToOne_unsupported() {
- assertSetCountIncreasingFailure(samples.e3, 1);
- }
-
- @CollectionFeature.Require(absent = SUPPORTS_ADD)
- public void testSetCount_zeroToThree_unsupported() {
- assertSetCountIncreasingFailure(samples.e3, 3);
- }
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require(absent = SUPPORTS_ADD)
- public void testSetCount_oneToThree_unsupported() {
- assertSetCountIncreasingFailure(samples.e3, 3);
- }
-
- // Unconditional setCount size decreases:
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require(SUPPORTS_REMOVE)
- public void testSetCount_oneToZero_supported() {
- assertSetCount(samples.e0, 0);
- }
-
- @CollectionFeature.Require({SUPPORTS_REMOVE,
- FAILS_FAST_ON_CONCURRENT_MODIFICATION})
- @CollectionSize.Require(absent = ZERO)
- public void testSetCountOneToZeroConcurrentWithIteration() {
- try {
- Iterator<E> iterator = collection.iterator();
- assertSetCount(samples.e0, 0);
- iterator.next();
- fail("Expected ConcurrentModificationException");
- } catch (ConcurrentModificationException expected) {
- // success
- }
- }
-
- @CollectionFeature.Require({SUPPORTS_REMOVE,
- FAILS_FAST_ON_CONCURRENT_MODIFICATION})
- public void testSetCountOneToZeroConcurrentWithEntrySetIteration() {
- try {
- Iterator<Entry<E>> iterator = getMultiset().entrySet().iterator();
- assertSetCount(samples.e0, 0);
- iterator.next();
- fail("Expected ConcurrentModificationException");
- } catch (ConcurrentModificationException expected) {
- // success
- }
- }
-
- @CollectionSize.Require(SEVERAL)
- @CollectionFeature.Require(SUPPORTS_REMOVE)
- public void testSetCount_threeToZero_supported() {
- initThreeCopies();
- assertSetCount(samples.e0, 0);
- }
-
- @CollectionSize.Require(SEVERAL)
- @CollectionFeature.Require(SUPPORTS_REMOVE)
- public void testSetCount_threeToOne_supported() {
- initThreeCopies();
- assertSetCount(samples.e0, 1);
- }
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require(absent = SUPPORTS_REMOVE)
- public void testSetCount_oneToZero_unsupported() {
- assertSetCountDecreasingFailure(samples.e0, 0);
- }
-
- @CollectionSize.Require(SEVERAL)
- @CollectionFeature.Require(absent = SUPPORTS_REMOVE)
- public void testSetCount_threeToZero_unsupported() {
- initThreeCopies();
- assertSetCountDecreasingFailure(samples.e0, 0);
- }
-
- @CollectionSize.Require(SEVERAL)
- @CollectionFeature.Require(absent = SUPPORTS_REMOVE)
- public void testSetCount_threeToOne_unsupported() {
- initThreeCopies();
- assertSetCountDecreasingFailure(samples.e0, 1);
- }
-
- // setCount with nulls:
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require({SUPPORTS_REMOVE, ALLOWS_NULL_VALUES})
- public void testSetCount_removeNull_nullSupported() {
- initCollectionWithNullElement();
- assertSetCount(null, 0);
- }
-
- @CollectionFeature.Require(value = {SUPPORTS_ADD, ALLOWS_NULL_VALUES},
- absent = RESTRICTS_ELEMENTS)
- public void testSetCount_addNull_nullSupported() {
- assertSetCount(null, 1);
- }
-
- @CollectionFeature.Require(value = SUPPORTS_ADD, absent = ALLOWS_NULL_VALUES)
- public void testSetCount_addNull_nullUnsupported() {
- try {
- setCountNoCheckReturnValue(null, 1);
- fail("adding null with setCount() should throw NullPointerException");
- } catch (NullPointerException expected) {
- }
- }
-
- @CollectionFeature.Require(ALLOWS_NULL_VALUES)
- public void testSetCount_noOpNull_nullSupported() {
- try {
- assertSetCount(null, 0);
- } catch (UnsupportedOperationException tolerated) {
- }
- }
-
- @CollectionFeature.Require(absent = ALLOWS_NULL_VALUES)
- public void testSetCount_noOpNull_nullUnsupported() {
- try {
- assertSetCount(null, 0);
- } catch (NullPointerException tolerated) {
- } catch (UnsupportedOperationException tolerated) {
- }
- }
-
- @CollectionSize.Require(absent = ZERO)
- @CollectionFeature.Require(ALLOWS_NULL_VALUES)
- public void testSetCount_existingNoNopNull_nullSupported() {
- initCollectionWithNullElement();
- try {
- assertSetCount(null, 1);
- } catch (UnsupportedOperationException tolerated) {
- }
- }
-
- // Negative count.
-
- @CollectionFeature.Require(SUPPORTS_REMOVE)
- public void testSetCount_negative_removeSupported() {
- try {
- setCountNoCheckReturnValue(samples.e3, -1);
- fail("calling setCount() with a negative count should throw "
- + "IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
- }
-
- @CollectionFeature.Require(absent = SUPPORTS_REMOVE)
- public void testSetCount_negative_removeUnsupported() {
- try {
- setCountNoCheckReturnValue(samples.e3, -1);
- fail("calling setCount() with a negative count should throw "
- + "IllegalArgumentException or UnsupportedOperationException");
- } catch (IllegalArgumentException expected) {
- } catch (UnsupportedOperationException expected) {
- }
- }
-
- // TODO: test adding element of wrong type
-}
-