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.

MessageBuildersTest.kt 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.dmdirc.ktirc.messages
  2. import com.dmdirc.ktirc.IrcClient
  3. import com.nhaarman.mockitokotlin2.mock
  4. import com.nhaarman.mockitokotlin2.verify
  5. import org.junit.jupiter.api.Test
  6. internal class MessageBuildersTest {
  7. private val mockClient = mock<IrcClient>()
  8. @Test
  9. fun `sendCapabilityRequest sends CAP REQ message with single argument`() {
  10. mockClient.sendCapabilityRequest(listOf("a"))
  11. verify(mockClient).send("CAP REQ :a")
  12. }
  13. @Test
  14. fun `sendCapabilityRequest sends CAP REQ message with multiple args`() {
  15. mockClient.sendCapabilityRequest(listOf("a b c"))
  16. verify(mockClient).send("CAP REQ :a b c")
  17. }
  18. @Test
  19. fun `sendJoin sends correct JOIN message`() {
  20. mockClient.sendJoin("#TheGibson")
  21. verify(mockClient).send("JOIN :#TheGibson")
  22. }
  23. @Test
  24. fun `sendNickChange sends correct NICK message`() {
  25. mockClient.sendNickChange("AcidBurn")
  26. verify(mockClient).send("NICK :AcidBurn")
  27. }
  28. @Test
  29. fun `sendPassword sends correct PASS message`() {
  30. mockClient.sendPassword("hacktheplanet")
  31. verify(mockClient).send("PASS :hacktheplanet")
  32. }
  33. @Test
  34. fun `sendPong sends correct PONG message`() {
  35. mockClient.sendPong("abcdef".toByteArray())
  36. verify(mockClient).send("PONG :abcdef")
  37. }
  38. @Test
  39. fun `sendMessage sends correct PRIVMSG message`() {
  40. mockClient.sendMessage("acidBurn", "Hack the planet!")
  41. verify(mockClient).send("PRIVMSG acidBurn :Hack the planet!")
  42. }
  43. @Test
  44. fun `sendMessage sends correct PRIVMSG message with reply to tag`() {
  45. mockClient.sendMessage("acidBurn", "Hack the planet!", "abc123")
  46. verify(mockClient).send("@+draft/reply=abc123 PRIVMSG acidBurn :Hack the planet!")
  47. }
  48. @Test
  49. fun `sendCtcp sends correct CTCP message with no arguments`() {
  50. mockClient.sendCtcp("acidBurn", "ping")
  51. verify(mockClient).send("PRIVMSG acidBurn :\u0001PING\u0001")
  52. }
  53. @Test
  54. fun `sendCtcp sends correct CTCP message with arguments`() {
  55. mockClient.sendCtcp("acidBurn", "ping", "12345")
  56. verify(mockClient).send("PRIVMSG acidBurn :\u0001PING 12345\u0001")
  57. }
  58. @Test
  59. fun `sendAction sends correct action`() {
  60. mockClient.sendAction("acidBurn", "hacks the planet")
  61. verify(mockClient).send("PRIVMSG acidBurn :\u0001ACTION hacks the planet\u0001")
  62. }
  63. @Test
  64. fun `sendUser sends correct USER message`() {
  65. mockClient.sendUser("AcidBurn","Kate")
  66. verify(mockClient).send("USER AcidBurn 0 * :Kate")
  67. }
  68. @Test
  69. fun `sendUser sends correct AUTHENTICATE message`() {
  70. mockClient.sendAuthenticationMessage("SCRAM-MD5")
  71. verify(mockClient).send("AUTHENTICATE SCRAM-MD5")
  72. }
  73. @Test
  74. fun `sendUser sends correct blank AUTHENTICATE message`() {
  75. mockClient.sendAuthenticationMessage()
  76. verify(mockClient).send("AUTHENTICATE +")
  77. }
  78. }