/* * Copyright (C) 2008 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; import com.google.common.collect.testing.testers.CollectionAddAllTester; import com.google.common.collect.testing.testers.CollectionAddTester; import com.google.common.collect.testing.testers.CollectionClearTester; import com.google.common.collect.testing.testers.CollectionContainsAllTester; import com.google.common.collect.testing.testers.CollectionContainsTester; import com.google.common.collect.testing.testers.CollectionCreationTester; import com.google.common.collect.testing.testers.CollectionEqualsTester; import com.google.common.collect.testing.testers.CollectionIsEmptyTester; import com.google.common.collect.testing.testers.CollectionIteratorTester; import com.google.common.collect.testing.testers.CollectionRemoveAllTester; import com.google.common.collect.testing.testers.CollectionRemoveTester; import com.google.common.collect.testing.testers.CollectionRetainAllTester; import com.google.common.collect.testing.testers.CollectionSerializationTester; import com.google.common.collect.testing.testers.CollectionSizeTester; import com.google.common.collect.testing.testers.CollectionToArrayTester; import com.google.common.collect.testing.testers.CollectionToStringTester; import junit.framework.TestSuite; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; /** * Abstract superclass of all test-suite builders for collection interfaces. * * @author George van den Driessche */ public abstract class AbstractCollectionTestSuiteBuilder< B extends AbstractCollectionTestSuiteBuilder<B, E>, E> extends PerCollectionSizeTestSuiteBuilder< B, TestCollectionGenerator<E>, Collection<E>, E> { // Class parameters must be raw. @SuppressWarnings("unchecked") @Override protected List<Class<? extends AbstractTester>> getTesters() { return Arrays.<Class<? extends AbstractTester>>asList( CollectionAddAllTester.class, CollectionAddTester.class, CollectionClearTester.class, CollectionContainsAllTester.class, CollectionContainsTester.class, CollectionCreationTester.class, CollectionEqualsTester.class, CollectionIsEmptyTester.class, CollectionIteratorTester.class, CollectionRemoveAllTester.class, CollectionRemoveTester.class, CollectionRetainAllTester.class, CollectionSerializationTester.class, CollectionSizeTester.class, CollectionToArrayTester.class, CollectionToStringTester.class ); } @Override protected List<TestSuite> createDerivedSuites(FeatureSpecificTestSuiteBuilder< ?, ? extends OneSizeTestContainerGenerator<Collection<E>, E>> parentBuilder) { DerivedIteratorTestSuiteBuilder<?> iteratorTestSuiteBuilder = new DerivedIteratorTestSuiteBuilder<E>() .named(parentBuilder.getName()) .usingGenerator(parentBuilder.getSubjectGenerator()) .withFeatures(parentBuilder.getFeatures()); return Collections.singletonList( iteratorTestSuiteBuilder.createTestSuite()); } }