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.

TopicProcessorTest.kt 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package com.dmdirc.ktirc.messages
  2. import com.dmdirc.ktirc.TestConstants
  3. import com.dmdirc.ktirc.events.ChannelTopicDiscovered
  4. import com.dmdirc.ktirc.events.ChannelTopicMetadataDiscovered
  5. import com.dmdirc.ktirc.model.IrcMessage
  6. import com.dmdirc.ktirc.params
  7. import com.dmdirc.ktirc.util.currentTimeProvider
  8. import com.dmdirc.ktirc.util.currentTimeZoneProvider
  9. import org.junit.jupiter.api.Assertions.assertEquals
  10. import org.junit.jupiter.api.BeforeEach
  11. import org.junit.jupiter.api.Test
  12. import java.time.ZoneId
  13. internal class TopicProcessorTest {
  14. private val processor = TopicProcessor()
  15. @BeforeEach
  16. fun setUp() {
  17. currentTimeProvider = { TestConstants.time }
  18. }
  19. @Test
  20. fun `raises ChannelTopicDiscovered event when topic is supplied`() {
  21. val events = processor.process(IrcMessage(emptyMap(), null, "332", params("acidBurn", "#thegibson", "Hack the planet!")))
  22. assertEquals(1, events.size)
  23. val event = events[0] as ChannelTopicDiscovered
  24. assertEquals(TestConstants.time, event.time)
  25. assertEquals("#thegibson", event.channel)
  26. assertEquals("Hack the planet!", event.topic)
  27. }
  28. @Test
  29. fun `raises ChannelTopicMetadataDiscovered event when topic is supplied`() {
  30. val events = processor.process(IrcMessage(emptyMap(), null, "333", params("acidBurn", "#thegibson", "zeroCool", unixtime(currentTimeZoneProvider()))))
  31. assertEquals(1, events.size)
  32. val event = events[0] as ChannelTopicMetadataDiscovered
  33. assertEquals(TestConstants.time, event.time)
  34. assertEquals("#thegibson", event.channel)
  35. assertEquals("zeroCool", event.user.nickname)
  36. assertEquals(TestConstants.time, event.setTime)
  37. }
  38. private fun unixtime(zoneId: ZoneId) = TestConstants.time.toEpochSecond(zoneId.rules.getOffset(TestConstants.time)).toString()
  39. }