@@ -4,8 +4,10 @@ import io.mockk.coEvery
44import io.mockk.coVerify
55import io.mockk.mockk
66import io.mockk.spyk
7+ import kotlinx.coroutines.CompletableDeferred
78import kotlinx.coroutines.SupervisorJob
89import kotlinx.coroutines.runBlocking
10+ import kotlinx.coroutines.test.runTest
911import kotlinx.serialization.json.Json
1012import kotlinx.serialization.modules.overwriteWith
1113import love.forte.simbot.common.id.IntID.Companion.ID
@@ -17,16 +19,20 @@ import love.forte.simbot.component.onebot.v11.core.api.SendMsgResult
1719import love.forte.simbot.component.onebot.v11.core.bot.OneBotBotConfiguration
1820import love.forte.simbot.component.onebot.v11.core.bot.internal.OneBotBotImpl
1921import love.forte.simbot.component.onebot.v11.core.component.OneBot11Component
22+ import love.forte.simbot.component.onebot.v11.core.event.messageinteraction.OneBotGroupPostSendEvent
2023import love.forte.simbot.component.onebot.v11.core.event.messageinteraction.OneBotSegmentsInteractionMessage
2124import love.forte.simbot.core.application.launchSimpleApplication
2225import love.forte.simbot.event.EventDispatcher
2326import love.forte.simbot.event.EventListener
2427import love.forte.simbot.event.InteractionMessage
28+ import love.forte.simbot.event.process
29+ import love.forte.simbot.message.MessageReceipt
2530import kotlin.coroutines.EmptyCoroutineContext
2631import kotlin.test.Test
2732import kotlin.test.assertEquals
2833import kotlin.test.assertFailsWith
2934import kotlin.test.assertIs
35+ import kotlin.test.assertSame
3036
3137
3238/* *
@@ -123,4 +129,34 @@ class GroupSendInteractionTests {
123129 )
124130 }
125131 }
132+
133+ @Test
134+ fun testGroupPostSend () = runTest {
135+ val app = launchSimpleApplication()
136+
137+ val receiptFromEvent = CompletableDeferred <MessageReceipt >()
138+
139+ app.eventDispatcher.process<OneBotGroupPostSendEvent > { event ->
140+ receiptFromEvent.complete(event.receipt)
141+ }
142+
143+ val dispatcher = spyk(app.eventDispatcher, recordPrivateCalls = true )
144+
145+ val bot = spykBot(dispatcher)
146+
147+ val group = spyk(
148+ OneBotGroupApiResultImpl (
149+ source = mockk(relaxed = true ),
150+ bot = bot,
151+ ownerId = UUID .random()
152+ ),
153+ )
154+
155+ coEvery { bot.executeData<SendMsgResult >(any()) } returns SendMsgResult (114 .ID )
156+ val receiptFromSend = group.send(" Hello World" )
157+
158+ coVerify { group.send(" Hello World" ) }
159+
160+ assertSame(receiptFromSend, receiptFromEvent.await())
161+ }
126162}
0 commit comments