Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

UserStateTest.kt 3.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.dmdirc.ktirc.model
  2. import com.dmdirc.ktirc.io.CaseMapping
  3. import org.junit.jupiter.api.Assertions.*
  4. import org.junit.jupiter.api.Test
  5. internal class UserStateTest {
  6. private val userState = UserState { CaseMapping.Rfc }
  7. @Test
  8. fun `UserState adds and gets new users`() {
  9. userState += User("acidBurn", "libby", "root.localhost")
  10. val user = userState["acidburn"]
  11. assertNotNull(user)
  12. assertEquals("acidBurn", user?.details?.nickname)
  13. assertEquals("libby", user?.details?.ident)
  14. assertEquals("root.localhost", user?.details?.hostname)
  15. }
  16. @Test
  17. fun `UserState removes users`() {
  18. userState += User("acidBurn", "libby", "root.localhost")
  19. userState -= User("ACIDBURN")
  20. assertNull(userState["acidburn"])
  21. }
  22. @Test
  23. fun `UserState removes users by nickname`() {
  24. userState += User("acidBurn", "libby", "root.localhost")
  25. userState -= "ACIDBURN"
  26. assertNull(userState["acidburn"])
  27. }
  28. @Test
  29. fun `UserState updates existing user with same nickname`() {
  30. userState += User("acidBurn", "libby", "root.localhost")
  31. userState.update(User("acidBurn", realName = "Libby", awayMessage = "Hacking"))
  32. val user = userState["acidburn"]!!
  33. assertEquals("acidBurn", user.details.nickname)
  34. assertEquals("libby", user.details.ident)
  35. assertEquals("root.localhost", user.details.hostname)
  36. assertEquals("Libby", user.details.realName)
  37. assertEquals("Hacking", user.details.awayMessage)
  38. }
  39. @Test
  40. fun `UserState updates existing user with new nickname`() {
  41. userState += User("acidBurn", "libby", "root.localhost")
  42. userState.update(User("acidBurn2", realName = "Libby", awayMessage = "Hacking"), "acidBurn")
  43. val user = userState["acidburn2"]!!
  44. assertEquals("acidBurn2", user.details.nickname)
  45. assertEquals("libby", user.details.ident)
  46. assertEquals("root.localhost", user.details.hostname)
  47. assertEquals("Libby", user.details.realName)
  48. assertEquals("Hacking", user.details.awayMessage)
  49. assertNull(userState["acidBurn"])
  50. }
  51. @Test
  52. fun `addToChannel adds new user if not known`() {
  53. userState.addToChannel(User("acidBurn", "libby", "root.localhost"), "#thegibson")
  54. val user = userState["acidburn"]!!
  55. assertEquals("acidBurn", user.details.nickname)
  56. assertEquals("libby", user.details.ident)
  57. assertEquals("root.localhost", user.details.hostname)
  58. assertEquals(1, user.channels.count())
  59. assertTrue("#thegibson" in user.channels)
  60. }
  61. @Test
  62. fun `addToChannel appends channel to existing user`() {
  63. userState += User("acidBurn", "libby", "root.localhost")
  64. userState.addToChannel(User("acidBurn"), "#thegibson")
  65. val user = userState["acidburn"]!!
  66. assertEquals(1, user.channels.count())
  67. assertTrue("#thegibson" in user.channels)
  68. }
  69. @Test
  70. fun `removeIf deletes all matching users`() {
  71. userState += User("acidBurn", "libby", "root.localhost")
  72. userState += User("zeroCool", "dade", "root.localhost")
  73. userState += User("acidBurn2", "libby", "root.localhost")
  74. userState.removeIf { it.details.nickname.startsWith("acidBurn") }
  75. assertEquals(1, userState.count())
  76. assertNotNull(userState["zeroCool"])
  77. }
  78. }