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.

AuthenticationProcessorTest.kt 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.dmdirc.ktirc.messages
  2. import com.dmdirc.ktirc.TestConstants
  3. import com.dmdirc.ktirc.events.AuthenticationMessage
  4. import com.dmdirc.ktirc.events.SaslFinished
  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 AuthenticationProcessorTest {
  12. private var processor = AuthenticationProcessor()
  13. @BeforeEach
  14. fun setUp() {
  15. currentTimeProvider = { TestConstants.time }
  16. }
  17. @Test
  18. fun `raises authentication message with null argument if no params specified`() {
  19. val events = processor.process(IrcMessage(emptyMap(), null, "AUTHENTICATE", emptyList()))
  20. assertEquals(1, events.size)
  21. val event = events[0] as AuthenticationMessage
  22. assertEquals(TestConstants.time, event.time)
  23. assertNull(event.argument)
  24. }
  25. @Test
  26. fun `raises authentication message with null argument if + specified`() {
  27. val events = processor.process(IrcMessage(emptyMap(), null, "AUTHENTICATE", params("+")))
  28. assertEquals(1, events.size)
  29. val event = events[0] as AuthenticationMessage
  30. assertEquals(TestConstants.time, event.time)
  31. assertNull(event.argument)
  32. }
  33. @Test
  34. fun `raises authentication message with argument`() {
  35. val events = processor.process(IrcMessage(emptyMap(), null, "AUTHENTICATE", params("HackThePlanet")))
  36. assertEquals(1, events.size)
  37. val event = events[0] as AuthenticationMessage
  38. assertEquals(TestConstants.time, event.time)
  39. assertEquals("HackThePlanet", event.argument)
  40. }
  41. @Test
  42. fun `raises sasl finished on success`() {
  43. val events = processor.process(IrcMessage(emptyMap(), ":the.gibson".toByteArray(), "903", params("*", "SASL authentication successful")))
  44. assertEquals(1, events.size)
  45. val event = events[0] as SaslFinished
  46. assertEquals(TestConstants.time, event.time)
  47. assertTrue(event.success)
  48. }
  49. @Test
  50. fun `raises sasl finished on generic failure`() {
  51. val events = processor.process(IrcMessage(emptyMap(), ":the.gibson".toByteArray(), "904", params("*", "SASL authentication failed")))
  52. assertEquals(1, events.size)
  53. val event = events[0] as SaslFinished
  54. assertEquals(TestConstants.time, event.time)
  55. assertFalse(event.success)
  56. }
  57. }