2
0

ImageUploadTest.kt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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
  10. import kotlinx.coroutines.runBlocking
  11. import net.mamoe.mirai.message.data.Image
  12. import net.mamoe.mirai.message.data.Image.Key.queryUrl
  13. import net.mamoe.mirai.mock.MockBotFactory
  14. import net.mamoe.mirai.mock.utils.randomImageContent
  15. import net.mamoe.mirai.utils.ExternalResource.Companion.toExternalResource
  16. import org.junit.jupiter.api.AfterEach
  17. import org.junit.jupiter.api.Test
  18. import org.junit.jupiter.api.TestInstance
  19. import java.net.URL
  20. import kotlin.test.assertEquals
  21. import kotlin.test.assertNotEquals
  22. import kotlin.test.assertTrue
  23. @TestInstance(TestInstance.Lifecycle.PER_METHOD)
  24. internal class ImageUploadTest {
  25. internal val bot = MockBotFactory.newMockBotBuilder()
  26. .id(1234567890)
  27. .nick("Sakura")
  28. .create()
  29. @AfterEach
  30. internal fun botDestroy() {
  31. bot.close()
  32. }
  33. @Test
  34. fun testImageUpload() = runBlocking<Unit> {
  35. val data = Image.randomImageContent()
  36. val img = bot.asFriend.uploadImage(
  37. data.toExternalResource().toAutoCloseable()
  38. )
  39. println(img.imageId)
  40. assertTrue {
  41. data.contentEquals(URL(img.queryUrl()).readBytes())
  42. }
  43. assertNotEquals(0, img.size)
  44. }
  45. @Test
  46. fun testSameImageMultiUpload() = runBlocking<Unit> {
  47. Image.randomImageContent().toExternalResource().use { imgData ->
  48. val img1 = bot.asFriend.uploadImage(imgData)
  49. val img2 = bot.asFriend.uploadImage(imgData)
  50. assertEquals(img1, img2)
  51. }
  52. }
  53. }