Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

ISupportProcessorTest.kt 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.dmdirc.ktirc.messages
  2. import com.dmdirc.ktirc.io.CaseMapping
  3. import com.dmdirc.ktirc.io.IrcMessage
  4. import com.dmdirc.ktirc.model.ModePrefixMapping
  5. import com.dmdirc.ktirc.model.ServerFeature
  6. import com.dmdirc.ktirc.model.ServerFeatureMap
  7. import org.junit.jupiter.api.Assertions.*
  8. import org.junit.jupiter.api.Test
  9. internal class ISupportProcessorTest {
  10. private val processor = ISupportProcessor()
  11. @Test
  12. fun `ISupportProcessor can handle 005s`() {
  13. assertTrue(processor.commands.contains("005")) { "ISupportProcessor should handle 005 messages" }
  14. }
  15. @Test
  16. fun `ISupportProcessor handles multiple numeric arguments`() {
  17. val events = processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
  18. listOf("nickname", "CHANLIMIT=123", "CHANNELLEN=456", "are supported blah blah").map { it.toByteArray() }))
  19. assertEquals(123, events[0].serverFeatures[ServerFeature.MaximumChannels])
  20. assertEquals(456, events[0].serverFeatures[ServerFeature.MaximumChannelNameLength])
  21. }
  22. @Test
  23. fun `ISupportProcessor handles string arguments`() {
  24. val events = processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
  25. listOf("nickname", "CHANMODES=abcd", "are supported blah blah").map { it.toByteArray() }))
  26. assertEquals("abcd", events[0].serverFeatures[ServerFeature.ChannelModes])
  27. }
  28. @Test
  29. fun `ISupportProcessor handles resetting arguments`() {
  30. val events = processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
  31. listOf("nickname", "-CHANMODES", "are supported blah blah").map { it.toByteArray() }))
  32. val oldFeatures = ServerFeatureMap()
  33. oldFeatures[ServerFeature.ChannelModes] = "abc"
  34. oldFeatures.setAll(events[0].serverFeatures)
  35. assertNull(oldFeatures[ServerFeature.ChannelModes])
  36. }
  37. @Test
  38. fun `ISupportProcessor handles case mapping arguments`() {
  39. val events = processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
  40. listOf("nickname", "CASEMAPPING=rfc1459-strict", "are supported blah blah").map { it.toByteArray() }))
  41. assertEquals(CaseMapping.RfcStrict, events[0].serverFeatures[ServerFeature.ServerCaseMapping])
  42. }
  43. @Test
  44. fun `ISupportProcessor handles mode prefix arguments`() {
  45. val events = processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
  46. listOf("nickname", "PREFIX=(ovd)@+%", "are supported blah blah").map { it.toByteArray() }))
  47. assertEquals(ModePrefixMapping("ovd", "@+%"), events[0].serverFeatures[ServerFeature.ModePrefixes])
  48. }
  49. @Test
  50. fun `ISupportProcessor handles boolean features with no arguments`() {
  51. val events = processor.process(IrcMessage(null, "server.com".toByteArray(), "005",
  52. listOf("nickname", "WHOX", "are supported blah blah").map { it.toByteArray() }))
  53. assertEquals(true, events[0].serverFeatures[ServerFeature.WhoxSupport])
  54. }
  55. }