Coverage Summary for Class: SetCreationTester (com.google.common.collect.testing.testers)

Class Class, % Method, % Line, %
SetCreationTester 100% (1/1) 60% (3/5) 48.1% (13/27)


1 /* 2  * Copyright (C) 2008 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  17 package com.google.common.collect.testing.testers; 18  19 import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES; 20 import static com.google.common.collect.testing.features.CollectionFeature.REJECTS_DUPLICATES_AT_CREATION; 21 import static com.google.common.collect.testing.features.CollectionSize.ONE; 22 import static com.google.common.collect.testing.features.CollectionSize.ZERO; 23  24 import com.google.common.annotations.GwtCompatible; 25 import com.google.common.collect.testing.features.CollectionFeature; 26 import com.google.common.collect.testing.features.CollectionSize; 27 import java.util.Arrays; 28 import java.util.List; 29 import org.junit.Ignore; 30  31 /** 32  * A generic JUnit test which tests creation (typically through a constructor or static factory 33  * method) of a set. Can't be invoked directly; please see {@link 34  * com.google.common.collect.testing.SetTestSuiteBuilder}. 35  * 36  * @author Chris Povirk 37  */ 38 @GwtCompatible 39 @Ignore // Affects only Android test runner, which respects JUnit 4 annotations on JUnit 3 tests. 40 public class SetCreationTester<E> extends AbstractSetTester<E> { 41  @CollectionFeature.Require(value = ALLOWS_NULL_VALUES, absent = REJECTS_DUPLICATES_AT_CREATION) 42  @CollectionSize.Require(absent = {ZERO, ONE}) 43  public void testCreateWithDuplicates_nullDuplicatesNotRejected() { 44  E[] array = createArrayWithNullElement(); 45  array[0] = null; 46  collection = getSubjectGenerator().create(array); 47  48  List<E> expectedWithDuplicateRemoved = Arrays.asList(array).subList(1, getNumElements()); 49  expectContents(expectedWithDuplicateRemoved); 50  } 51  52  @CollectionFeature.Require(absent = REJECTS_DUPLICATES_AT_CREATION) 53  @CollectionSize.Require(absent = {ZERO, ONE}) 54  public void testCreateWithDuplicates_nonNullDuplicatesNotRejected() { 55  E[] array = createSamplesArray(); 56  array[1] = e0(); 57  collection = getSubjectGenerator().create(array); 58  59  List<E> expectedWithDuplicateRemoved = Arrays.asList(array).subList(1, getNumElements()); 60  expectContents(expectedWithDuplicateRemoved); 61  } 62  63  @CollectionFeature.Require({ALLOWS_NULL_VALUES, REJECTS_DUPLICATES_AT_CREATION}) 64  @CollectionSize.Require(absent = {ZERO, ONE}) 65  public void testCreateWithDuplicates_nullDuplicatesRejected() { 66  E[] array = createArrayWithNullElement(); 67  array[0] = null; 68  try { 69  collection = getSubjectGenerator().create(array); 70  fail("Should reject duplicate null elements at creation"); 71  } catch (IllegalArgumentException expected) { 72  } 73  } 74  75  @CollectionFeature.Require(REJECTS_DUPLICATES_AT_CREATION) 76  @CollectionSize.Require(absent = {ZERO, ONE}) 77  public void testCreateWithDuplicates_nonNullDuplicatesRejected() { 78  E[] array = createSamplesArray(); 79  array[1] = e0(); 80  try { 81  collection = getSubjectGenerator().create(array); 82  fail("Should reject duplicate non-null elements at creation"); 83  } catch (IllegalArgumentException expected) { 84  } 85  } 86 }