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.

ServerFeatureMapTest.kt 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 ServerFeatureMapTest {
  6. @Test
  7. fun `should return defaults for unspecified features`() {
  8. val featureMap = ServerFeatureMap()
  9. assertEquals(200, featureMap[ServerFeature.MaximumChannelNameLength])
  10. }
  11. @Test
  12. fun `should return null for unspecified features with no default`() {
  13. val featureMap = ServerFeatureMap()
  14. assertNull(featureMap[ServerFeature.ChannelModes])
  15. }
  16. @Test
  17. fun `should return previously set value for features`() {
  18. val featureMap = ServerFeatureMap()
  19. featureMap[ServerFeature.MaximumChannels] = 123
  20. assertEquals(123, featureMap[ServerFeature.MaximumChannels])
  21. }
  22. @Test
  23. fun `should return default set value for features that were reset`() {
  24. val featureMap = ServerFeatureMap()
  25. featureMap[ServerFeature.MaximumChannels] = 123
  26. featureMap.reset(ServerFeature.MaximumChannels)
  27. assertNull(featureMap[ServerFeature.MaximumChannels])
  28. }
  29. @Test
  30. fun `should throw if a feature is set with the wrong type`() {
  31. val featureMap = ServerFeatureMap()
  32. assertThrows(IllegalArgumentException::class.java) {
  33. featureMap[ServerFeature.MaximumChannels] = "123"
  34. }
  35. }
  36. @Test
  37. fun `sets all features from another map`() {
  38. val featureMap1 = ServerFeatureMap()
  39. val featureMap2 = ServerFeatureMap()
  40. featureMap2[ServerFeature.WhoxSupport] = true
  41. featureMap2[ServerFeature.ChannelModes] = arrayOf("abc", "def")
  42. featureMap1.setAll(featureMap2)
  43. assertEquals(true, featureMap1[ServerFeature.WhoxSupport])
  44. assertArrayEquals(arrayOf("abc", "def"), featureMap1[ServerFeature.ChannelModes])
  45. }
  46. @Test
  47. fun `resets features reset in another map`() {
  48. val featureMap1 = ServerFeatureMap()
  49. val featureMap2 = ServerFeatureMap()
  50. featureMap1[ServerFeature.ServerCaseMapping] = CaseMapping.RfcStrict
  51. featureMap2.reset(ServerFeature.ServerCaseMapping)
  52. featureMap1.setAll(featureMap2)
  53. assertEquals(CaseMapping.Rfc, featureMap1[ServerFeature.ServerCaseMapping])
  54. }
  55. @Test
  56. fun `clear removes all features`() {
  57. val featureMap = ServerFeatureMap()
  58. featureMap[ServerFeature.MaximumChannels] = 123
  59. featureMap[ServerFeature.Network] = "testnet"
  60. featureMap.clear()
  61. assertTrue(featureMap.isEmpty())
  62. }
  63. @Test
  64. fun `isEmpty returns true if empty`() {
  65. val featureMap = ServerFeatureMap()
  66. assertTrue(featureMap.isEmpty())
  67. featureMap[ServerFeature.MaximumChannels] = 123
  68. assertFalse(featureMap.isEmpty())
  69. }
  70. }