Browse Source

Add 001 processor

tags/v0.1.0
Chris Smith 5 years ago
parent
commit
03fb542910

+ 0
- 1
src/main/kotlin/com/dmdirc/ktirc/messages/ISupportProcessor.kt View File

@@ -2,7 +2,6 @@ package com.dmdirc.ktirc.messages
2 2
 
3 3
 import com.dmdirc.ktirc.io.CaseMapping
4 4
 import com.dmdirc.ktirc.io.IrcMessage
5
-import com.dmdirc.ktirc.state.ServerFeature
6 5
 import com.dmdirc.ktirc.state.ServerState
7 6
 import com.dmdirc.ktirc.state.serverFeatures
8 7
 import kotlin.reflect.KClass

+ 14
- 0
src/main/kotlin/com/dmdirc/ktirc/messages/WelcomeProcessor.kt View File

@@ -0,0 +1,14 @@
1
+package com.dmdirc.ktirc.messages
2
+
3
+import com.dmdirc.ktirc.io.IrcMessage
4
+import com.dmdirc.ktirc.state.ServerState
5
+
6
+class WelcomeProcessor(private val serverState: ServerState) : MessageProcessor {
7
+
8
+    override val commands = arrayOf("001")
9
+
10
+    override fun process(message: IrcMessage) {
11
+        serverState.localNickname = String(message.params[0])
12
+    }
13
+
14
+}

+ 28
- 0
src/test/kotlin/com/dmdirc/ktirc/messages/WelcomeProcessorTest.kt View File

@@ -0,0 +1,28 @@
1
+package com.dmdirc.ktirc.messages
2
+
3
+import com.dmdirc.ktirc.io.IrcMessage
4
+import com.dmdirc.ktirc.state.ServerState
5
+import com.nhaarman.mockitokotlin2.mock
6
+import com.nhaarman.mockitokotlin2.verify
7
+import org.junit.jupiter.api.Assertions.*
8
+import org.junit.jupiter.api.Test
9
+
10
+internal class WelcomeProcessorTest {
11
+
12
+    private val state = mock<ServerState>()
13
+    private val processor = WelcomeProcessor(state)
14
+
15
+    @Test
16
+    fun `WelcomeProcessor can handle 001s`() {
17
+        assertTrue(processor.commands.contains("001")) { "WelcomeProcessor should handle 001 messages" }
18
+    }
19
+
20
+    @Test
21
+    fun `WelcomeProcessor parses local nickname`() {
22
+        processor.process(IrcMessage(null, ":thegibson.com".toByteArray(), "001", listOf(
23
+                "acidBurn".toByteArray(),
24
+                "Welcome to the Internet Relay Network, acidBurn!burn@hacktheplanet.com".toByteArray())))
25
+        verify(state).localNickname = "acidBurn"
26
+    }
27
+
28
+}

Loading…
Cancel
Save