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.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 `ServerFeatureMap should return defaults for unspecified features`() {
  8. val featureMap = ServerFeatureMap()
  9. assertEquals(200, featureMap[ServerFeature.MaximumChannelNameLength])
  10. }
  11. @Test
  12. fun `ServerFeatureMap should return null for unspecified features with no default`() {
  13. val featureMap = ServerFeatureMap()
  14. assertNull(featureMap[ServerFeature.ChannelModes])
  15. }
  16. @Test
  17. fun `ServerFeatureMap 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 `ServerFeatureMap 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 `ServerFeatureMap 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 `ServerFeatureMap 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 `ServerFeatureMap 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. }