diff --git a/src/test/kotlin/com/shr4pnel/ferretirc/IrcClientTest.kt b/src/test/kotlin/com/shr4pnel/ferretirc/IrcClientTest.kt index 7fa3a0a..a864f5e 100644 --- a/src/test/kotlin/com/shr4pnel/ferretirc/IrcClientTest.kt +++ b/src/test/kotlin/com/shr4pnel/ferretirc/IrcClientTest.kt @@ -3,7 +3,6 @@ package com.shr4pnel.ferretirc import com.shr4pnel.ferretirc.net.messages.ServerMessage import io.github.oshai.kotlinlogging.KotlinLogging import kotlinx.coroutines.runBlocking -import kotlinx.coroutines.test.runTest import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test @@ -43,7 +42,9 @@ class IrcClientTest { client.register("shr4p", "Tyler Fullname", "password") guestUser.connect() guestUser.register("guest", "guest", "pass") - client.server + val default = client.server.fetchChannels().first() + client.join(default) + guestUser.join(default) } @JvmStatic @@ -59,38 +60,37 @@ class IrcClientTest { @Test fun pingGetsPong() = - runTest { + runBlocking { val token = "ACK" val msg = Message.Ping(token) - val pong = client.queueAndWaitForNext(msg) + val pong = client.queueMessageAndWaitForNext(msg) assertEquals(token, pong.token, "Token in PING did not match PONG") } @Test fun oper() = - runTest { - client.queueMessage(Message.Oper("shr4p", "password")) - val mode = client.waitForNext() + runBlocking { + val mode = client.queueMessageAndWaitForNext(Message.Oper("shr4p", "password")) assertEquals("shr4p", mode.operatorName, "Received incorrect operator name in MODE") assertEquals("+o", mode.pMask, "Received unexpected mask in MODE") logger.info { "Received MODE with mask ${mode.pMask}" } } @Test - fun listChannels() = - runTest { - val channels = client.server.fetchChannels() - assert(channels.isNotEmpty()) - client.queueMessage(Message.Join(channels.first())) - } + fun listChannels() = runBlocking { + assert( + client.server.channels.value.isNotEmpty(), + ) + } @Test fun messageLands() = - runTest { - val channels = client.server.fetchChannels() + runBlocking { + val channels = client.server.channels.value val message = Message.PrivMsg(channels.first(), "bring me to life") - guestUser.queueMessage(message) - val receivedMessage = client.waitForNext() + val receivedMessage = client.waitForNextMessageAfterAction { + guestUser.queueMessage(message) + } logger.debug { "Message: $message, Received: $receivedMessage" } assertEquals(message.message, receivedMessage.message) assertEquals(message.target.chanName, receivedMessage.targets.first()) @@ -98,8 +98,8 @@ class IrcClientTest { @Test fun manyMessagesLand() = - runTest { - val channels = client.server.fetchChannels() + runBlocking { + val channels = client.server.channels.value val channel = channels.first() val max = 100 @@ -109,7 +109,9 @@ class IrcClientTest { for (i in 1..max) messages.add(Message.PrivMsg(channel, "$i: bring me to life")) for (i in 0.. { guestUser.queueMessage(messages[i]) } + val msg = client.waitForNextMessageAfterAction { + guestUser.queueMessage(messages[i]) + } receivedMessages.add(msg) } for (i in 0..