aboutsummaryrefslogtreecommitdiffstats
path: root/guava-testlib/src/com/google/common/collect/testing/google/SortedMultisetTestSuiteBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-testlib/src/com/google/common/collect/testing/google/SortedMultisetTestSuiteBuilder.java')
-rw-r--r--guava-testlib/src/com/google/common/collect/testing/google/SortedMultisetTestSuiteBuilder.java72
1 files changed, 11 insertions, 61 deletions
diff --git a/guava-testlib/src/com/google/common/collect/testing/google/SortedMultisetTestSuiteBuilder.java b/guava-testlib/src/com/google/common/collect/testing/google/SortedMultisetTestSuiteBuilder.java
index af79cc2..547ab97 100644
--- a/guava-testlib/src/com/google/common/collect/testing/google/SortedMultisetTestSuiteBuilder.java
+++ b/guava-testlib/src/com/google/common/collect/testing/google/SortedMultisetTestSuiteBuilder.java
@@ -1,12 +1,12 @@
/*
- * Copyright (C) 2011 The Guava Authors
- *
+ * Copyright (C) 2011 Google Inc.
+ *
* 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
@@ -16,40 +16,36 @@
package com.google.common.collect.testing.google;
+import com.google.common.annotations.GwtCompatible;
import com.google.common.collect.BoundType;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.common.collect.Multiset;
import com.google.common.collect.SortedMultiset;
import com.google.common.collect.testing.AbstractTester;
-import com.google.common.collect.testing.FeatureSpecificTestSuiteBuilder;
import com.google.common.collect.testing.Helpers;
-import com.google.common.collect.testing.OneSizeTestContainerGenerator;
import com.google.common.collect.testing.SampleElements;
-import com.google.common.collect.testing.SortedSetTestSuiteBuilder;
import com.google.common.collect.testing.features.CollectionFeature;
import com.google.common.collect.testing.features.Feature;
-import com.google.common.testing.SerializableTester;
import junit.framework.TestSuite;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Creates, based on your criteria, a JUnit test suite that exhaustively tests a
* {@code SortedMultiset} implementation.
- *
+ *
* <p><b>Warning</b>: expects that {@code E} is a String.
- *
+ *
* @author Louis Wasserman
*/
+@GwtCompatible
public class SortedMultisetTestSuiteBuilder<E> extends
MultisetTestSuiteBuilder<E> {
public static <E> SortedMultisetTestSuiteBuilder<E> using(
@@ -62,7 +58,6 @@ public class SortedMultisetTestSuiteBuilder<E> extends
@Override
public TestSuite createTestSuite() {
- withFeatures(CollectionFeature.KNOWN_ORDER);
TestSuite suite = super.createTestSuite();
for (TestSuite subSuite : createDerivedSuites(this)) {
suite.addTest(subSuite);
@@ -78,17 +73,6 @@ public class SortedMultisetTestSuiteBuilder<E> extends
return testers;
}
- @Override
- TestSuite createElementSetTestSuite(FeatureSpecificTestSuiteBuilder<
- ?, ? extends OneSizeTestContainerGenerator<Collection<E>, E>> parentBuilder) {
- return SortedSetTestSuiteBuilder
- .using(new ElementSetGenerator<E>(parentBuilder.getSubjectGenerator()))
- .named(getName() + ".elementSet")
- .withFeatures(computeElementSetFeatures(parentBuilder.getFeatures()))
- .suppressing(parentBuilder.getSuppressedTests())
- .createTestSuite();
- }
-
/**
* To avoid infinite recursion, test suites with these marker features won't
* have derived suites created for them.
@@ -117,10 +101,6 @@ public class SortedMultisetTestSuiteBuilder<E> extends
derivedSuites.add(createDescendingSuite(parentBuilder));
}
- if (parentBuilder.getFeatures().contains(CollectionFeature.SERIALIZABLE)) {
- derivedSuites.add(createReserializedSuite(parentBuilder));
- }
-
if (!parentBuilder.getFeatures().contains(NoRecurse.SUBMULTISET)) {
derivedSuites.add(createSubMultisetSuite(parentBuilder, Bound.NO_BOUND,
Bound.EXCLUSIVE));
@@ -149,15 +129,11 @@ public class SortedMultisetTestSuiteBuilder<E> extends
final TestMultisetGenerator<E> delegate =
(TestMultisetGenerator<E>) parentBuilder.getSubjectGenerator();
- Set<Feature<?>> features = new HashSet<Feature<?>>();
+ List<Feature<?>> features = new ArrayList<Feature<?>>();
features.add(NoRecurse.SUBMULTISET);
features.add(CollectionFeature.RESTRICTS_ELEMENTS);
features.addAll(parentBuilder.getFeatures());
- if (!features.remove(CollectionFeature.SERIALIZABLE_INCLUDING_VIEWS)) {
- features.remove(CollectionFeature.SERIALIZABLE);
- }
-
SortedMultiset<E> emptyMultiset = (SortedMultiset<E>) delegate.create();
final Comparator<? super E> comparator = emptyMultiset.comparator();
SampleElements<E> samples = delegate.samples();
@@ -228,7 +204,7 @@ public class SortedMultisetTestSuiteBuilder<E> extends
/**
* Returns an array of four bogus elements that will always be too high or too
* low for the display. This includes two values for each extreme.
- *
+ *
* <p>
* This method (dangerously) assume that the strings {@code "!! a"} and
* {@code "~~ z"} will work for this purpose, which may cause problems for
@@ -248,12 +224,9 @@ public class SortedMultisetTestSuiteBuilder<E> extends
final TestMultisetGenerator<E> delegate =
(TestMultisetGenerator<E>) parentBuilder.getSubjectGenerator();
- Set<Feature<?>> features = new HashSet<Feature<?>>();
+ List<Feature<?>> features = new ArrayList<Feature<?>>();
features.add(NoRecurse.DESCENDING);
features.addAll(parentBuilder.getFeatures());
- if (!features.remove(CollectionFeature.SERIALIZABLE_INCLUDING_VIEWS)) {
- features.remove(CollectionFeature.SERIALIZABLE);
- }
return SortedMultisetTestSuiteBuilder
.using(new ForwardingTestMultisetGenerator<E>(delegate) {
@@ -274,29 +247,6 @@ public class SortedMultisetTestSuiteBuilder<E> extends
.createTestSuite();
}
- private TestSuite createReserializedSuite(
- SortedMultisetTestSuiteBuilder<E> parentBuilder) {
- final TestMultisetGenerator<E> delegate =
- (TestMultisetGenerator<E>) parentBuilder.getSubjectGenerator();
-
- Set<Feature<?>> features = new HashSet<Feature<?>>();
- features.addAll(parentBuilder.getFeatures());
- features.remove(CollectionFeature.SERIALIZABLE);
- features.remove(CollectionFeature.SERIALIZABLE_INCLUDING_VIEWS);
-
- return SortedMultisetTestSuiteBuilder
- .using(new ForwardingTestMultisetGenerator<E>(delegate) {
- @Override
- public SortedMultiset<E> create(Object... entries) {
- return SerializableTester.reserialize(((SortedMultiset<E>) super.create(entries)));
- }
- })
- .named(parentBuilder.getName() + " reserialized")
- .withFeatures(features)
- .suppressing(parentBuilder.getSuppressedTests())
- .createTestSuite();
- }
-
private static class ForwardingTestMultisetGenerator<E>
implements TestMultisetGenerator<E> {
private final TestMultisetGenerator<E> delegate;