All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.io.kotest.matchers.collections.contain.kt Maven / Gradle / Ivy

package io.kotest.matchers.collections

import io.kotest.assertions.print.print
import io.kotest.equals.Equality
import io.kotest.matchers.Matcher
import io.kotest.matchers.MatcherResult
import io.kotest.matchers.should
import io.kotest.matchers.shouldNot

// Infix
infix fun  Iterable.shouldNotContain(t: T): Iterable = shouldNotContain(t, Equality.default())
infix fun  Array.shouldNotContain(t: T): Array = shouldNotContain(t, Equality.default())
infix fun  Iterable.shouldContain(t: T): Iterable = shouldContain(t, Equality.default())
infix fun  Array.shouldContain(t: T): Array = shouldContain(t, Equality.default())

// Should not
fun  Iterable.shouldNotContain(t: T, comparator: Equality): Iterable = apply {
   toList() shouldNot contain(t, comparator)
}

fun  Array.shouldNotContain(t: T, comparator: Equality): Array = apply {
   asList().shouldNotContain(t, comparator)
}

// Should
fun  Iterable.shouldContain(t: T, comparator: Equality): Iterable = apply {
   toList() should contain(t, comparator)
}

fun  Array.shouldContain(t: T, comparator: Equality): Array = apply {
   asList().shouldContain(t, comparator)
}

// Matcher
fun > contain(t: T, verifier: Equality = Equality.default()) = object : Matcher {
   override fun test(value: C) = MatcherResult(
      value.any { verifier.verify(it, t).areEqual() },
      {
         "Collection should contain element ${t.print().value} based on ${verifier.name()}; " +
            "but the collection is ${value.print().value}"
      },
      { "Collection should not contain element ${t.print().value} based on ${verifier.name()}" }
   )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy