aboutsummaryrefslogtreecommitdiffstats
path: root/kotlinx-coroutines-core/jvm/test/channels/ActorTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'kotlinx-coroutines-core/jvm/test/channels/ActorTest.kt')
-rw-r--r--kotlinx-coroutines-core/jvm/test/channels/ActorTest.kt31
1 files changed, 22 insertions, 9 deletions
diff --git a/kotlinx-coroutines-core/jvm/test/channels/ActorTest.kt b/kotlinx-coroutines-core/jvm/test/channels/ActorTest.kt
index bdca5039..5a2778d5 100644
--- a/kotlinx-coroutines-core/jvm/test/channels/ActorTest.kt
+++ b/kotlinx-coroutines-core/jvm/test/channels/ActorTest.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ * Copyright 2016-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
package kotlinx.coroutines.channels
@@ -69,11 +69,11 @@ class ActorTest(private val capacity: Int) : TestBase() {
@Test
fun testCloseWithoutCause() = runTest {
val actor = actor<Int>(capacity = capacity) {
- val element = channel.receiveOrNull()
+ val element = channel.receive()
expect(2)
assertEquals(42, element)
- val next = channel.receiveOrNull()
- assertNull(next)
+ val next = channel.receiveCatching()
+ assertNull(next.exceptionOrNull())
expect(3)
}
@@ -88,11 +88,11 @@ class ActorTest(private val capacity: Int) : TestBase() {
@Test
fun testCloseWithCause() = runTest {
val actor = actor<Int>(capacity = capacity) {
- val element = channel.receiveOrNull()
+ val element = channel.receive()
expect(2)
- require(element!! == 42)
+ require(element == 42)
try {
- channel.receiveOrNull()
+ channel.receive()
} catch (e: IOException) {
expect(3)
}
@@ -111,7 +111,7 @@ class ActorTest(private val capacity: Int) : TestBase() {
val job = async {
actor<Int>(capacity = capacity) {
expect(1)
- channel.receiveOrNull()
+ channel.receive()
expectUnreached()
}
}
@@ -173,11 +173,24 @@ class ActorTest(private val capacity: Int) : TestBase() {
fun testCloseFreshActor() = runTest {
for (start in CoroutineStart.values()) {
val job = launch {
- val actor = actor<Int>(start = start) { for (i in channel) {} }
+ val actor = actor<Int>(start = start) {
+ for (i in channel) {
+ }
+ }
actor.close()
}
job.join()
}
}
+
+ @Test
+ fun testCancelledParent() = runTest({ it is CancellationException }) {
+ cancel()
+ expect(1)
+ actor<Int> {
+ expectUnreached()
+ }
+ finish(2)
+ }
}