Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

IrcMessageTest.kt 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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.Assertions.assertNull
  5. import org.junit.jupiter.api.Test
  6. import java.time.LocalDateTime
  7. import java.time.ZoneId
  8. internal class IrcMessageTest {
  9. @Test
  10. fun `Gets UTC time from ServerTime tag if present`() {
  11. IrcMessage.currentTimeZoneProvider = { ZoneId.of("Z") }
  12. val message = IrcMessage(hashMapOf(MessageTag.ServerTime to "1995-09-15T09:00:00.0000Z"), null, "", emptyList())
  13. assertEquals(LocalDateTime.parse("1995-09-15T09:00:00"), message.time)
  14. }
  15. @Test
  16. fun `Converts time in ServerTime tag to local timezone`() {
  17. IrcMessage.currentTimeZoneProvider = { ZoneId.of("America/New_York") }
  18. val message = IrcMessage(hashMapOf(MessageTag.ServerTime to "1995-09-15T09:00:00.0000Z"), null, "", emptyList())
  19. assertEquals(LocalDateTime.parse("1995-09-15T05:00:00"), message.time)
  20. }
  21. @Test
  22. fun `Uses current local time if no tag present`() {
  23. IrcMessage.currentTimeProvider = { TestConstants.time }
  24. val message = IrcMessage(emptyMap(), null, "", emptyList())
  25. assertEquals(LocalDateTime.parse("1995-09-15T09:00:00"), message.time)
  26. }
  27. @Test
  28. fun `Can parse the prefix as a source user`() {
  29. val message = IrcMessage(emptyMap(), "acidBurn!libby@root.localhost".toByteArray(), "", emptyList())
  30. val user = message.sourceUser!!
  31. assertEquals("acidBurn", user.nickname)
  32. assertEquals("libby", user.ident)
  33. assertEquals("root.localhost", user.hostname)
  34. assertNull(user.account)
  35. }
  36. @Test
  37. fun `Uses account-name tag when creating a source user`() {
  38. val message = IrcMessage(hashMapOf(MessageTag.AccountName to "acidBurn"), "acidBurn!libby@root.localhost".toByteArray(), "", emptyList())
  39. val user = message.sourceUser!!
  40. assertEquals("acidBurn", user.nickname)
  41. assertEquals("libby", user.ident)
  42. assertEquals("root.localhost", user.hostname)
  43. assertEquals("acidBurn", user.account)
  44. }
  45. }