123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package com.dmdirc.ktirc.model
-
- import com.dmdirc.ktirc.TestConstants
- import com.dmdirc.ktirc.util.currentTimeProvider
- import com.dmdirc.ktirc.util.currentTimeZoneProvider
- import org.junit.jupiter.api.Assertions.assertEquals
- import org.junit.jupiter.api.Assertions.assertNull
- import org.junit.jupiter.api.Test
- import java.time.LocalDateTime
- import java.time.ZoneId
-
- internal class IrcMessageTest {
-
- @Test
- fun `Gets UTC time from ServerTime tag if present`() {
- currentTimeZoneProvider = { ZoneId.of("Z") }
- val message = IrcMessage(hashMapOf(MessageTag.ServerTime to "1995-09-15T09:00:00.0000Z"), null, "", emptyList())
- assertEquals(LocalDateTime.parse("1995-09-15T09:00:00"), message.metadata.time)
- }
-
- @Test
- fun `Converts time in ServerTime tag to local timezone`() {
- currentTimeZoneProvider = { ZoneId.of("America/New_York") }
- val message = IrcMessage(hashMapOf(MessageTag.ServerTime to "1995-09-15T09:00:00.0000Z"), null, "", emptyList())
- assertEquals(LocalDateTime.parse("1995-09-15T05:00:00"), message.metadata.time)
- }
-
- @Test
- fun `Uses current local time if no tag present`() {
- currentTimeProvider = { TestConstants.time }
- val message = IrcMessage(emptyMap(), null, "", emptyList())
- assertEquals(LocalDateTime.parse("1995-09-15T09:00:00"), message.metadata.time)
- }
-
- @Test
- fun `populates batch field if present`() {
- currentTimeProvider = { TestConstants.time }
- val message = IrcMessage(hashMapOf(MessageTag.Batch to "abc123"), null, "", emptyList())
- assertEquals("abc123", message.metadata.batchId)
- }
-
- @Test
- fun `populates message id if present`() {
- currentTimeProvider = { TestConstants.time }
- val message = IrcMessage(hashMapOf(MessageTag.MessageId to "abc123"), null, "", emptyList())
- assertEquals("abc123", message.metadata.messageId)
- }
-
- @Test
- fun `populates label if present`() {
- currentTimeProvider = { TestConstants.time }
- val message = IrcMessage(hashMapOf(MessageTag.Label to "abc123"), null, "", emptyList())
- assertEquals("abc123", message.metadata.label)
- }
-
- @Test
- fun `Can parse the prefix as a source user`() {
- val message = IrcMessage(emptyMap(), "acidBurn!libby@root.localhost".toByteArray(), "", emptyList())
- val user = message.sourceUser!!
-
- assertEquals("acidBurn", user.nickname)
- assertEquals("libby", user.ident)
- assertEquals("root.localhost", user.hostname)
- assertNull(user.account)
- }
-
- @Test
- fun `Uses account-name tag when creating a source user`() {
- val message = IrcMessage(hashMapOf(MessageTag.AccountName to "acidBurn"), "acidBurn!libby@root.localhost".toByteArray(), "", emptyList())
- val user = message.sourceUser!!
-
- assertEquals("acidBurn", user.nickname)
- assertEquals("libby", user.ident)
- assertEquals("root.localhost", user.hostname)
- assertEquals("acidBurn", user.account)
- }
-
- }
|