@CollectionFeature.Require(absent = KNOWN_ORDER) public void testForEachUnknownOrder() { List<E> elements = new ArrayList<E>(); collection.forEach(elements::add); Helpers.assertEqualIgnoringOrder(Arrays.asList(createSamplesArray()), elements); }
@CollectionFeature.Require(FAILS_FAST_ON_CONCURRENT_MODIFICATION) @ListFeature.Require(SUPPORTS_ADD_WITH_INDEX) public void testAddAtIndexConcurrentWithIteration() { try { Iterator<E> iterator = collection.iterator(); getList().add(0, e3()); iterator.next(); fail("Expected ConcurrentModificationException"); } catch (ConcurrentModificationException expected) { // success } }
@CollectionFeature.Require(KNOWN_ORDER) public void testForEachKnownOrder() { List<E> elements = new ArrayList<E>(); collection.forEach(elements::add); List<E> expected = Helpers.copyToList(getOrderedElements()); assertEquals("Different ordered iteration", expected, elements); } }
@CollectionFeature.Require(ALLOWS_NULL_VALUES) @CollectionSize.Require(absent = ZERO) public void testContains_nullContained() { initCollectionWithNullElement(); assertTrue("contains(null) should return true", collection.contains(null)); }
@CollectionFeature.Require(ALLOWS_NULL_VALUES) @CollectionSize.Require(absent = ZERO) public void testContains_nonNullWhenNullContained() { initCollectionWithNullElement(); assertFalse("contains(notPresent) should return false", collection.contains(e3())); }
@CollectionFeature.Require(absent = ALLOWS_NULL_VALUES) public void testFind_nullNotContainedAndUnsupported() { try { assertEquals(getMethodName() + "(nullNotPresent) should return -1 or throw", -1, find(null)); } catch (NullPointerException tolerated) { } }
@CollectionFeature.Require(ALLOWS_NULL_VALUES) public void testSetCount_noOpNull_nullSupported() { try { assertSetCount(null, 0); } catch (UnsupportedOperationException tolerated) { } }
@CollectionFeature.Require( value = {SUPPORTS_ADD, ALLOWS_NULL_VALUES}, absent = RESTRICTS_ELEMENTS ) public void testSetCount_addNull_nullSupported() { assertSetCount(null, 1); }
@CollectionFeature.Require({SUPPORTS_REMOVE, FAILS_FAST_ON_CONCURRENT_MODIFICATION}) @CollectionSize.Require(absent = ZERO) public void testSetCountOneToZeroConcurrentWithEntrySetIteration() { try { Iterator<Entry<E>> iterator = getMultiset().entrySet().iterator(); assertSetCount(e0(), 0); iterator.next(); fail("Expected ConcurrentModificationException"); } catch (ConcurrentModificationException expected) { // success } }
@CollectionSize.Require(absent = ZERO) @CollectionFeature.Require(absent = {SUPPORTS_ADD, SUPPORTS_REMOVE}) public void testSetCount_oneToOne_unsupported() { try { assertOneToOne(); } catch (UnsupportedOperationException tolerated) { } }
@CollectionFeature.Require(absent = {SUPPORTS_ADD, SUPPORTS_REMOVE}) public void testSetCount_zeroToZero_unsupported() { try { assertZeroToZero(); } catch (UnsupportedOperationException tolerated) { } }
@CollectionFeature.Require({SUPPORTS_REMOVE, ALLOWS_NULL_QUERIES}) public void testRemoveAll_containsNullNoButAllowed() { MinimalCollection<?> containsNull = MinimalCollection.of((Object) null); assertFalse("removeAll(containsNull) should return false", collection.removeAll(containsNull)); expectUnchanged(); }
@CollectionFeature.Require(SUPPORTS_REMOVE) @CollectionSize.Require(absent = ZERO) public void testRemoveAll_nullCollectionReferenceNonEmptySubject() { try { collection.removeAll(null); fail("removeAll(null) should throw NullPointerException"); } catch (NullPointerException expected) { } }
@CollectionFeature.Require(SUPPORTS_REMOVE) public void testRemove_wrongType() { try { assertFalse(collection.remove(WrongType.VALUE)); } catch (ClassCastException tolerated) { } expectUnchanged(); } }
@CollectionFeature.Require(value = SUPPORTS_REMOVE, absent = ALLOWS_NULL_QUERIES) public void testRemove_nullNotSupported() { try { assertFalse( "remove(null) should return false or throw NullPointerException", collection.remove(null)); } catch (NullPointerException tolerated) { } expectUnchanged(); }
@CollectionSize.Require(ONE) @CollectionFeature.Require(SUPPORTS_ADD) public void testAddOutOfHeadBoundsOne() { expectAddFailure(sortedMultiset.headMultiset(a.getElement(), OPEN), a); }
@CollectionFeature.Require(absent = SUPPORTS_ADD) public void testSetCountConditional_negativeOldCount_addUnsupported() { try { assertSetCountNegativeOldCount(); } catch (UnsupportedOperationException tolerated) { } }
@CollectionFeature.Require(ALLOWS_NULL_VALUES) @CollectionSize.Require(absent = ZERO) public void testSpliteratorNullable() { initCollectionWithNullElement(); synchronized (collection) { // for Collections.synchronized assertFalse(collection.spliterator().hasCharacteristics(Spliterator.NONNULL)); } }
@CollectionFeature.Require(absent = SUPPORTS_REMOVE) public void testRemove_occurrences_unsupported_absent() { // notice: we don't care whether it succeeds, or fails with UOE try { assertEquals( "multiset.remove(absent, 2) didn't return 0 or throw an exception", 0, getMultiset().remove(e3(), 2)); } catch (UnsupportedOperationException ok) { } }
@CollectionFeature.Require(value = {SUPPORTS_ADD, ALLOWS_NULL_VALUES}) @CollectionSize.Require(absent = ZERO) public void testAdd_supportedNullPresent() { E[] array = createArrayWithNullElement(); collection = getSubjectGenerator().create(array); assertTrue("add(nullPresent) should return true", getList().add(null)); List<E> expected = Helpers.copyToList(array); expected.add(null); expectContents(expected); }