diff options
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.java | 72 |
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; |