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