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.

NickChangeRequiredMutatorTest.kt 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.dmdirc.ktirc.events.mutators
  2. import com.dmdirc.ktirc.IrcClient
  3. import com.dmdirc.ktirc.TestConstants
  4. import com.dmdirc.ktirc.events.*
  5. import com.dmdirc.ktirc.io.MessageEmitter
  6. import com.dmdirc.ktirc.model.ServerState
  7. import com.dmdirc.ktirc.model.ServerStatus
  8. import io.mockk.every
  9. import io.mockk.mockk
  10. import org.junit.jupiter.api.Assertions.assertEquals
  11. import org.junit.jupiter.api.Test
  12. internal class NickChangeRequiredMutatorTest {
  13. private val mutator = NickChangeRequiredMutator()
  14. private val fakeServerState = ServerState("acidBurn", "the.gibson")
  15. private val mockClient = mockk<IrcClient> {
  16. every { serverState } returns fakeServerState
  17. }
  18. private val mockEmitter = mockk<MessageEmitter>()
  19. @Test
  20. fun `returns other events before server ready`() {
  21. fakeServerState.status = ServerStatus.Negotiating
  22. val event = ServerConnected(EventMetadata(TestConstants.time))
  23. val events = mutator.mutateEvent(mockClient, mockEmitter, event)
  24. assertEquals(1, events.size)
  25. assertEquals(event, events[0])
  26. }
  27. @Test
  28. fun `returns other events after server ready`() {
  29. fakeServerState.status = ServerStatus.Ready
  30. val event = ServerConnected(EventMetadata(TestConstants.time))
  31. val events = mutator.mutateEvent(mockClient, mockEmitter, event)
  32. assertEquals(1, events.size)
  33. assertEquals(event, events[0])
  34. }
  35. @Test
  36. fun `returns nick change failed events after server ready`() {
  37. fakeServerState.status = ServerStatus.Ready
  38. val event = NicknameChangeFailed(EventMetadata(TestConstants.time), NicknameChangeError.AlreadyInUse)
  39. val events = mutator.mutateEvent(mockClient, mockEmitter, event)
  40. assertEquals(1, events.size)
  41. assertEquals(event, events[0])
  42. }
  43. @Test
  44. fun `returns nick change required event before server ready`() {
  45. fakeServerState.status = ServerStatus.Negotiating
  46. val event = NicknameChangeFailed(EventMetadata(TestConstants.time), NicknameChangeError.AlreadyInUse)
  47. val events = mutator.mutateEvent(mockClient, mockEmitter, event)
  48. assertEquals(1, events.size)
  49. val received = events[0] as NicknameChangeRequired
  50. assertEquals(event.metadata, received.metadata)
  51. assertEquals(event.cause, received.cause)
  52. }
  53. }