123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package com.dmdirc.ktirc.model
-
- import com.dmdirc.ktirc.io.CaseMapping
- import org.junit.jupiter.api.Assertions.*
- import org.junit.jupiter.api.Test
-
- internal class UserStateTest {
-
- private val userState = UserState { CaseMapping.Rfc }
-
- @Test
- fun `adds and gets new users`() {
- userState += User("acidBurn", "libby", "root.localhost")
- val user = userState["acidburn"]
- assertNotNull(user)
- assertEquals("acidBurn", user?.details?.nickname)
- assertEquals("libby", user?.details?.ident)
- assertEquals("root.localhost", user?.details?.hostname)
- }
-
- @Test
- fun `removes users`() {
- userState += User("acidBurn", "libby", "root.localhost")
- userState -= User("ACIDBURN")
- assertNull(userState["acidburn"])
- }
-
- @Test
- fun `removes users by nickname`() {
- userState += User("acidBurn", "libby", "root.localhost")
- userState -= "ACIDBURN"
- assertNull(userState["acidburn"])
- }
-
- @Test
- fun `updates existing user with same nickname`() {
- userState += User("acidBurn", "libby", "root.localhost")
- userState.update(User("acidBurn", realName = "Libby", awayMessage = "Hacking"))
-
- val user = userState["acidburn"]!!
- assertEquals("acidBurn", user.details.nickname)
- assertEquals("libby", user.details.ident)
- assertEquals("root.localhost", user.details.hostname)
- assertEquals("Libby", user.details.realName)
- assertEquals("Hacking", user.details.awayMessage)
- }
-
- @Test
- fun `updates existing user with new nickname`() {
- userState += User("acidBurn", "libby", "root.localhost")
- userState.update(User("acidBurn2", realName = "Libby", awayMessage = "Hacking"), "acidBurn")
-
- val user = userState["acidburn2"]!!
- assertEquals("acidBurn2", user.details.nickname)
- assertEquals("libby", user.details.ident)
- assertEquals("root.localhost", user.details.hostname)
- assertEquals("Libby", user.details.realName)
- assertEquals("Hacking", user.details.awayMessage)
-
- assertNull(userState["acidBurn"])
- }
-
- @Test
- fun `addToChannel adds new user if not known`() {
- userState.addToChannel(User("acidBurn", "libby", "root.localhost"), "#thegibson")
-
- val user = userState["acidburn"]!!
- assertEquals("acidBurn", user.details.nickname)
- assertEquals("libby", user.details.ident)
- assertEquals("root.localhost", user.details.hostname)
-
- assertEquals(1, user.channels.count())
- assertTrue("#thegibson" in user.channels)
- }
-
- @Test
- fun `addToChannel appends channel to existing user`() {
- userState += User("acidBurn", "libby", "root.localhost")
- userState.addToChannel(User("acidBurn"), "#thegibson")
-
- val user = userState["acidburn"]!!
- assertEquals(1, user.channels.count())
- assertTrue("#thegibson" in user.channels)
- }
-
- @Test
- fun `removeIf deletes all matching users`() {
- userState += User("acidBurn", "libby", "root.localhost")
- userState += User("zeroCool", "dade", "root.localhost")
- userState += User("acidBurn2", "libby", "root.localhost")
-
- userState.removeIf { it.details.nickname.startsWith("acidBurn") }
-
- assertEquals(1, userState.count())
- assertNotNull(userState["zeroCool"])
- }
-
- @Test
- fun `reset clears all state`() {
- userState += User("acidBurn", "libby", "root.localhost")
- userState += User("zeroCool", "dade", "root.localhost")
- userState += User("acidBurn2", "libby", "root.localhost")
-
- userState.reset()
-
- assertEquals(0, userState.count())
- }
-
- }
|