Sitelet https://github.com/assertj/assertj/pull/4160
Skip to content

Honor collections' comparison semantics in contains assertions - #4160

Draft
scordio wants to merge 1 commit into
3.xfrom
gh-4157-case-insensitive-sets
Draft

Honor collections' comparison semantics in contains assertions#4160
scordio wants to merge 1 commit into
3.xfrom
gh-4157-case-insensitive-sets

Conversation

@scordio

@scordio scordio commented Feb 21, 2026

Copy link
Copy Markdown
Member

@scordio scordio added this to the 3.28.0 milestone Feb 21, 2026
@scordio scordio linked an issue Feb 21, 2026 that may be closed by this pull request
@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch 2 times, most recently from efdc113 to b0d7d7b Compare February 21, 2026 11:37
@scordio scordio changed the title Honor collection's comparison semantics with contains assertions Honor collections' comparison semantics in contains assertions Feb 21, 2026
@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch 3 times, most recently from 53bdeea to e2267e6 Compare February 25, 2026 06:49
@testlens-app

This comment has been minimized.

@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch from e2267e6 to 98af2af Compare February 28, 2026 08:57
@testlens-app

This comment has been minimized.

@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch from 98af2af to 41b01c9 Compare March 4, 2026 20:31
@testlens-app

This comment has been minimized.

@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch from 41b01c9 to 1b73da1 Compare March 7, 2026 09:46
@testlens-app

This comment has been minimized.

@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch from 1b73da1 to 9f7baf9 Compare March 7, 2026 10:33
@testlens-app

This comment has been minimized.

@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch from 9f7baf9 to e079e3f Compare March 8, 2026 23:02
@testlens-app

This comment has been minimized.

@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch from e079e3f to 8dcc522 Compare March 10, 2026 15:54
@testlens-app

This comment has been minimized.

@scordio
scordio force-pushed the gh-4157-case-insensitive-sets branch from 8dcc522 to 923a3f4 Compare March 15, 2026 10:20
@testlens-app

testlens-app Bot commented Mar 15, 2026

Copy link
Copy Markdown

🚨 TestLens detected 23 failed tests 🚨

Here is what you can do:

  1. Inspect the test failures carefully.
  2. If you are convinced that some of the tests are flaky, you can mute them below.
  3. Finally, trigger a rerun by checking the rerun checkbox.

Test Summary

Check Project/Task Test Runs
CI / Groovy 4.0.28 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO]
CI / Groovy 4.0.28 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO]
CI / Java 25 (macOS-latest) AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO]
CI / Java 25 (macOS-latest) AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO]
CI / Java 25 (macOS-latest) AssertJ Core Iterables assertContainsExactlyInAnyOrder > should fail if expected is null
CI / Java 25 (ubuntu-latest) AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO]
CI / Java 25 (ubuntu-latest) AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO]
CI / Java 25 (ubuntu-latest) AssertJ Core Iterables assertContainsExactlyInAnyOrder > should fail if expected is null
CI / Java 25 (windows-latest) AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO]
CI / Java 25 (windows-latest) AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO]
CI / Java 25 (windows-latest) AssertJ Core Iterables assertContainsExactlyInAnyOrder > should fail if expected is null
CI / Java 27 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO]
CI / Java 27 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO]
CI / Java 27 AssertJ Core Iterables assertContainsExactlyInAnyOrder > should fail if expected is null
CI / Kotlin 1.9.25 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO]
CI / Kotlin 1.9.25 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO]
CI / Kotlin 1.9.25 AssertJ Core Iterables assertContainsExactlyInAnyOrder > should fail if expected is null
CI / Kotlin 2.0.21 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO]
CI / Kotlin 2.0.21 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO]
CI / Kotlin 2.0.21 AssertJ Core Iterables assertContainsExactlyInAnyOrder > should fail if expected is null
CI / Kotlin 2.1.21 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO]
CI / Kotlin 2.1.21 AssertJ Core IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO]
CI / Kotlin 2.1.21 AssertJ Core Iterables assertContainsExactlyInAnyOrder > should fail if expected is null

🏷️ Commit: 923a3f4
▶️ Tests: 120160 executed
🟡 Checks: 16/17 completed

Test Failures (first 5 of 23)

IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO] (AssertJ Core in CI / Groovy 4.0.28)
org.opentest4j.AssertionFailedError: 
Expecting actual:
  ["FOO"]
to contain exactly (and in same order):
  ["foo"]
but some elements were not found:
  ["foo"]
