Skip to content

Commit f01ec9c

Browse files
committed
feat: 实现 OneBotGroup.send 的拦截事件和成功回调事件
1 parent b738d7b commit f01ec9c

File tree

1 file changed

+36
-0
lines changed
  • simbot-component-onebot-v11/simbot-component-onebot-v11-core/src/jvmTest/kotlin/love/forte/simbot/component/onebot/v11/core/event

1 file changed

+36
-0
lines changed

simbot-component-onebot-v11/simbot-component-onebot-v11-core/src/jvmTest/kotlin/love/forte/simbot/component/onebot/v11/core/event/GroupSendInteractionTests.kt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ import io.mockk.coEvery
44
import io.mockk.coVerify
55
import io.mockk.mockk
66
import io.mockk.spyk
7+
import kotlinx.coroutines.CompletableDeferred
78
import kotlinx.coroutines.SupervisorJob
89
import kotlinx.coroutines.runBlocking
10+
import kotlinx.coroutines.test.runTest
911
import kotlinx.serialization.json.Json
1012
import kotlinx.serialization.modules.overwriteWith
1113
import love.forte.simbot.common.id.IntID.Companion.ID
@@ -17,16 +19,20 @@ import love.forte.simbot.component.onebot.v11.core.api.SendMsgResult
1719
import love.forte.simbot.component.onebot.v11.core.bot.OneBotBotConfiguration
1820
import love.forte.simbot.component.onebot.v11.core.bot.internal.OneBotBotImpl
1921
import love.forte.simbot.component.onebot.v11.core.component.OneBot11Component
22+
import love.forte.simbot.component.onebot.v11.core.event.messageinteraction.OneBotGroupPostSendEvent
2023
import love.forte.simbot.component.onebot.v11.core.event.messageinteraction.OneBotSegmentsInteractionMessage
2124
import love.forte.simbot.core.application.launchSimpleApplication
2225
import love.forte.simbot.event.EventDispatcher
2326
import love.forte.simbot.event.EventListener
2427
import love.forte.simbot.event.InteractionMessage
28+
import love.forte.simbot.event.process
29+
import love.forte.simbot.message.MessageReceipt
2530
import kotlin.coroutines.EmptyCoroutineContext
2631
import kotlin.test.Test
2732
import kotlin.test.assertEquals
2833
import kotlin.test.assertFailsWith
2934
import 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

Comments
 (0)