Best Kotest code snippet using io.kotest.matchers.collections.containAll
AbstractDependencyNavigatorTest.kt
Source:AbstractDependencyNavigatorTest.kt  
...19package org.ossreviewtoolkit.model20import io.kotest.core.spec.style.WordSpec21import io.kotest.matchers.collections.beEmpty22import io.kotest.matchers.collections.contain23import io.kotest.matchers.collections.containAll24import io.kotest.matchers.collections.containExactly25import io.kotest.matchers.collections.containExactlyInAnyOrder26import io.kotest.matchers.collections.haveSize27import io.kotest.matchers.collections.shouldContainExactlyInAnyOrder28import io.kotest.matchers.maps.containExactly as containExactlyEntries29import io.kotest.matchers.sequences.beEmpty as beEmptySequence30import io.kotest.matchers.sequences.containExactly as containSequenceExactly31import io.kotest.matchers.should32import io.kotest.matchers.shouldBe33import io.kotest.matchers.shouldNot34import io.kotest.matchers.shouldNotBe35import java.io.File36import java.time.Instant37import org.ossreviewtoolkit.utils.test.readOrtResult38import org.ossreviewtoolkit.utils.test.shouldNotBeNull39/**40 * A base class for tests of concrete [DependencyNavigator] implementations.41 *42 * The class is configured with an ORT result file that contains the expected results in a specific format. It then43 * runs tests on the [DependencyNavigator] of this result and checks whether it returns the correct dependency44 * information.45 */46abstract class AbstractDependencyNavigatorTest : WordSpec() {47    /** The name of the result file to be used by all test cases. */48    protected abstract val resultFileName: String49    /**50     * The name of the file with a result that contains issues. This is used by tests of the collectIssues() function.51     */52    protected abstract val resultWithIssuesFileName: String53    private val testResult by lazy { readOrtResult(resultFileName) }54    private val testProject by lazy { testResult.getProject(PROJECT_ID)!! }55    protected val navigator by lazy { testResult.dependencyNavigator }56    init {57        "scopeNames" should {58            "return the scope names of a project" {59                navigator.scopeNames(testProject) should containExactlyInAnyOrder("compile", "test")60            }61        }62        "directDependencies" should {63            "return the direct dependencies of a project" {64                navigator.directDependencies(testProject, "test").map { it.id } should containSequenceExactly(65                    Identifier("Maven:org.scalacheck:scalacheck_2.12:1.13.5"),66                    Identifier("Maven:org.scalatest:scalatest_2.12:3.0.4")67                )68            }69            "return an empty sequence for an unknown scope" {70                navigator.directDependencies(testProject, "unknownScope") should beEmptySequence()71            }72        }73        "scopeDependencies" should {74            "return a map with scopes and their dependencies for a project" {75                val scopeDependencies = navigator.scopeDependencies(testProject)76                scopeDependencies.keys should containExactlyInAnyOrder("compile", "test")77                scopeDependencies["compile"] shouldNotBeNull {78                    this should haveSize(17)79                    this should containAll(80                        Identifier("Maven:com.typesafe.akka:akka-actor_2.12:2.5.6"),81                        Identifier("Maven:org.scala-lang:scala-reflect:2.12.2"),82                        Identifier("Maven:org.scala-lang:scala-library:2.12.3")83                    )84                }85                scopeDependencies["test"] shouldNotBeNull {86                    this should haveSize(6)87                    this should containAll(88                        Identifier("Maven:org.scalacheck:scalacheck_2.12:1.13.5"),89                        Identifier("Maven:org.scalactic:scalactic_2.12:3.0.4")90                    )91                }92            }93            "return a map with scopes and their direct dependencies by using maxDepth = 1" {94                val scopeDependencies = navigator.scopeDependencies(testProject, maxDepth = 1)95                scopeDependencies["compile"] shouldNotBeNull {96                    this should haveSize(7)97                    this shouldNot contain(Identifier("Maven:com.typesafe.akka:akka-actor_2.12:2.5.6"))98                }99            }100            "return a map with scopes and their dependencies up to a given maxDepth" {101                val scopeDependencies = navigator.scopeDependencies(testProject, maxDepth = 2)102                scopeDependencies["compile"] shouldNotBeNull {103                    this should haveSize(14)104                    this shouldNot contain(105                        Identifier("Maven:org.scala-lang.modules:scala-java8-compat_2.12:0.8.0")106                    )107                }108            }109            "return a map with scopes and their dependencies with filter criteria" {110                val matchedIds = mutableSetOf<Identifier>()111                val scopeDependencies = navigator.scopeDependencies(testProject) { node ->112                    matchedIds += node.id113                    node.id.namespace == "com.typesafe.akka"114                }115                scopeDependencies["compile"] shouldNotBeNull {116                    this should containExactlyInAnyOrder(117                        Identifier("Maven:com.typesafe.akka:akka-actor_2.12:2.5.6"),118                        Identifier("Maven:com.typesafe.akka:akka-stream_2.12:2.5.6")119                    )120                }121                matchedIds should haveSize(23)122            }123        }124        "dependenciesForScope" should {125            "return an empty set for an unknown scope" {126                navigator.dependenciesForScope(testProject, "unknownScope") should beEmpty()127            }128            "return the dependencies of a specific scope" {129                val compileDependencies = navigator.dependenciesForScope(testProject, "compile")130                compileDependencies should haveSize(17)131                compileDependencies should containAll(132                    Identifier("Maven:com.typesafe.akka:akka-actor_2.12:2.5.6"),133                    Identifier("Maven:org.scala-lang:scala-reflect:2.12.2"),134                    Identifier("Maven:org.scala-lang:scala-library:2.12.3")135                )136            }137            "return the dependencies of a specific scope up to a given maxDepth" {138                val compileDependencies = navigator.dependenciesForScope(testProject, "compile", maxDepth = 2)139                compileDependencies should haveSize(14)140                compileDependencies shouldNot contain(141                    Identifier("Maven:org.scala-lang.modules:scala-java8-compat_2.12:0.8.0")142                )143            }144            "return the dependencies of a specific scope with filter criteria" {145                val akkaDependencies = navigator.dependenciesForScope(testProject, "compile") { node ->...RunRobotConfigurationTest.kt
Source:RunRobotConfigurationTest.kt  
...4import de.qualersoft.robotframework.gradleplugin.extensions.RobotFrameworkExtension5import de.qualersoft.robotframework.gradleplugin.robotframework6import io.kotest.matchers.collections.beEmpty7import io.kotest.matchers.collections.contain8import io.kotest.matchers.collections.containAll9import io.kotest.matchers.collections.containsInOrder10import io.kotest.matchers.collections.haveSize11import io.kotest.matchers.should12import io.kotest.matchers.shouldNot13import org.gradle.api.Project14import org.gradle.testfixtures.ProjectBuilder15import org.junit.jupiter.api.Test16import org.junit.jupiter.api.assertAll17import java.io.File18import java.nio.file.Paths1920internal class RunRobotConfigurationTest : ConfigurationTestBase() {2122  private val project: Project = ProjectBuilder.builder().build().also {23    it.pluginManager.apply(PLUGIN_ID)24  }2526  private val rf: RobotFrameworkExtension = project.robotframework()2728  @Test29  fun settingTheSuiteStatLevelOfBotRobotConfiguration() {30    val result = applyConfig {31      it.suiteStatLevel.set(5)32    }.generateArguments().toList()3334    assertAll(35      { result should containsInOrder(listOf("--suitestatlevel", "5")) }36    )37  }3839  @Test40  fun `generate default run arguments`() {41    val result = applyConfig { }.generateArguments().toList()42    val expected = createDefaultsWithoutExtensionParam() + listOf("-F", "robot")43    assertAll(44      { result should haveSize(expected.size) },45      { result should containAll(expected) }46    )47  }4849  @Test50  fun `add an extension to default should override default entry`() {51    val result = applyConfig {52      it.extension.add("newRobot")53    }.generateArguments().toList()54    val expected = createDefaultsWithoutExtensionParam() + listOf("-F", "newRobot")55    assertAll(56      { result should haveSize(expected.size) },57      { result should containAll(expected) },58      { result shouldNot contain("robot") }59    )60  }6162  @Test63  fun `add two extensions should result in two entries`() {64    val result = applyConfig {65      it.extension.add("newRobot1")66      it.extension.add("newRobot2")67    }.generateArguments().toList()68    val expected = createDefaultsWithoutExtensionParam() + listOf("-F", "newRobot1", "-F", "newRobot2")69    assertAll(70      { result should haveSize(expected.size) },71      { result should containAll(expected) },72      { result shouldNot contain("robot") }73    )74  }7576  @Test77  fun `empty the extension should also remove default`() {78    val result = applyConfig {79      it.extension.empty()80    }.generateArguments().toList()81    val expected = createDefaultsWithoutExtensionParam()82    assertAll(83      { result should haveSize(expected.size) },84      { result should containAll(expected) },85      { result shouldNot contain("robot") }86    )87  }8889  @Test90  fun addSingleVariable() {91    val result = applyConfig {92      it.variables.put("MyVar", "42")93    }.generateArguments().toList()9495    assertAll(96      { result shouldNot beEmpty() },97      { result should containsInOrder(listOf("-v", "MyVar:42")) }98    )99  }100101  @Test102  fun addMultibleVariables() {103    val result = applyConfig {104      it.variables.putAll(mapOf("MyVar1" to "42", "MyVar2" to "0815"))105    }.generateArguments().toList()106107    assertAll(108      { result shouldNot beEmpty() },109      { result should containsInOrder(listOf("-v", "MyVar1:42")) },110      { result should containsInOrder(listOf("-v", "MyVar2:0815")) }111    )112  }113114  @Test115  fun addVariableFiles() {116    val result = applyConfig {117      it.variableFiles.add("./settings.property")118    }.generateArguments().toList()119    val expected = createDefaults() + listOf("-V", "./settings.property")120    assertAll(121      { result should haveSize(expected.size) },122      { result should containAll(expected) }123    )124  }125126  @Test127  fun addDebugFile() {128    val file = if (System.getProperty("os.name").contains("wind", true)) {129      File("C:\\temp")130    } else {131      File("/temp")132    }133134    val result = applyConfig {135      it.debugFile.fileValue(file)136    }.generateArguments().toList()137    val expected = createDefaults() + listOf("-b", file.absolutePath)138    assertAll(139      { result should haveSize(expected.size) },140      { result should containAll(expected) }141    )142  }143144  @Test145  fun `set maxerrorlines to negative will generate NONE entry`() {146    val result = applyConfig {147      it.maxErrorLines.set(-1)148    }.generateArguments().toList()149    val expected = listOf(150      "-d", Paths.get(project.buildDir.absolutePath, "reports", "robotframework").toFile().absolutePath,151      "-l", "log.html", "-r", "report.html", "-x", "robot-xunit-results.xml", "-F", "robot",152      "--randomize", "none", "--console", "verbose", "-W", "78", "-K", "auto", "--maxerrorlines", "none"153    )154    assertAll(155      { result should haveSize(expected.size) },156      { result should containAll(expected) },157      { result shouldNot contain("40") }158    )159  }160161  @Test162  fun addListener() {163    val result = applyConfig {164      it.listener.add("aListener")165    }.generateArguments().toList()166    val expected = createDefaults() + listOf("--listener", "aListener")167    assertAll(168      { result should haveSize(expected.size) },169      { result should containAll(expected) }170    )171  }172173  @Test174  fun enableDryrunMode() {175    val result = applyConfig {176      it.dryrun.set(true)177    }.generateArguments().toList()178    val expected = createDefaults() + listOf("--dryrun")179    assertAll(180      { result should haveSize(expected.size) },181      { result should containAll(expected) }182    )183  }184185  @Test186  fun enableExitOnFailureMode() {187    val result = applyConfig {188      it.exitOnFailure.set(true)189    }.generateArguments().toList()190    val expected = createDefaults() + listOf("-X")191    assertAll(192      { result should haveSize(expected.size) },193      { result should containAll(expected) }194    )195  }196197  @Test198  fun enableExitOnErrorMode() {199    val result = applyConfig {200      it.exitOnError.set(true)201    }.generateArguments().toList()202    val expected = createDefaults() + listOf("--exitonerror")203    assertAll(204      { result should haveSize(expected.size) },205      { result should containAll(expected) }206    )207  }208209  @Test210  fun enableSkipTearDownOnExitMode() {211    val result = applyConfig {212      it.skipTearDownOnExit.set(true)213    }.generateArguments().toList()214    val expected = createDefaults() + listOf("--skipteardownonexit")215    assertAll(216      { result should haveSize(expected.size) },217      { result should containAll(expected) }218    )219  }220221  @Test222  fun changeRandomizeMode() {223    val result = applyConfig {224      it.randomize.set("tests:1234")225    }.generateArguments().toList()226    val expected = listOf(227      "-d", Paths.get(project.buildDir.absolutePath, "reports", "robotframework").toFile().absolutePath,228      "-l", "log.html", "-r", "report.html", "-x", "robot-xunit-results.xml", "-F", "robot",229      "--randomize", "tests:1234", "--console", "verbose", "-W", "78", "-K", "auto", "--maxerrorlines", "40"230    )231    assertAll(232      { result should haveSize(expected.size) },233      { result should containAll(expected) },234      { result shouldNot contain("none") }235    )236  }237238  @Test239  fun addPreRunModifier() {240    val result = applyConfig {241      it.preRunModifier.add("preRun")242    }.generateArguments().toList()243    val expected = createDefaults() + listOf("--prerunmodifier", "preRun")244    assertAll(245      { result should haveSize(expected.size) },246      { result should containAll(expected) }247    )248  }249250  @Test251  fun addPreRebotModifier() {252    val result = applyConfig {253      it.preRebotModifier.add("preRebot")254    }.generateArguments().toList()255    val expected = createDefaults() + listOf("--prerebotmodifier", "preRebot")256    assertAll(257      { result should haveSize(expected.size) },258      { result should containAll(expected) }259    )260  }261262  @Test263  fun changeConsoleMode() {264    val result = applyConfig {265      it.console.set("none")266    }.generateArguments().toList()267    val expected = listOf(268      "-d", Paths.get(project.buildDir.absolutePath, "reports", "robotframework").toFile().absolutePath,269      "-l", "log.html", "-r", "report.html", "-x", "robot-xunit-results.xml", "-F", "robot",270      "--randomize", "none", "--console", "none", "-W", "78", "-K", "auto", "--maxerrorlines", "40"271    )272    assertAll(273      { result should haveSize(expected.size) },274      { result should containAll(expected) },275      { result shouldNot contain("verbose") }276    )277  }278279  @Test280  fun enableDottedMode() {281    val result = applyConfig {282      it.dotted.set(true)283    }.generateArguments().toList()284    val expected = createDefaults() + listOf("-.")285    assertAll(286      { result should haveSize(expected.size) },287      { result should containAll(expected) }288    )289  }290291  @Test292  fun enableQuiteMode() {293    val result = applyConfig {294      it.quite.set(true)295    }.generateArguments().toList()296    val expected = createDefaults() + listOf("--quite")297    assertAll(298      { result should haveSize(expected.size) },299      { result should containAll(expected) }300    )301  }302303  @Test304  fun changeConsoleWidth() {305    val result = applyConfig {306      it.consoleWidth.set(10)307    }.generateArguments().toList()308    val expected = listOf(309      "-d", Paths.get(project.buildDir.absolutePath, "reports", "robotframework").toFile().absolutePath,310      "-l", "log.html", "-r", "report.html", "-x", "robot-xunit-results.xml", "-F", "robot",311      "--randomize", "none", "--console", "verbose", "-W", "10", "-K", "auto", "--maxerrorlines", "40"312    )313    assertAll(314      { result should haveSize(expected.size) },315      { result should containAll(expected) },316      { result shouldNot contain("78") }317    )318  }319320  @Test321  fun changeConsoleMarkers() {322    val result = applyConfig {323      it.consoleMarkers.set("on")324    }.generateArguments().toList()325    val expected = listOf(326      "-d", Paths.get(project.buildDir.absolutePath, "reports", "robotframework").toFile().absolutePath,327      "-l", "log.html", "-r", "report.html", "-x", "robot-xunit-results.xml", "-F", "robot",328      "--randomize", "none", "--console", "verbose", "-W", "78", "-K", "on", "--maxerrorlines", "40"329    )330    assertAll(331      { result should haveSize(expected.size) },332      { result should containAll(expected) },333      { result shouldNot contain("auto") }334    )335  }336337  private fun applyConfig(conf: (RunRobotConfiguration) -> Unit): RunRobotConfiguration {338    rf.robot(conf)339    return rf.robot.get()340  }341342  private fun createDefaultsWithoutExtensionParam() = listOf(343    "-d", Paths.get(project.buildDir.absolutePath, "reports", "robotframework").toFile().absolutePath,344    "-l", "log.html", "-r", "report.html", "-x", "robot-xunit-results.xml", "--maxerrorlines", "40",345    "--randomize", "none", "--console", "verbose", "-W", "78", "-K", "auto"346  )
...WineryRepositoryIT.kt
Source:WineryRepositoryIT.kt  
...28        "findAllForUser" should {29            "return the correct wineries" {30                val res: List<WineryWithDependencies> = repository.findAllForUser(dataSet.userOneId).collectList().block()!!31                res should haveSize(2)32                res should containAll(dataSet.petrusWineryWithDependencies, dataSet.cazeneuveWineryWithDependencies)33            }34        }35        "save" should {36            "save a new winery" {37                val newWinery = WineryEntity(UUID.randomUUID(), null, "New Winery", dataSet.languedocRegion.ID, dataSet.userOneId)38                val res = repository.save(newWinery).block()!!39                repository.findById(res.ID).block() shouldBe newWinery.copy(version = 0)40            }41            "update an existing region" {42                val updatedWinery = dataSet.cazeneuveWinery.copy(name = "Cazeneuve Winery")43                val versionBefore = updatedWinery.version()44                val res = repository.save(updatedWinery).block()!!45                res shouldBe updatedWinery.copy(version = versionBefore + 1)46            }...RegionRepositoryIT.kt
Source:RegionRepositoryIT.kt  
...28        "findAllForUser" should {29            "return the correct regions" {30                val res = repository.findAllForUser(dataSet.userOneId).collectList().block()!!31                res should haveSize(3)32                res should containAll(dataSet.pomerolRegion, dataSet.picSaintLoupRegion, dataSet.languedocRegion)33            }34        }35        "save" should {36            "save a new region" {37                val newRegion = RegionEntity(UUID.randomUUID(), null, "New region", "New country", dataSet.userOneId)38                val res = repository.save(newRegion).block()!!39                repository.findById(res.ID).block() shouldBe newRegion.copy(version = 0)40            }41            "update an existing region" {42                val updatedRegion = dataSet.picSaintLoupRegion.copy(name = "Pic-St-Loup")43                val versionBefore = updatedRegion.version()44                val res = repository.save(updatedRegion).block()!!45                res shouldBe updatedRegion.copy(version = versionBefore + 1)46            }...ScanOssResultParserTest.kt
Source:ScanOssResultParserTest.kt  
...17 * License-Filename: LICENSE18 */19package org.ossreviewtoolkit.scanner.scanners.scanoss20import io.kotest.core.spec.style.WordSpec21import io.kotest.matchers.collections.containAll22import io.kotest.matchers.collections.containExactlyInAnyOrder23import io.kotest.matchers.collections.haveSize24import io.kotest.matchers.should25import java.io.File26import java.time.Instant27import kotlinx.serialization.json.decodeFromStream28import org.ossreviewtoolkit.clients.scanoss.FullScanResponse29import org.ossreviewtoolkit.clients.scanoss.ScanOssService30import org.ossreviewtoolkit.model.CopyrightFinding31import org.ossreviewtoolkit.model.LicenseFinding32import org.ossreviewtoolkit.model.TextLocation33import org.ossreviewtoolkit.utils.spdx.SpdxConstants34class ScanOssResultParserTest : WordSpec({35    "generateSummary()" should {36        "properly summarize JUnit 4.12 findings" {37            val result = File("src/test/assets/scanoss-junit-4.12.json").inputStream().use {38                ScanOssService.JSON.decodeFromStream<FullScanResponse>(it)39            }40            val time = Instant.now()41            val summary = generateSummary(time, time, SpdxConstants.NONE, result)42            summary.licenses.map { it.toString() } should containExactlyInAnyOrder(43                "Apache-2.0",44                "EPL-1.0",45                "MIT",46                "LicenseRef-scancode-free-unknown",47                "LicenseRef-scanoss-SSPL"48            )49            summary.licenseFindings should haveSize(201)50            summary.licenseFindings should containAll(51                LicenseFinding(52                    license = "Apache-2.0",53                    location = TextLocation(54                        path = "hopscotch-rails-0.1.2.1/vendor/assets/javascripts/hopscotch.js",55                        startLine = TextLocation.UNKNOWN_LINE,56                        endLine = TextLocation.UNKNOWN_LINE57                    )58                )59            )60            summary.copyrightFindings should haveSize(7)61            summary.copyrightFindings should containAll(62                CopyrightFinding(63                    statement = "Copyright 2013 LinkedIn Corp.",64                    location = TextLocation(65                        path = "hopscotch-rails-0.1.2.1/vendor/assets/javascripts/hopscotch.js",66                        startLine = TextLocation.UNKNOWN_LINE,67                        endLine = TextLocation.UNKNOWN_LINE68                    )69                )70            )71        }72    }73})...containAll.kt
Source:containAll.kt  
...4import io.kotest.matchers.should5import io.kotest.matchers.shouldNot6fun <T> Iterable<T>.shouldContainAll(vararg ts: T) = toList().shouldContainAll(ts)7fun <T> Array<T>.shouldContainAll(vararg ts: T) = asList().shouldContainAll(ts)8fun <T> Collection<T>.shouldContainAll(vararg ts: T) = this should containAll(*ts)9infix fun <T> Iterable<T>.shouldContainAll(ts: Collection<T>) = toList().shouldContainAll(ts)10infix fun <T> Array<T>.shouldContainAll(ts: Collection<T>) = asList().shouldContainAll(ts)11infix fun <T> Collection<T>.shouldContainAll(ts: Collection<T>) = this should containAll(ts)12fun <T> Iterable<T>.shouldNotContainAll(vararg ts: T) = toList().shouldNotContainAll(ts)13fun <T> Array<T>.shouldNotContainAll(vararg ts: T) = asList().shouldNotContainAll(ts)14fun <T> Collection<T>.shouldNotContainAll(vararg ts: T) = this shouldNot containAll(*ts)15infix fun <T> Iterable<T>.shouldNotContainAll(ts: Collection<T>) = toList().shouldNotContainAll(ts)16infix fun <T> Array<T>.shouldNotContainAll(ts: Collection<T>) = asList().shouldNotContainAll(ts)17infix fun <T> Collection<T>.shouldNotContainAll(ts: Collection<T>) = this shouldNot containAll(ts)18fun <T> containAll(vararg ts: T) = containAll(ts.asList())19fun <T> containAll(ts: Collection<T>): Matcher<Collection<T>> = object : Matcher<Collection<T>> {20   override fun test(value: Collection<T>): MatcherResult {21      val missing = ts.filterNot { value.contains(it) }22      val passed = missing.isEmpty()23      val failure =24         { "Collection should contain all of ${ts.printed().value} but was missing ${missing.printed().value}" }25      val negFailure = { "Collection should not contain all of ${ts.printed().value}" }26      return MatcherResult(passed, failure, negFailure)27   }28}...ShouldContainAllTest.kt
Source:ShouldContainAllTest.kt  
1package com.sksamuel.kotest.matchers.collections2import io.kotest.assertions.throwables.shouldThrow3import io.kotest.core.spec.style.WordSpec4import io.kotest.matchers.collections.containAll5import io.kotest.matchers.collections.shouldContainAll6import io.kotest.matchers.collections.shouldNotContainAll7import io.kotest.matchers.should8import io.kotest.matchers.throwable.shouldHaveMessage9class ShouldContainAllTest : WordSpec() {10   init {11      "containsAll" should {12         "test that a collection contains all the elements but in any order" {13            val col = listOf(1, 2, 3, 4, 5)14            col should containAll(1, 2, 3)15            col should containAll(3, 2, 1)16            col should containAll(5, 1)17            col should containAll(1, 5)18            col should containAll(1)19            col should containAll(5)20            col.shouldContainAll(1, 2, 3)21            col.shouldContainAll(3, 1)22            col.shouldContainAll(3)23            col.shouldNotContainAll(6)24            col.shouldNotContainAll(1, 6)25            col.shouldNotContainAll(6, 1)26            shouldThrow<AssertionError> {27               col should containAll(1, 2, 6)28            }29            shouldThrow<AssertionError> {30               col should containAll(6)31            }32            shouldThrow<AssertionError> {33               col should containAll(0, 1, 2)34            }35            shouldThrow<AssertionError> {36               col should containAll(3, 2, 0)37            }38         }39         "print missing elements" {40            shouldThrow<AssertionError> {41               listOf<Number>(1, 2).shouldContainAll(listOf<Number>(1L, 2L))42            }.shouldHaveMessage("""Collection should contain all of [1L, 2L] but was missing [1L, 2L]""")43         }44      }45   }46}...UserRepositoryTests.kt
Source:UserRepositoryTests.kt  
1package dev.jmfayard2import io.kotest.matchers.collections.containAll3import io.kotest.matchers.should4import io.kotest.matchers.shouldBe5import kotlinx.coroutines.flow.toList6import kotlinx.coroutines.runBlocking7import org.junit.jupiter.api.AfterAll8import org.junit.jupiter.api.Assertions.assertEquals9import org.junit.jupiter.api.BeforeAll10import org.junit.jupiter.api.Test11import org.springframework.beans.factory.getBean12import org.springframework.context.ConfigurableApplicationContext13import org.springframework.fu.kofu.application14class UserRepositoryTests {15    private val dataApp = application {16        enable(dataConfig)17    }18    private lateinit var context: ConfigurableApplicationContext19    @BeforeAll20    fun beforeAll() {21        context = dataApp.run(profiles = "test")22    }23    @Test24    fun count() {25        val repository = context.getBean<UserRepository>()26        runBlocking {27            assertEquals(3, repository.count())28        }29    }30    @Test31    fun findAll() {32        val repository = context.getBean<UserRepository>()33        val expected = listOf(34            User("smaldini", "Stéphane", "Maldini"),35            User("sdeleuze", "Sébastien", "Deleuze"),36            User("bclozel", "Brian", "Clozel")37        )38        runBlocking {39            repository.findAll().toList() should containAll(expected)40        }41    }42    @AfterAll43    fun afterAll() {44        context.close()45    }46}...containAll
Using AI Code Generation
1import io.kotest.matchers.collections.containAll2fun main(args: Array<String>) {3val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9)4list should containAll(list)5list should containAll(1, 2, 3, 4, 5, 6, 7, 8, 9)6}7Kotlin containsAll() example8Kotlin containsAll() exampLearn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
