12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package com.dmdirc.ktirc.messages
-
- import com.dmdirc.ktirc.io.CaseMapping
- import com.dmdirc.ktirc.io.IrcMessage
- import com.dmdirc.ktirc.state.ServerFeature
- import com.dmdirc.ktirc.state.ServerState
- import com.nhaarman.mockitokotlin2.mock
- import com.nhaarman.mockitokotlin2.verify
- import org.junit.jupiter.api.Assertions.*
- import org.junit.jupiter.api.Test
-
- internal class ISupportProcessorTest {
-
- private val state = mock<ServerState>()
- private val processor = ISupportProcessor(state)
-
- @Test
- fun `ISupportProcessor can handle 005s`() {
- assertTrue(processor.commands.contains("005")) { "ISupportProcessor should handle 005 messages" }
- }
-
- @Test
- fun `ISupportProcessor handles multiple numeric arguments`() {
- processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
- listOf("nickname", "CHANLIMIT=123", "CHANNELLEN=456", "are supported blah blah").map { it.toByteArray() }))
-
- verify(state).setFeature(ServerFeature.MaximumChannels, 123)
- verify(state).setFeature(ServerFeature.MaximumChannelNameLength, 456)
- }
-
- @Test
- fun `ISupportProcessor handles string arguments`() {
- processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
- listOf("nickname", "CHANMODES=abcd", "are supported blah blah").map { it.toByteArray() }))
-
- verify(state).setFeature(ServerFeature.ChannelModes, "abcd")
- }
-
- @Test
- fun `ISupportProcessor handles resetting arguments`() {
- processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
- listOf("nickname", "-CHANMODES", "are supported blah blah").map { it.toByteArray() }))
-
- verify(state).resetFeature(ServerFeature.ChannelModes)
- }
-
- @Test
- fun `ISupportProcessor handles case mapping arguments`() {
- processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
- listOf("nickname", "CASEMAPPING=rfc1459-strict", "are supported blah blah").map { it.toByteArray() }))
-
- verify(state).setFeature(ServerFeature.ServerCaseMapping, CaseMapping.RfcStrict)
- }
-
- }
|