From bfb4bc32771073255d879c11a8bac9d2a3e60a4b Mon Sep 17 00:00:00 2001 From: tanaka <177859314+hubtanaka@users.noreply.github.com> Date: Wed, 14 Aug 2024 22:05:55 +0900 Subject: [PATCH] add samples for Iterable.toContain....entry --- ...iterableLikeToContainInAnyOrderCreators.kt | 2 + ...ableLikeToContainInAnyOrderOnlyCreators.kt | 2 + ...terableLikeToContainInOrderOnlyCreators.kt | 2 + ...leLikeToContainInAnyOrderCreatorSamples.kt | 45 +++++++++++++++++++ ...keToContainInAnyOrderOnlyCreatorSamples.kt | 35 ++++++++++++++- ...eLikeToContainInOrderOnlyCreatorSamples.kt | 35 ++++++++++++++- 6 files changed, 117 insertions(+), 4 deletions(-) diff --git a/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInAnyOrderCreators.kt b/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInAnyOrderCreators.kt index 77367eb650..fbc5b0d67b 100644 --- a/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInAnyOrderCreators.kt +++ b/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInAnyOrderCreators.kt @@ -73,6 +73,8 @@ fun CheckerStep.values( * @return an [Expect] for the subject of `this` expectation. * * @since 0.14.0 -- API existed for [Iterable] but not for [IterableLike]. + * + * @sample ch.tutteli.atrium.api.fluent.en_GB.samples.IterableLikeToContainInAnyOrderCreatorSamples.entry */ fun CheckerStep.entry( assertionCreatorOrNull: (Expect.() -> Unit)? diff --git a/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInAnyOrderOnlyCreators.kt b/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInAnyOrderOnlyCreators.kt index a7e18fb5ec..9fc362ccc6 100644 --- a/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInAnyOrderOnlyCreators.kt +++ b/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInAnyOrderOnlyCreators.kt @@ -69,6 +69,8 @@ fun EntryPointStep.va * @return an [Expect] for the subject of `this` expectation. * * @since 0.14.0 -- API existed for [Iterable] but not for [IterableLike]. + * + * @sample ch.tutteli.atrium.api.fluent.en_GB.samples.IterableLikeToContainInAnyOrderOnlyCreatorSamples.entry */ fun EntryPointStep.entry( assertionCreatorOrNull: (Expect.() -> Unit)? diff --git a/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInOrderOnlyCreators.kt b/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInOrderOnlyCreators.kt index 6505046714..9bea322618 100644 --- a/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInOrderOnlyCreators.kt +++ b/apis/fluent/atrium-api-fluent/src/commonMain/kotlin/ch/tutteli/atrium/api/fluent/en_GB/iterableLikeToContainInOrderOnlyCreators.kt @@ -67,6 +67,8 @@ fun EntryPointStep.value * @return an [Expect] for the subject of `this` expectation. * * @since 0.14.0 -- API existed for [Iterable] but not for [IterableLike]. + * + * @sample ch.tutteli.atrium.api.fluent.en_GB.samples.IterableLikeToContainInOrderOnlyCreatorSamples.entry */ fun EntryPointStep.entry( assertionCreatorOrNull: (Expect.() -> Unit)? diff --git a/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInAnyOrderCreatorSamples.kt b/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInAnyOrderCreatorSamples.kt index d4091f7e39..6459d4c9c9 100644 --- a/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInAnyOrderCreatorSamples.kt +++ b/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInAnyOrderCreatorSamples.kt @@ -31,6 +31,51 @@ class IterableLikeToContainInAnyOrderCreatorSamples { } } + @Test + fun entry() { + expect(listOf("A", "B")).toContain.inAnyOrder.exactly(1).entry { + toEqual("A") + } + + expect(listOf("A", null, null)).toContain.inAnyOrder.exactly(2).entry(null) // null is identified + + expect(listOf("A", "B", "A", "B")).toContain.inAnyOrder.atLeast(2).entry { + toEqual("A") + } + + expect(listOf("A", "B", "B")).toContain.inAnyOrder.atMost(2).entry { + toEqual("A") + } + + fails { // because the count of "A" is not 2 + expect(listOf("A", "B")).toContain.inAnyOrder.exactly(2).entry { + toEqual("A") + } + } + + fails { // because all elements are not null + expect(listOf("A", "B", "C")).toContain.inAnyOrder.exactly(1).entry(null) + } + + fails { // because assertionCreatorOrNull is non-null and has no expectation + expect(listOf("A", "B", "A", "B")).toContain.inAnyOrder.exactly(1).entry { + /* do nothing */ + } + } + + fails { // because the count of "A" is less than 3 + expect(listOf("A", "B", "A", "B")).toContain.inAnyOrder.atLeast(3).entry { + toEqual("A") + } + } + + fails { // because the count of "B" is more than 2 + expect(listOf("A", "B", "B", "B")).toContain.inAnyOrder.atMost(2).entry { + toEqual("B") + } + } + } + @Test fun elementsOf() { expect(listOf("A", "B")).toContain.inAnyOrder.exactly(1).elementsOf(listOf("A", "B")) diff --git a/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInAnyOrderOnlyCreatorSamples.kt b/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInAnyOrderOnlyCreatorSamples.kt index 695162e27e..281988e952 100644 --- a/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInAnyOrderOnlyCreatorSamples.kt +++ b/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInAnyOrderOnlyCreatorSamples.kt @@ -9,11 +9,11 @@ class IterableLikeToContainInAnyOrderOnlyCreatorSamples { fun value() { expect(listOf("A")).toContain.inAnyOrder.only.value("A") - fails { // because subject list does not contain expected value + fails { // because the List does not contain expected value expect(listOf("B")).toContain.inAnyOrder.only.value("A") } - fails { // because subject list contains multiple elements + fails { // because the List contains multiple elements expect(listOf("A", "A")).toContain.inAnyOrder.only.value("A") } } @@ -37,6 +37,37 @@ class IterableLikeToContainInAnyOrderOnlyCreatorSamples { } } + @Test + fun entry() { + expect(listOf("A")).toContain.inAnyOrder.only.entry { + toEqual("A") + } + + expect(listOf(null)).toContain.inAnyOrder.only.entry(null) + + fails { // because the List does not contain "A" + expect(listOf("B")).toContain.inAnyOrder.only.entry { + toEqual("A") + } + } + + fails { // because the List does not contain null + expect(listOf("A")).toContain.inAnyOrder.only.entry(null) + } + + fails { // because the List contains multiple elements + expect(listOf("A", "A")).toContain.inAnyOrder.only.entry { + toEqual("A") + } + } + + fails { // because assertionCreatorOrNull is non-null and has no expectation + expect(listOf("A", "B", "C")).toContain.inAnyOrder.only.entry { + /* do nothing */ + } + } + } + @Test fun elementsOf() { expect(listOf("A", "B", "C")).toContain.inAnyOrder.only.elementsOf( diff --git a/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInOrderOnlyCreatorSamples.kt b/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInOrderOnlyCreatorSamples.kt index c178dfbe18..cefcf655e3 100644 --- a/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInOrderOnlyCreatorSamples.kt +++ b/apis/fluent/atrium-api-fluent/src/commonTest/kotlin/ch/tutteli/atrium/api/fluent/en_GB/samples/IterableLikeToContainInOrderOnlyCreatorSamples.kt @@ -9,11 +9,11 @@ class IterableLikeToContainInOrderOnlyCreatorSamples { fun value() { expect(listOf("A")).toContain.inOrder.only.value("A") - fails { // because subject list does not contain expected value + fails { // because the List does not contain expected value expect(listOf("B")).toContain.inOrder.only.value("A") } - fails { // because subject list contains multiple elements + fails { // because the List contains multiple elements expect(listOf("A", "A")).toContain.inOrder.only.value("A") } } @@ -49,6 +49,37 @@ class IterableLikeToContainInOrderOnlyCreatorSamples { } } + @Test + fun entry() { + expect(listOf("A")).toContain.inOrder.only.entry { + toEqual("A") + } + + expect(listOf(null)).toContain.inOrder.only.entry(null) + + fails { // because the List does not contain "A" + expect(listOf("B")).toContain.inOrder.only.entry { + toEqual("A") + } + } + + fails { // because the List does not contain null + expect(listOf("A")).toContain.inOrder.only.entry(null) + } + + fails { // because the List contains multiple elements + expect(listOf("A", "A")).toContain.inOrder.only.entry { + toEqual("A") + } + } + + fails { // because assertionCreatorOrNull is non-null and has no expectation + expect(listOf("A", "B", "C")).toContain.inOrder.only.entry { + /* do nothing */ + } + } + } + @Test fun elementsOf() { expect(listOf("A", "B", "C")).toContain.inOrder.only.elementsOf(