Java
107 строк · 3.9 Кб
1/*
2* Copyright (C) 2007 The Guava Authors
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*/
16
17package com.google.common.collect.testing.testers;
18
19import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_QUERIES;
20import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES;
21import static com.google.common.collect.testing.features.CollectionSize.ZERO;
22
23import com.google.common.annotations.GwtCompatible;
24import com.google.common.collect.testing.AbstractCollectionTester;
25import com.google.common.collect.testing.MinimalCollection;
26import com.google.common.collect.testing.WrongType;
27import com.google.common.collect.testing.features.CollectionFeature;
28import com.google.common.collect.testing.features.CollectionSize;
29import java.util.Collection;
30import org.junit.Ignore;
31
32/**
33* A generic JUnit test which tests {@code containsAll()} operations on a collection. Can't be
34* invoked directly; please see {@link
35* com.google.common.collect.testing.CollectionTestSuiteBuilder}.
36*
37* @author Kevin Bourrillion
38* @author Chris Povirk
39*/
40@GwtCompatible
41@Ignore // Affects only Android test runner, which respects JUnit 4 annotations on JUnit 3 tests.
42@SuppressWarnings("JUnit4ClassUsedInJUnit3")
43public class CollectionContainsAllTester<E> extends AbstractCollectionTester<E> {
44public void testContainsAll_empty() {
45assertTrue(
46"containsAll(empty) should return true", collection.containsAll(MinimalCollection.of()));
47}
48
49@CollectionSize.Require(absent = ZERO)
50public void testContainsAll_subset() {
51assertTrue(
52"containsAll(subset) should return true",
53collection.containsAll(MinimalCollection.of(e0())));
54}
55
56public void testContainsAll_sameElements() {
57assertTrue(
58"containsAll(sameElements) should return true",
59collection.containsAll(MinimalCollection.of(createSamplesArray())));
60}
61
62@SuppressWarnings("ModifyingCollectionWithItself")
63public void testContainsAll_self() {
64assertTrue("containsAll(this) should return true", collection.containsAll(collection));
65}
66
67public void testContainsAll_partialOverlap() {
68assertFalse(
69"containsAll(partialOverlap) should return false",
70collection.containsAll(MinimalCollection.of(e0(), e3())));
71}
72
73public void testContainsAll_disjoint() {
74assertFalse(
75"containsAll(disjoint) should return false",
76collection.containsAll(MinimalCollection.of(e3())));
77}
78
79@CollectionFeature.Require(absent = ALLOWS_NULL_QUERIES)
80public void testContainsAll_nullNotAllowed() {
81try {
82assertFalse(collection.containsAll(MinimalCollection.of((E) null)));
83} catch (NullPointerException tolerated) {
84}
85}
86
87@CollectionFeature.Require(ALLOWS_NULL_QUERIES)
88public void testContainsAll_nullAllowed() {
89assertFalse(collection.containsAll(MinimalCollection.of((E) null)));
90}
91
92@CollectionFeature.Require(ALLOWS_NULL_VALUES)
93@CollectionSize.Require(absent = ZERO)
94public void testContainsAll_nullPresent() {
95initCollectionWithNullElement();
96assertTrue(collection.containsAll(MinimalCollection.of((E) null)));
97}
98
99public void testContainsAll_wrongType() {
100Collection<WrongType> wrong = MinimalCollection.of(WrongType.VALUE);
101try {
102assertFalse(
103"containsAll(wrongType) should return false or throw", collection.containsAll(wrong));
104} catch (ClassCastException tolerated) {
105}
106}
107}
108