12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package com.dmdirc.ktirc.events.handlers
-
- import com.dmdirc.ktirc.IrcClient
- import com.dmdirc.ktirc.TestConstants
- import com.dmdirc.ktirc.events.*
- import com.dmdirc.ktirc.model.ServerFeature
- import com.dmdirc.ktirc.model.ServerFeatureMap
- import com.dmdirc.ktirc.model.ServerState
- import com.dmdirc.ktirc.model.ServerStatus
- import io.mockk.every
- import io.mockk.mockk
- import org.junit.jupiter.api.Assertions.*
- import org.junit.jupiter.api.Test
-
- internal class ServerStateHandlerTest {
-
- private val fakeServerState = ServerState("", "")
- private val ircClient = mockk<IrcClient> {
- every { serverState } returns fakeServerState
- }
-
- private val handler = ServerStateHandler()
-
- @Test
- fun `sets local nickname on welcome event`() {
- handler.processEvent(ircClient, ServerWelcome(EventMetadata(TestConstants.time), "the.gibson", "acidBurn"))
- assertEquals("acidBurn", fakeServerState.localNickname)
- }
-
- @Test
- fun `sets server name on welcome event`() {
- handler.processEvent(ircClient, ServerWelcome(EventMetadata(TestConstants.time), "the.gibson", "acidBurn"))
- assertEquals("the.gibson", fakeServerState.serverName)
- }
-
- @Test
- fun `sets receivedWelcome on welcome event`() {
- handler.processEvent(ircClient, ServerWelcome(EventMetadata(TestConstants.time), "the.gibson", "acidBurn"))
- assertTrue(fakeServerState.receivedWelcome)
- }
-
- @Test
- fun `sets state to connecting on event`() {
- handler.processEvent(ircClient, ServerConnecting(EventMetadata(TestConstants.time)))
- assertEquals(ServerStatus.Connecting, fakeServerState.status)
- }
-
- @Test
- fun `sets state to disconnected on event`() {
- fakeServerState.status = ServerStatus.Ready
- handler.processEvent(ircClient, ServerDisconnected(EventMetadata(TestConstants.time)))
- assertEquals(ServerStatus.Disconnected, fakeServerState.status)
- }
-
- @Test
- fun `sets state to negotiating on connected`() {
- handler.processEvent(ircClient, ServerConnected(EventMetadata(TestConstants.time)))
- assertEquals(ServerStatus.Negotiating, fakeServerState.status)
- }
-
- @Test
- fun `sets state to ready on ServerReady`() {
- handler.processEvent(ircClient, ServerReady(EventMetadata(TestConstants.time)))
- assertEquals(ServerStatus.Ready, fakeServerState.status)
- }
-
- @Test
- fun `updates features on features event`() {
- val features = ServerFeatureMap()
- features[ServerFeature.ChannelModes] = arrayOf("abc", "def")
- features[ServerFeature.WhoxSupport] = true
-
- handler.processEvent(ircClient, ServerFeaturesUpdated(EventMetadata(TestConstants.time), features))
-
- assertArrayEquals(arrayOf("abc", "def"), fakeServerState.features[ServerFeature.ChannelModes])
- assertEquals(true, fakeServerState.features[ServerFeature.WhoxSupport])
- }
-
- }
|