Skip to content

Commit

Permalink
Update ParZip7Test.kt (#3267)
Browse files Browse the repository at this point in the history
  • Loading branch information
Tejas Mate authored Nov 4, 2023
1 parent b73aa22 commit d38c768
Showing 1 changed file with 15 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import arrow.fx.coroutines.awaitExitCase
import arrow.fx.coroutines.leftException
import arrow.fx.coroutines.parZip
import arrow.fx.coroutines.throwable
import io.kotest.core.spec.style.StringSpec
import io.kotest.matchers.should
import io.kotest.matchers.shouldBe
import io.kotest.matchers.types.shouldBeTypeOf
Expand All @@ -24,9 +23,12 @@ import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.async
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.test.runTest
import kotlin.test.Test

class ParZip7Test : StringSpec({
"parZip 7 runs in parallel" {
class ParZip7Test {
@Test
fun parZip7RunsInParallel() = runTest {
checkAll(Arb.int(), Arb.int(), Arb.int(), Arb.int(), Arb.int(), Arb.int(), Arb.int()) { a, b, c, d, e, f, g ->
val r = Atomic("")
val modifyGate1 = CompletableDeferred<Unit>()
Expand Down Expand Up @@ -77,8 +79,9 @@ class ParZip7Test : StringSpec({
r.value shouldBe "$g$f$e$d$c$b$a"
}
}

"Cancelling parZip 7 cancels all participants" {

@Test
fun CancellingParZip7CancelsAllParticipants() = runTest {
val s = Channel<Unit>()
val pa = CompletableDeferred<ExitCase>()
val pb = CompletableDeferred<ExitCase>()
Expand Down Expand Up @@ -113,8 +116,9 @@ class ParZip7Test : StringSpec({
pf.await().shouldBeTypeOf<ExitCase.Cancelled>()
pg.await().shouldBeTypeOf<ExitCase.Cancelled>()
}

"parZip 7 cancels losers if a failure occurs in one of the tasks" {

@Test
fun parZip7CancelsLosersIfAFailureOccursInOneOfTheTasks() = runTest {
checkAll(
Arb.throwable(),
Arb.element(listOf(1, 2, 3, 4, 5, 6, 7))
Expand Down Expand Up @@ -157,8 +161,9 @@ class ParZip7Test : StringSpec({
r should leftException(e)
}
}

"parZip CancellationException on right can cancel rest" {

@Test
fun parZipCancellationExceptionOnRightCanCancelRest() = runTest {
checkAll(Arb.string(), Arb.int(1..7)) { msg, cancel ->
val s = Channel<Unit>()
val pa = CompletableDeferred<ExitCase>()
Expand Down Expand Up @@ -197,5 +202,4 @@ class ParZip7Test : StringSpec({
pf.await().shouldBeTypeOf<ExitCase.Cancelled>()
}
}
}
)
}

0 comments on commit d38c768

Please sign in to comment.