Skip to content

Commit d88dcbc

Browse files
committed
Add tests for mute events
1 parent d9523b9 commit d88dcbc

File tree

1 file changed

+265
-0
lines changed
  • mirai-core/src/commonTest/kotlin/notice/processors

1 file changed

+265
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,265 @@
1+
/*
2+
* Copyright 2019-2021 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+
10+
@file:JvmBlockingBridge
11+
12+
package net.mamoe.mirai.internal.notice.processors
13+
14+
import net.mamoe.kjbb.JvmBlockingBridge
15+
import net.mamoe.mirai.contact.MemberPermission
16+
import net.mamoe.mirai.event.events.BotMuteEvent
17+
import net.mamoe.mirai.event.events.BotUnmuteEvent
18+
import net.mamoe.mirai.event.events.MemberMuteEvent
19+
import net.mamoe.mirai.event.events.MemberUnmuteEvent
20+
import net.mamoe.mirai.internal.network.protocol.data.jce.MsgInfo
21+
import net.mamoe.mirai.internal.network.protocol.data.jce.OnlinePushPack
22+
import net.mamoe.mirai.internal.network.protocol.data.jce.ShareData
23+
import net.mamoe.mirai.utils.currentTimeSeconds
24+
import org.junit.jupiter.api.Test
25+
import kotlin.test.assertEquals
26+
import kotlin.test.assertIs
27+
28+
29+
internal class MuteTest : AbstractNoticeProcessorTest() {
30+
@Test
31+
suspend fun `test bot mute`() {
32+
suspend fun MuteTest.runTest() = use {
33+
OnlinePushPack.SvcReqPushMsg(
34+
uin = 1230001,
35+
uMsgTime = 1629868940,
36+
vMsgInfos = mutableListOf(
37+
MsgInfo(
38+
lFromUin = 2230203,
39+
shMsgType = 732,
40+
shMsgSeq = 8352,
41+
strMsg = "",
42+
uRealMsgTime = 1629868940,
43+
vMsg = "00 22 07 BB 0C 01 00 12 C4 B2 61 25 D3 8D 00 01 00 12 C4 B1 00 00 02 58".hexToBytes(),
44+
uAppShareID = 0,
45+
vMsgCookies = "08 DC 05 10 DC 85 E0 80 80 80 80 80 02 18 03 20 DE 86 03".hexToBytes(),
46+
lMsgUid = 144115188077429468,
47+
lLastChangeTime = 1,
48+
vCPicInfo = mutableListOf(),
49+
stShareData = ShareData(
50+
),
51+
lFromInstId = 0,
52+
vRemarkOfSender = net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY,
53+
strFromMobile = "",
54+
strFromName = "",
55+
vNickName = mutableListOf(),
56+
)
57+
),
58+
svrip = -1467578103,
59+
vSyncCookie = net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY,
60+
vUinPairMsg = mutableListOf(),
61+
mPreviews = mutableMapOf(
62+
),
63+
)
64+
65+
66+
}
67+
setBot(1230001)
68+
.addGroup(2230203, 1230002, name = "testtest").apply {
69+
addMember(1230002, "user2", MemberPermission.OWNER)
70+
}
71+
72+
runTest().run {
73+
assertEquals(1, size)
74+
val event = single()
75+
assertIs<BotMuteEvent>(event)
76+
assertEquals(600, event.durationSeconds)
77+
assertEquals(1230002, event.operator.id)
78+
}
79+
}
80+
81+
@Test
82+
suspend fun `test bot unmute`() {
83+
suspend fun MuteTest.runTest() = use {
84+
OnlinePushPack.SvcReqPushMsg(
85+
uin = 1230001,
86+
uMsgTime = 1629869459,
87+
vMsgInfos = mutableListOf(
88+
MsgInfo(
89+
lFromUin = 2230203,
90+
shMsgType = 732,
91+
shMsgSeq = -26716,
92+
strMsg = "",
93+
uRealMsgTime = 1629869459,
94+
vMsg = "00 22 07 BB 0C 01 00 12 C4 B2 61 25 D5 93 00 01 00 12 C4 B1 00 00 00 00".hexToBytes(),
95+
uAppShareID = 0,
96+
vMsgCookies = "08 DC 05 10 DC 85 E0 80 80 80 80 80 02 18 03 20 DE 86 03".hexToBytes(),
97+
lMsgUid = 144115188077429468,
98+
lLastChangeTime = 1,
99+
vCPicInfo = mutableListOf(),
100+
stShareData = ShareData(
101+
),
102+
lFromInstId = 0,
103+
vRemarkOfSender = net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY,
104+
strFromMobile = "",
105+
strFromName = "",
106+
vNickName = mutableListOf(),
107+
)
108+
),
109+
svrip = 1554024713,
110+
vSyncCookie = net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY,
111+
vUinPairMsg = mutableListOf(),
112+
mPreviews = mutableMapOf(
113+
),
114+
)
115+
}
116+
117+
setBot(1230001)
118+
.addGroup(2230203, 1230002, name = "testtest").apply {
119+
addMember(1230002, "user2", MemberPermission.OWNER)
120+
addMember(1230003, "user3", MemberPermission.MEMBER)
121+
botAsMember.apply {
122+
_muteTimestamp = currentTimeSeconds().toInt() + 600
123+
}
124+
}
125+
126+
runTest().run {
127+
assertEquals(1, size)
128+
val event = single()
129+
assertIs<BotUnmuteEvent>(event)
130+
assertEquals(1230002, event.operator.id)
131+
}
132+
133+
134+
setBot(1230001)
135+
.addGroup(2230203, 1230002, name = "testtest").apply {
136+
addMember(1230002, "user2", MemberPermission.OWNER)
137+
addMember(1230003, "user3", MemberPermission.MEMBER)
138+
botAsMember.apply {
139+
_muteTimestamp = 0
140+
}
141+
}
142+
143+
runTest().run {
144+
assertEquals(0, size)
145+
}
146+
}
147+
148+
@Test
149+
suspend fun `test member mute`() {
150+
suspend fun MuteTest.runTest() = use {
151+
OnlinePushPack.SvcReqPushMsg(
152+
uin = 1230001,
153+
uMsgTime = 1629870209,
154+
vMsgInfos = mutableListOf(
155+
MsgInfo(
156+
lFromUin = 2230203,
157+
shMsgType = 732,
158+
shMsgSeq = 8159,
159+
strMsg = "",
160+
uRealMsgTime = 1629870209,
161+
vMsg = "00 22 07 BB 0C 01 00 12 C4 B2 61 25 D8 81 00 01 00 12 C4 B3 00 00 02 58".hexToBytes(),
162+
uAppShareID = 0,
163+
vMsgCookies = "08 DC 05 10 DC 85 E0 80 80 80 80 80 02 18 03 20 DE 86 03".hexToBytes(),
164+
lMsgUid = 144115188077429468,
165+
lLastChangeTime = 1,
166+
vCPicInfo = mutableListOf(),
167+
stShareData = ShareData(
168+
),
169+
lFromInstId = 0,
170+
vRemarkOfSender = net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY,
171+
strFromMobile = "",
172+
strFromName = "",
173+
vNickName = mutableListOf(),
174+
)
175+
),
176+
svrip = -1763941110,
177+
vSyncCookie = net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY,
178+
vUinPairMsg = mutableListOf(),
179+
mPreviews = mutableMapOf(
180+
),
181+
)
182+
}
183+
184+
setBot(1230001)
185+
.addGroup(2230203, 1230002, name = "testtest").apply {
186+
addMember(1230002, "user2", MemberPermission.OWNER)
187+
addMember(1230003, "user3", MemberPermission.MEMBER)
188+
}
189+
190+
runTest().run {
191+
assertEquals(1, size)
192+
val event = single()
193+
assertIs<MemberMuteEvent>(event)
194+
assertEquals(600, event.durationSeconds)
195+
assertEquals(1230002, event.operator?.id)
196+
}
197+
}
198+
199+
200+
@Test
201+
suspend fun `test member unmute`() {
202+
suspend fun MuteTest.runTest() = use {
203+
OnlinePushPack.SvcReqPushMsg(
204+
uin = 1230001,
205+
uMsgTime = 1629869825,
206+
vMsgInfos = mutableListOf(
207+
MsgInfo(
208+
lFromUin = 2230203,
209+
shMsgType = 732,
210+
shMsgSeq = 16929,
211+
strMsg = "",
212+
uRealMsgTime = 1629869825,
213+
vMsg = "00 22 07 BB 0C 01 00 12 C4 B2 61 25 D7 02 00 01 00 12 C4 B3 00 00 00 00".hexToBytes(),
214+
uAppShareID = 0,
215+
vMsgCookies = "08 DC 05 10 DC 85 E0 80 80 80 80 80 02 18 03 20 DE 86 03".hexToBytes(),
216+
lMsgUid = 144115188077429468,
217+
lLastChangeTime = 1,
218+
vCPicInfo = mutableListOf(),
219+
stShareData = ShareData(
220+
),
221+
lFromInstId = 0,
222+
vRemarkOfSender = net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY,
223+
strFromMobile = "",
224+
strFromName = "",
225+
vNickName = mutableListOf(),
226+
)
227+
),
228+
svrip = 2040629513,
229+
vSyncCookie = net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY,
230+
vUinPairMsg = mutableListOf(),
231+
mPreviews = mutableMapOf(
232+
),
233+
)
234+
}
235+
236+
setBot(1230001)
237+
.addGroup(2230203, 1230002, name = "testtest").apply {
238+
addMember(1230002, "user2", MemberPermission.OWNER)
239+
addMember(1230003, "user3", MemberPermission.MEMBER).apply {
240+
_muteTimestamp = currentTimeSeconds().toInt() + 600
241+
}
242+
}
243+
244+
runTest().run {
245+
assertEquals(1, size)
246+
val event = single()
247+
assertIs<MemberUnmuteEvent>(event)
248+
assertEquals(1230002, event.operator?.id)
249+
}
250+
251+
252+
setBot(1230001)
253+
.addGroup(2230203, 1230002, name = "testtest").apply {
254+
addMember(1230002, "user2", MemberPermission.OWNER)
255+
addMember(1230003, "user3", MemberPermission.MEMBER).apply {
256+
_muteTimestamp = 0
257+
}
258+
}
259+
260+
runTest().run {
261+
assertEquals(0, size)
262+
}
263+
}
264+
265+
}

0 commit comments

Comments
 (0)