mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-30 09:50:12 +08:00
[mock] Fix mockUploadAudio always throws ISE, part of #2548
This commit is contained in:
parent
db3a0ad24a
commit
43b5e710ef
mirai-core-mock
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2019-2022 Mamoe Technologies and contributors.
|
||||
* Copyright 2019-2023 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
@ -50,14 +50,17 @@ internal fun MessageSource.withMessage(msg: Message): MessageChain = buildMessag
|
||||
}
|
||||
|
||||
@Suppress("UNUSED_PARAMETER")
|
||||
internal suspend fun ExternalResource.mockUploadAudio(bot: MockBot) = inResource {
|
||||
OfflineAudio(
|
||||
filename = md5.toUHexString() + ".amr",
|
||||
fileMd5 = md5,
|
||||
fileSize = size,
|
||||
codec = AudioCodec.SILK,
|
||||
extraData = null,
|
||||
)
|
||||
internal suspend fun ExternalResource.mockUploadAudio(bot: MockBot): OfflineAudio {
|
||||
val md5 = md5 // calculate before using resource
|
||||
return inResource {
|
||||
OfflineAudio(
|
||||
filename = md5.toUHexString() + ".amr",
|
||||
fileMd5 = md5,
|
||||
fileSize = size,
|
||||
codec = AudioCodec.SILK,
|
||||
extraData = null,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
internal suspend fun ExternalResource.mockUploadVoice(bot: MockBot) = kotlin.run {
|
||||
|
@ -18,6 +18,7 @@ import kotlinx.coroutines.flow.toList
|
||||
import net.mamoe.mirai.contact.MemberPermission
|
||||
import net.mamoe.mirai.event.events.GroupMessageEvent
|
||||
import net.mamoe.mirai.message.data.FileMessage
|
||||
import net.mamoe.mirai.mock.internal.contact.mockUploadAudio
|
||||
import net.mamoe.mirai.mock.internal.remotefile.absolutefile.MockRemoteFiles
|
||||
import net.mamoe.mirai.mock.internal.serverfs.MockServerFileSystemImpl
|
||||
import net.mamoe.mirai.mock.utils.simpleMemberInfo
|
||||
@ -145,4 +146,20 @@ internal class AbsoluteFileTest : MockBotTestBase() {
|
||||
}
|
||||
assertEquals(0, group.files.root.resolveFiles("/a").count())
|
||||
}
|
||||
|
||||
@Test
|
||||
@Suppress("INVISIBLE_REFERENCE")
|
||||
fun testMockUploadAudio() = runTest {
|
||||
val file = runBIO {
|
||||
kotlin.io.path.createTempFile("test", ".txt").toFile().apply {
|
||||
writeText("test")
|
||||
deleteOnExit()
|
||||
}
|
||||
}
|
||||
|
||||
file.toExternalResource().use {
|
||||
assertIsInstance<net.mamoe.mirai.internal.utils.ExternalResourceImplByFile>(it)
|
||||
it.mockUploadAudio(bot)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user