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.

ChannelStateMapTest.kt 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. import org.junit.jupiter.api.assertThrows
  6. internal class ChannelStateMapTest {
  7. @Test
  8. fun `ChannelStateMap stores channel state`() {
  9. val channelStateMap = ChannelStateMap { CaseMapping.Rfc }
  10. val channelState = ChannelState("#dumpsterdiving")
  11. channelStateMap += channelState
  12. assertSame(channelState, channelStateMap["#dumpsterdiving"])
  13. }
  14. @Test
  15. fun `ChannelStateMap disallows setting the same channel twice`() {
  16. val channelStateMap = ChannelStateMap { CaseMapping.Rfc }
  17. channelStateMap += ChannelState("#dumpsterdiving")
  18. assertThrows<IllegalArgumentException> {
  19. channelStateMap += ChannelState("#DumpsterDiving")
  20. }
  21. }
  22. @Test
  23. fun `ChannelStateMap retrieves channels in different cases`() {
  24. val channelStateMap = ChannelStateMap { CaseMapping.Rfc }
  25. val channelState = ChannelState("#dumpsterdiving[]")
  26. channelStateMap += channelState
  27. assertSame(channelState, channelStateMap["#dumpsterdiving{}"])
  28. }
  29. @Test
  30. fun `ChannelStateMap returns null if channel not found`() {
  31. val channelStateMap = ChannelStateMap { CaseMapping.Ascii }
  32. val channelState = ChannelState("#dumpsterdiving[]")
  33. channelStateMap += channelState
  34. assertNull(channelStateMap["#dumpsterdiving{}"])
  35. }
  36. @Test
  37. fun `ChannelStateMap removes channels`() {
  38. val channelStateMap = ChannelStateMap { CaseMapping.Rfc }
  39. val channelState = ChannelState("#dumpsterdiving")
  40. channelStateMap += channelState
  41. channelStateMap -= ChannelState("#dumpsterDIVING")
  42. assertNull(channelStateMap["#dumpsterdiving"])
  43. }
  44. @Test
  45. fun `ChannelStateMap can be iterated`() {
  46. val channelStateMap = ChannelStateMap { CaseMapping.Rfc }
  47. channelStateMap += ChannelState("#dumpsterdiving")
  48. channelStateMap += ChannelState("#gibson")
  49. val names = channelStateMap.map { it.name }.toList()
  50. assertEquals(2, names.size)
  51. assertTrue(names.contains("#dumpsterdiving"))
  52. assertTrue(names.contains("#gibson"))
  53. }
  54. @Test
  55. fun `ChannelStateMap indicates if it contains a channel or not`() {
  56. val channelStateMap = ChannelStateMap { CaseMapping.Rfc }
  57. channelStateMap += ChannelState("#dumpsterdiving")
  58. assertTrue("#dumpsterDIVING" in channelStateMap)
  59. assertFalse("#crashandburn" in channelStateMap)
  60. }
  61. }