willowtreeapps / assertk

assertions for kotlin inspired by assertj
MIT License
757 stars 84 forks source link

Iterable assertions always fail #538

Open shaposhnyk-maxym opened 3 months ago

shaposhnyk-maxym commented 3 months ago

I'm encountering an issue with iterable assertions in AssertK version com.willowtreeapps.assertk:assertk-jvm:0.28.0.

The problem arises when I try to assert that two lists contain the same elements. The assertion fails, and the error message suggests that one of the lists is being treated as a two-dimensional array. Here's a minimal example that reproduces the issue:

        val firstList = listOf(1, 2)
        val secondList = listOf(2, 1)
        assertThat(firstList).containsExactlyInAnyOrder(secondList)
org.opentest4j.AssertionFailedError: expected to contain exactly in any order:<[[2, 1]]> but was:<[1, 2]>
 elements not found:<[[2, 1]]>
 extra elements found:<[1, 2]>
evant commented 3 months ago

containsExactlyInAnyOrder takes a vararg so the correct way would be:

assertThat(firstList).containsExactlyInAnyOrder(1, 2)

See https://github.com/willowtreeapps/assertk/issues/428#issuecomment-1297721662