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.

ServerReadyMutatorTest.kt 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 com.dmdirc.ktirc.model.User
  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 ServerReadyMutatorTest {
  14. private val messageEmitter = mockk<MessageEmitter>()
  15. private val fakeServerState = ServerState("", "")
  16. private val ircClient = mockk<IrcClient> {
  17. every { serverState } returns fakeServerState
  18. }
  19. private val mutator = ServerReadyMutator()
  20. @Test
  21. fun `emits event on receiving post-005 line`() {
  22. ircClient.serverState.receivedWelcome = true
  23. ircClient.serverState.status = ServerStatus.Negotiating
  24. listOf(
  25. ServerWelcome(EventMetadata(TestConstants.time), "the.gibson", "acidBurn"),
  26. PingReceived(EventMetadata(TestConstants.time), "1234".toByteArray()),
  27. ServerCapabilitiesReceived(EventMetadata(TestConstants.time), emptyMap()),
  28. ServerCapabilitiesAcknowledged(EventMetadata(TestConstants.time), emptyMap()),
  29. ServerCapabilitiesFinished(EventMetadata(TestConstants.time))
  30. ).forEach {
  31. assertEquals(1, mutator.mutateEvent(ircClient, messageEmitter, it).size)
  32. }
  33. val event = MessageReceived(EventMetadata(TestConstants.time), User("zeroCool"), "acidBurn", "Welcome!")
  34. val events = mutator.mutateEvent(ircClient, messageEmitter, event)
  35. assertEquals(2, events.size)
  36. assertSame(event, events[1])
  37. assertTrue(events[0] is ServerReady)
  38. }
  39. }