Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

ServerStateTest.kt 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.dmdirc.ktirc.model
  2. import org.junit.jupiter.api.Assertions.*
  3. import org.junit.jupiter.api.Test
  4. internal class ServerStateTest {
  5. @Test
  6. fun `ServerState should use the initial nickname as local nickname`() {
  7. val serverState = ServerState("acidBurn", "")
  8. assertEquals("acidBurn", serverState.localNickname)
  9. }
  10. @Test
  11. fun `ServerState should use the initial name as server name`() {
  12. val serverState = ServerState("", "the.gibson")
  13. assertEquals("the.gibson", serverState.serverName)
  14. }
  15. @Test
  16. fun `ServerState should default status to disconnected`() {
  17. val serverState = ServerState("acidBurn", "")
  18. assertEquals(ServerStatus.Disconnected, serverState.status)
  19. }
  20. @Test
  21. fun `returns mode type for known channel mode`() {
  22. val serverState = ServerState("acidBurn", "")
  23. serverState.features[ServerFeature.ChannelModes] = arrayOf("ab", "cd", "ef", "gh")
  24. assertEquals(ChannelModeType.List, serverState.channelModeType('a'))
  25. assertEquals(ChannelModeType.SetUnsetParameter, serverState.channelModeType('d'))
  26. assertEquals(ChannelModeType.SetParameter, serverState.channelModeType('e'))
  27. assertEquals(ChannelModeType.NoParameter, serverState.channelModeType('g'))
  28. }
  29. @Test
  30. fun `returns NoParameter for unknown channel mode`() {
  31. val serverState = ServerState("acidBurn", "")
  32. serverState.features[ServerFeature.ChannelModes] = arrayOf("ab", "cd", "ef", "gh")
  33. assertEquals(ChannelModeType.NoParameter, serverState.channelModeType('z'))
  34. }
  35. @Test
  36. fun `returns NoParameter for channel modes if feature doesn't exist`() {
  37. val serverState = ServerState("acidBurn", "")
  38. assertEquals(ChannelModeType.NoParameter, serverState.channelModeType('b'))
  39. }
  40. }
  41. internal class ModePrefixMappingTest {
  42. @Test
  43. fun `ModePrefixMapping identifies which chars are prefixes`() {
  44. val mapping = ModePrefixMapping("oav", "+@-")
  45. assertTrue(mapping.isPrefix('+'))
  46. assertTrue(mapping.isPrefix('@'))
  47. assertFalse(mapping.isPrefix('!'))
  48. assertFalse(mapping.isPrefix('o'))
  49. }
  50. @Test
  51. fun `ModePrefixMapping maps prefixes to modes`() {
  52. val mapping = ModePrefixMapping("oav", "+@-")
  53. assertEquals('o', mapping.getMode('+'))
  54. assertEquals('a', mapping.getMode('@'))
  55. assertEquals('v', mapping.getMode('-'))
  56. }
  57. @Test
  58. fun `ModePrefixMapping maps prefix strings to modes`() {
  59. val mapping = ModePrefixMapping("oav", "+@-")
  60. assertEquals("oa", mapping.getModes("+@"))
  61. assertEquals("o", mapping.getModes("+"))
  62. assertEquals("", mapping.getModes(""))
  63. assertEquals("vao", mapping.getModes("-@+"))
  64. }
  65. }