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.

IrcMessageTest.kt 1.2KB

1234567891011121314151617181920212223242526272829303132
  1. package com.dmdirc.ktirc.model
  2. import com.dmdirc.ktirc.TestConstants
  3. import org.junit.jupiter.api.Assertions.assertEquals
  4. import org.junit.jupiter.api.Test
  5. import java.time.LocalDateTime
  6. import java.time.ZoneId
  7. internal class IrcMessageTest {
  8. @Test
  9. fun `Gets UTC time from ServerTime tag if present`() {
  10. IrcMessage.currentTimeZoneProvider = { ZoneId.of("Z") }
  11. val message = IrcMessage(hashMapOf(MessageTag.ServerTime to "1995-09-15T09:00:00.0000Z"), null, "", emptyList())
  12. assertEquals(LocalDateTime.parse("1995-09-15T09:00:00"), message.time)
  13. }
  14. @Test
  15. fun `Converts time in ServerTime tag to local timezone`() {
  16. IrcMessage.currentTimeZoneProvider = { ZoneId.of("America/New_York") }
  17. val message = IrcMessage(hashMapOf(MessageTag.ServerTime to "1995-09-15T09:00:00.0000Z"), null, "", emptyList())
  18. assertEquals(LocalDateTime.parse("1995-09-15T05:00:00"), message.time)
  19. }
  20. @Test
  21. fun `Uses current local time if no tag present`() {
  22. IrcMessage.currentTimeProvider = { TestConstants.time }
  23. val message = IrcMessage(emptyMap(), null, "", emptyList())
  24. assertEquals(LocalDateTime.parse("1995-09-15T09:00:00"), message.time)
  25. }
  26. }