| /* |
| * Copyright (C) 2008 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 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.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, |
| CollectionSizeTester.class, |
| CollectionToArrayTester.class, |
| CollectionToStringTester.class |
| ); |
| } |
| |
| @Override 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()); |
| } |
| } |