and others were not expected:
  ["FOO"]

	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
	at org.assertj.core.error.ConstructorInvoker.newInstance(ConstructorInvoker.java:31)
	at org.assertj.core.error.AssertionErrorCreator.assertionFailedError(AssertionErrorCreator.java:72)
	at org.assertj.core.error.AssertionErrorCreator.assertionError(AssertionErrorCreator.java:63)
	at org.assertj.core.internal.Failures.failure(Failures.java:137)
	at org.assertj.core.internal.Iterables.shouldContainExactlyWithDiffAssertionError(Iterables.java:1123)
	at org.assertj.core.internal.Iterables.assertEquivalency(Iterables.java:1091)
	at org.assertj.core.internal.Iterables.assertContainsExactly(Iterables.java:1084)
	at org.assertj.core.api.AbstractIterableAssert.containsExactlyForProxy(AbstractIterableAssert.java:438)
	at org.assertj.core.api.AbstractIterableAssert.containsExactly(AbstractIterableAssert.java:431)
	at org.assertj.core.api.iterable.IterableAssert_should_honor_SortedSet_comparator_Test.should_honor_sorted_set_comparator(IterableAssert_should_honor_SortedSet_comparator_Test.java:42)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
expected actual
[~"foo~"] [**"FOO**"]
IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO] (AssertJ Core in CI / Groovy 4.0.28)
org.opentest4j.AssertionFailedError: 
Expecting actual:
  ["FOO"]
to contain exactly (and in same order):
  ["foo"]
but some elements were not found:
  ["foo"]
and others were not expected:
  ["FOO"]

	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
	at org.assertj.core.error.ConstructorInvoker.newInstance(ConstructorInvoker.java:31)
	at org.assertj.core.error.AssertionErrorCreator.assertionFailedError(AssertionErrorCreator.java:72)
	at org.assertj.core.error.AssertionErrorCreator.assertionError(AssertionErrorCreator.java:63)
	at org.assertj.core.internal.Failures.failure(Failures.java:137)
	at org.assertj.core.internal.Iterables.shouldContainExactlyWithDiffAssertionError(Iterables.java:1123)
	at org.assertj.core.internal.Iterables.assertEquivalency(Iterables.java:1091)
	at org.assertj.core.internal.Iterables.assertContainsExactly(Iterables.java:1084)
	at org.assertj.core.api.AbstractIterableAssert.containsExactlyForProxy(AbstractIterableAssert.java:438)
	at org.assertj.core.api.AbstractIterableAssert.containsExactly(AbstractIterableAssert.java:431)
	at org.assertj.core.api.iterable.IterableAssert_should_honor_SortedSet_comparator_Test.should_honor_sorted_set_comparator(IterableAssert_should_honor_SortedSet_comparator_Test.java:42)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
expected actual
[~"foo~"] [**"FOO**"]
IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [1] actual=[FOO] (AssertJ Core in CI / Java 25 (macOS-latest))
org.opentest4j.AssertionFailedError: 
Expecting actual:
  ["FOO"]
to contain exactly (and in same order):
  ["foo"]
but some elements were not found:
  ["foo"]
and others were not expected:
  ["FOO"]

	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
	at org.assertj.core.error.ConstructorInvoker.newInstance(ConstructorInvoker.java:31)
	at org.assertj.core.error.AssertionErrorCreator.assertionFailedError(AssertionErrorCreator.java:72)
	at org.assertj.core.error.AssertionErrorCreator.assertionError(AssertionErrorCreator.java:63)
	at org.assertj.core.internal.Failures.failure(Failures.java:137)
	at org.assertj.core.internal.Iterables.shouldContainExactlyWithDiffAssertionError(Iterables.java:1123)
	at org.assertj.core.internal.Iterables.assertEquivalency(Iterables.java:1091)
	at org.assertj.core.internal.Iterables.assertContainsExactly(Iterables.java:1084)
	at org.assertj.core.api.AbstractIterableAssert.containsExactlyForProxy(AbstractIterableAssert.java:438)
	at org.assertj.core.api.AbstractIterableAssert.containsExactly(AbstractIterableAssert.java:431)
	at org.assertj.core.api.iterable.IterableAssert_should_honor_SortedSet_comparator_Test.should_honor_sorted_set_comparator(IterableAssert_should_honor_SortedSet_comparator_Test.java:42)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
expected actual
[~"foo~"] [**"FOO**"]
IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable) > [2] actual=[FOO] (AssertJ Core in CI / Java 25 (macOS-latest))
org.opentest4j.AssertionFailedError: 
Expecting actual:
  ["FOO"]
to contain exactly (and in same order):
  ["foo"]
but some elements were not found:
  ["foo"]
and others were not expected:
  ["FOO"]

	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
	at org.assertj.core.error.ConstructorInvoker.newInstance(ConstructorInvoker.java:31)
	at org.assertj.core.error.AssertionErrorCreator.assertionFailedError(AssertionErrorCreator.java:72)
	at org.assertj.core.error.AssertionErrorCreator.assertionError(AssertionErrorCreator.java:63)
	at org.assertj.core.internal.Failures.failure(Failures.java:137)
	at org.assertj.core.internal.Iterables.shouldContainExactlyWithDiffAssertionError(Iterables.java:1123)
	at org.assertj.core.internal.Iterables.assertEquivalency(Iterables.java:1091)
	at org.assertj.core.internal.Iterables.assertContainsExactly(Iterables.java:1084)
	at org.assertj.core.api.AbstractIterableAssert.containsExactlyForProxy(AbstractIterableAssert.java:438)
	at org.assertj.core.api.AbstractIterableAssert.containsExactly(AbstractIterableAssert.java:431)
	at org.assertj.core.api.iterable.IterableAssert_should_honor_SortedSet_comparator_Test.should_honor_sorted_set_comparator(IterableAssert_should_honor_SortedSet_comparator_Test.java:42)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:186)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:803)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.stream.ReferencePipeline$7$1FlatMap.accept(ReferencePipeline.java:293)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
