You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ServerStateHandlerTest.kt 2.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.dmdirc.ktirc.events.handlers
  2. import com.dmdirc.ktirc.IrcClient
  3. import com.dmdirc.ktirc.TestConstants
  4. import com.dmdirc.ktirc.events.*
  5. import com.dmdirc.ktirc.model.ServerFeature
  6. import com.dmdirc.ktirc.model.ServerFeatureMap
  7. import com.dmdirc.ktirc.model.ServerState
  8. import com.dmdirc.ktirc.model.ServerStatus
  9. import io.mockk.every
  10. import io.mockk.mockk
  11. import org.junit.jupiter.api.Assertions.*
  12. import org.junit.jupiter.api.Test
  13. internal class ServerStateHandlerTest {
  14. private val fakeServerState = ServerState("", "")
  15. private val ircClient = mockk<IrcClient> {
  16. every { serverState } returns fakeServerState
  17. }
  18. private val handler = ServerStateHandler()
  19. @Test
  20. fun `sets local nickname on welcome event`() {
  21. handler.processEvent(ircClient, ServerWelcome(EventMetadata(TestConstants.time), "the.gibson", "acidBurn"))
  22. assertEquals("acidBurn", fakeServerState.localNickname)
  23. }
  24. @Test
  25. fun `sets server name on welcome event`() {
  26. handler.processEvent(ircClient, ServerWelcome(EventMetadata(TestConstants.time), "the.gibson", "acidBurn"))
  27. assertEquals("the.gibson", fakeServerState.serverName)
  28. }
  29. @Test
  30. fun `sets receivedWelcome on welcome event`() {
  31. handler.processEvent(ircClient, ServerWelcome(EventMetadata(TestConstants.time), "the.gibson", "acidBurn"))
  32. assertTrue(fakeServerState.receivedWelcome)
  33. }
  34. @Test
  35. fun `sets state to connecting on event`() {
  36. handler.processEvent(ircClient, ServerConnecting(EventMetadata(TestConstants.time)))
  37. assertEquals(ServerStatus.Connecting, fakeServerState.status)
  38. }
  39. @Test
  40. fun `sets state to disconnected on event`() {
  41. fakeServerState.status = ServerStatus.Ready
  42. handler.processEvent(ircClient, ServerDisconnected(EventMetadata(TestConstants.time)))
  43. assertEquals(ServerStatus.Disconnected, fakeServerState.status)
  44. }
  45. @Test
  46. fun `sets state to negotiating on connected`() {
  47. handler.processEvent(ircClient, ServerConnected(EventMetadata(TestConstants.time)))
  48. assertEquals(ServerStatus.Negotiating, fakeServerState.status)
  49. }
  50. @Test
  51. fun `sets state to ready on ServerReady`() {
  52. handler.processEvent(ircClient, ServerReady(EventMetadata(TestConstants.time)))
  53. assertEquals(ServerStatus.Ready, fakeServerState.status)
  54. }
  55. @Test
  56. fun `updates features on features event`() {
  57. val features = ServerFeatureMap()
  58. features[ServerFeature.ChannelModes] = arrayOf("abc", "def")
  59. features[ServerFeature.WhoxSupport] = true
  60. handler.processEvent(ircClient, ServerFeaturesUpdated(EventMetadata(TestConstants.time), features))
  61. assertArrayEquals(arrayOf("abc", "def"), fakeServerState.features[ServerFeature.ChannelModes])
  62. assertEquals(true, fakeServerState.features[ServerFeature.WhoxSupport])
  63. }
  64. }