MockBotEventTest.kt 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * Copyright 2019-2022 Mamoe Technologies and contributors.
  3. *
  4. * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
  5. * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
  6. *
  7. * https://github.com/mamoe/mirai/blob/dev/LICENSE
  8. */
  9. package net.mamoe.mirai.mock.test.mock
  10. import net.mamoe.mirai.event.events.*
  11. import net.mamoe.mirai.mock.test.MockBotTestBase
  12. import org.junit.jupiter.api.Test
  13. import kotlin.test.assertEquals
  14. internal class MockBotEventTest : MockBotTestBase() {
  15. @Test
  16. fun testBotOnlineEvent() = runTest {
  17. runAndReceiveEventBroadcast {
  18. bot.login()
  19. }.let { events ->
  20. assertEquals(1, events.size)
  21. assertIsInstance<BotOnlineEvent>(events[0])
  22. }
  23. }
  24. @Test
  25. fun testBotOfflineEvent() = runTest {
  26. runAndReceiveEventBroadcast {
  27. bot.broadcastOfflineEvent()
  28. }.let { events ->
  29. assertEquals(1, events.size)
  30. assertIsInstance<BotOfflineEvent>(events[0])
  31. }
  32. }
  33. @Test
  34. fun testBotRelogin() = runTest {
  35. bot.login()
  36. runAndReceiveEventBroadcast {
  37. bot.login()
  38. }.let { events ->
  39. assertEquals(2, events.size)
  40. assertIsInstance<BotOnlineEvent>(events[0])
  41. assertIsInstance<BotReloginEvent>(events[1])
  42. }
  43. }
  44. @Test
  45. fun testMockAvatarChange() = runTest {
  46. assertEquals("http://q.qlogo.cn/g?b=qq&nk=${bot.id}&s=640", bot.avatarUrl)
  47. runAndReceiveEventBroadcast {
  48. bot.avatarUrl = "http://localhost/test.png"
  49. assertEquals("http://localhost/test.png", bot.avatarUrl)
  50. }.let { events ->
  51. assertEquals(1, events.size)
  52. assertIsInstance<BotAvatarChangedEvent>(events[0])
  53. }
  54. }
  55. @Test
  56. fun testBotNickChangedEvent() = runTest {
  57. runAndReceiveEventBroadcast {
  58. bot.nickNoEvent = "HiHi"
  59. bot.nick = "AAAA"
  60. bot nickChangesTo "BBBB"
  61. }.let { events ->
  62. assertEquals(2, events.size)
  63. assertIsInstance<BotNickChangedEvent>(events[0]) {
  64. assertEquals("HiHi", from)
  65. assertEquals("AAAA", to)
  66. }
  67. assertIsInstance<BotNickChangedEvent>(events[1]) {
  68. assertEquals("AAAA", from)
  69. assertEquals("BBBB", to)
  70. }
  71. }
  72. }
  73. }