expected actual
[~"foo~"] [**"FOO**"]
Iterables assertContainsExactlyInAnyOrder > should fail if expected is null (AssertJ Core in CI / Java 25 (macOS-latest))
org.opentest4j.AssertionFailedError: 
Expecting message to be:
  "The array of values to look for should not be null"
but was:
  "
Expecting values not to be null"

Throwable that failed the check:

java.lang.NullPointerException: 
Expecting values not to be null
	at java.base/java.util.Objects.requireNonNull(Objects.java:340)
	at org.assertj.core.internal.Iterables.assertContainsExactlyInAnyOrder(Iterables.java:1334)
	at org.assertj.core.internal.iterables.Iterables_assertContainsExactlyInAnyOrder_Test.lambda$should_fail_if_expected_is_null$0(Iterables_assertContainsExactlyInAnyOrder_Test.java:71)
	at org.assertj.core.api.ThrowableAssert.catchThrowable(ThrowableAssert.java:66)
	at org.assertj.core.api.ThrowableTypeAssert.isThrownBy(ThrowableTypeAssert.java:62)
	at org.assertj.core.internal.iterables.Iterables_assertContainsExactlyInAnyOrder_Test.should_fail_if_expected_is_null(Iterables_assertContainsExactlyInAnyOrder_Test.java:71)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:786)
	at org.junit.platform.commons.support.ReflectionSupport.invokeMethod(ReflectionSupport.java:514)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:161)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:152)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:91)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:112)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:94)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:93)
	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:87)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$4(TestMethodTestDescriptor.java:221)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:217)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:159)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:70)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:157)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:161)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:147)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:145)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:144)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:101)
	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.executeEngine(EngineExecutionOrchestrator.java:230)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.failOrExecuteEngine(EngineExecutionOrchestrator.java:204)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:172)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:101)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:64)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:150)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:63)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:109)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:91)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.junit.platform.launcher.core.InterceptingLauncher.lambda$execute$1(InterceptingLauncher.java:39)
	at org.junit.platform.launcher.core.ClasspathAlignmentCheckingLauncherInterceptor.intercept(ClasspathAlignmentCheckingLauncherInterceptor.java:25)
	at org.junit.platform.launcher.core.InterceptingLauncher.execute(InterceptingLauncher.java:38)
	at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.executeWithoutCancellationToken(LauncherAdapter.java:60)
	at org.apache.maven.surefire.junitplatform.LauncherAdapter.execute(LauncherAdapter.java:52)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:203)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:168)
	at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:136)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
	at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)

	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
	at org.assertj.core.error.ConstructorInvoker.newInstance(ConstructorInvoker.java:31)
	at org.assertj.core.error.AssertionErrorCreator.assertionFailedError(AssertionErrorCreator.java:72)
	at org.assertj.core.error.AssertionErrorCreator.assertionError(AssertionErrorCreator.java:63)
	at org.assertj.core.internal.Failures.failure(Failures.java:137)
	at org.assertj.core.internal.Throwables.assertHasMessage(Throwables.java:90)
	at org.assertj.core.api.AbstractThrowableAssert.hasMessage(AbstractThrowableAssert.java:72)
	at org.assertj.core.api.ThrowableAssertAlternative.withMessage(ThrowableAssertAlternative.java:74)
	at org.assertj.core.internal.iterables.Iterables_assertContainsExactlyInAnyOrder_Test.should_fail_if_expected_is_null(Iterables_assertContainsExactlyInAnyOrder_Test.java:73)
	at java.base/java.lang.reflect.Method.invoke(Method.java:565)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
expected actual
~"The array of values to look for should not be null~" "
Expecting values not to be null"

Muted Tests

Note

Checks are currently running using the configuration below.

Select tests to mute in this pull request:

🔲 IterableAssert should honor SortedSet comparator > should honor sorted set comparator (Iterable)
🔲 Iterables assertContainsExactlyInAnyOrder > should fail if expected is null

Reuse successful test results:

🔲 ♻️ Only rerun the tests that failed or were muted before

Click the checkbox to trigger a rerun:

🔲 Rerun jobs


Learn more about TestLens at testlens.app.

@scordio scordio modified the milestones: 3.28.0, 3.x Jun 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Assertions against case insensitive Set don't work

1 participant