MockMemberTest.kt 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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.contact.MemberPermission
  11. import net.mamoe.mirai.event.events.BotGroupPermissionChangeEvent
  12. import net.mamoe.mirai.event.events.MemberPermissionChangeEvent
  13. import net.mamoe.mirai.mock.test.MockBotTestBase
  14. import net.mamoe.mirai.mock.utils.simpleMemberInfo
  15. import org.junit.jupiter.api.Test
  16. import kotlin.test.assertEquals
  17. import kotlin.test.assertNotEquals
  18. import kotlin.test.assertSame
  19. internal class MockMemberTest : MockBotTestBase() {
  20. @Test
  21. internal fun testAvatar() = runTest {
  22. val m = bot.addGroup(111, "aaa").addMember(simpleMemberInfo(222, "bbb", permission = MemberPermission.MEMBER))
  23. assertNotEquals("", m.avatarUrl)
  24. }
  25. @Test
  26. internal fun changeOwner() = runTest {
  27. val group = bot.addGroup(111, "aaa")
  28. val member = group.addMember(simpleMemberInfo(222, "bbb", permission = MemberPermission.MEMBER))
  29. val events = runAndReceiveEventBroadcast {
  30. group.changeOwner(member)
  31. assertSame(member, group.owner)
  32. assertSame(MemberPermission.OWNER, member.permission)
  33. }
  34. assertEquals(2, events.size)
  35. assertIsInstance<MemberPermissionChangeEvent>(events[0]) {
  36. assertSame(member, this.member)
  37. assertSame(MemberPermission.OWNER, new)
  38. assertSame(MemberPermission.MEMBER, origin)
  39. assertSame(group, this.group)
  40. }
  41. assertIsInstance<BotGroupPermissionChangeEvent>(events[1]) {
  42. assertSame(MemberPermission.MEMBER, new)
  43. assertSame(MemberPermission.OWNER, origin)
  44. assertSame(group, this.group)
  45. }
  46. }
  47. @Test
  48. internal fun modifyAdmin() = runTest {
  49. val group = bot.addGroup(111, "aaa")
  50. group.changeOwner(group.botAsMember)
  51. val m = group.addMember(simpleMemberInfo(222, "bbb", permission = MemberPermission.MEMBER))
  52. val events = runAndReceiveEventBroadcast {
  53. m.modifyAdmin(true)
  54. assertEquals(MemberPermission.ADMINISTRATOR, m.permission)
  55. m.modifyAdmin(false)
  56. assertEquals(MemberPermission.MEMBER, m.permission)
  57. }
  58. assertEquals(2, events.size)
  59. assertIsInstance<MemberPermissionChangeEvent>(events[0]) {
  60. assertSame(m, member)
  61. assertSame(MemberPermission.MEMBER, origin)
  62. assertSame(MemberPermission.ADMINISTRATOR, new)
  63. assertSame(group, this.group)
  64. }
  65. assertIsInstance<MemberPermissionChangeEvent>(events[1]) {
  66. assertSame(m, member)
  67. assertSame(MemberPermission.ADMINISTRATOR, origin)
  68. assertSame(MemberPermission.MEMBER, new)
  69. assertSame(group, this.group)
  70. }
  71. }
  72. }