Skip to content

Commit

Permalink
Update ParZip5Test.kt (#3269)
Browse files Browse the repository at this point in the history
  • Loading branch information
Tejas Mate authored Nov 4, 2023
1 parent f72e042 commit 6aad57d
Showing 1 changed file with 14 additions and 10 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 ParZip5Test : StringSpec({
"parZip 5 runs in parallel" {
class ParZip5Test {
@Test
fun parZip5RunsInParallel() = runTest {
checkAll(Arb.int(), Arb.int(), Arb.int(), Arb.int(), Arb.int()) { a, b, c, d, e ->
val r = Atomic("")
val modifyGate1 = CompletableDeferred<Unit>()
Expand Down Expand Up @@ -65,8 +67,9 @@ class ParZip5Test : StringSpec({
r.value shouldBe "$e$d$c$b$a"
}
}

"Cancelling parZip 5 cancels all participants" {

@Test
fun CancellingParZip5CancelsAllParticipants() = runTest {
val s = Channel<Unit>()
val pa = CompletableDeferred<ExitCase>()
val pb = CompletableDeferred<ExitCase>()
Expand Down Expand Up @@ -101,8 +104,9 @@ class ParZip5Test : StringSpec({
pd.await().shouldBeTypeOf<ExitCase.Cancelled>()
pe.await().shouldBeTypeOf<ExitCase.Cancelled>()
}

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

@Test
fun parZip5CancelsLosersIfAFailureOccursInOneOfTheTasks() = runTest {
checkAll(
Arb.throwable(),
Arb.element(listOf(1, 2, 3, 4, 5)),
Expand Down Expand Up @@ -136,8 +140,9 @@ class ParZip5Test : StringSpec({
r should leftException(e)
}
}

"parZip CancellationException on right can cancel rest" {

@Test
fun parZipCancellationExceptionOnRightCanCancelRest() = runTest {
checkAll(Arb.string(), Arb.int(1..5)) { msg, cancel ->
val s = Channel<Unit>()
val pa = CompletableDeferred<ExitCase>()
Expand Down Expand Up @@ -169,4 +174,3 @@ class ParZip5Test : StringSpec({
}
}
}
)

0 comments on commit 6aad57d

Please sign in to comment.