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.

MotdProcessorTest.kt 2.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.dmdirc.ktirc.messages
  2. import com.dmdirc.ktirc.TestConstants
  3. import com.dmdirc.ktirc.events.MotdFinished
  4. import com.dmdirc.ktirc.events.MotdLineReceived
  5. import com.dmdirc.ktirc.model.IrcMessage
  6. import com.dmdirc.ktirc.params
  7. import com.dmdirc.ktirc.util.currentTimeProvider
  8. import org.junit.jupiter.api.Assertions.*
  9. import org.junit.jupiter.api.BeforeEach
  10. import org.junit.jupiter.api.Test
  11. internal class MotdProcessorTest {
  12. @BeforeEach
  13. fun setUp() {
  14. currentTimeProvider = { TestConstants.time }
  15. }
  16. @Test
  17. fun `raises MotdFinished when not found numeric received`() {
  18. val events = MotdProcessor().process(
  19. IrcMessage(emptyMap(), "the.gibson".toByteArray(), "422", params("MOTD missing")))
  20. assertEquals(1, events.size)
  21. val event = events[0] as MotdFinished
  22. assertEquals(TestConstants.time, events[0].time)
  23. assertTrue(event.missing)
  24. }
  25. @Test
  26. fun `raises MotdFinished when MOTD finishes normally`() {
  27. val events = MotdProcessor().process(
  28. IrcMessage(emptyMap(), "the.gibson".toByteArray(), "376", params("acidBurn", "End of /MOTD command.")))
  29. assertEquals(1, events.size)
  30. val event = events[0] as MotdFinished
  31. assertEquals(TestConstants.time, events[0].time)
  32. assertFalse(event.missing)
  33. }
  34. @Test
  35. fun `raises MotdLineReceived when start of MOTD received`() {
  36. val events = MotdProcessor().process(
  37. IrcMessage(emptyMap(), "the.gibson".toByteArray(), "375", params("acidBurn", "- the.gibson MOTD -")))
  38. assertEquals(1, events.size)
  39. val event = events[0] as MotdLineReceived
  40. assertEquals(TestConstants.time, event.time)
  41. assertEquals("- the.gibson MOTD -", event.line)
  42. assertTrue(event.first)
  43. }
  44. @Test
  45. fun `raises MotdLineReceived when line of MOTD received`() {
  46. val events = MotdProcessor().process(
  47. IrcMessage(emptyMap(), "the.gibson".toByteArray(), "372", params("acidBurn", "Hack the planet!")))
  48. assertEquals(1, events.size)
  49. val event = events[0] as MotdLineReceived
  50. assertEquals(TestConstants.time, event.time)
  51. assertEquals("Hack the planet!", event.line)
  52. assertFalse(event.first)
  53. }
  54. @Test
  55. fun `raises nothing for unsupported events`() {
  56. val events = MotdProcessor().process(
  57. IrcMessage(emptyMap(), "the.gibson".toByteArray(), "NOTICE", params("acidBurn", "Hi")))
  58. assertEquals(0, events.size)
  59. }
  60. }