added test for when exception happens during compression
This commit is contained in:
+28
-2
@@ -20,6 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.vitorpamplona.amethyst.ui.components
|
package com.vitorpamplona.amethyst.ui.components
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import com.abedelazizshe.lightcompressorlibrary.VideoCompressor
|
import com.abedelazizshe.lightcompressorlibrary.VideoCompressor
|
||||||
@@ -30,7 +31,6 @@ import io.mockk.coEvery
|
|||||||
import io.mockk.coVerify
|
import io.mockk.coVerify
|
||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import io.mockk.mockkClass
|
|
||||||
import io.mockk.mockkObject
|
import io.mockk.mockkObject
|
||||||
import io.mockk.mockkStatic
|
import io.mockk.mockkStatic
|
||||||
import io.mockk.unmockkAll
|
import io.mockk.unmockkAll
|
||||||
@@ -146,7 +146,7 @@ class MediaCompressorTest {
|
|||||||
MediaCompressor().compress(
|
MediaCompressor().compress(
|
||||||
uri,
|
uri,
|
||||||
contentType,
|
contentType,
|
||||||
applicationContext = mockkClass(android.content.Context::class, relaxed = true),
|
applicationContext = mockk<Context>(relaxed = true),
|
||||||
onReady = { _, _, _ -> },
|
onReady = { _, _, _ -> },
|
||||||
onError = { },
|
onError = { },
|
||||||
mediaQuality = mediaQuality,
|
mediaQuality = mediaQuality,
|
||||||
@@ -155,4 +155,30 @@ class MediaCompressorTest {
|
|||||||
// Verify
|
// Verify
|
||||||
coVerify(exactly = 1) { Compressor.compress(any(), any(), any(), any()) }
|
coVerify(exactly = 1) { Compressor.compress(any(), any(), any(), any()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Image compression should return back same uri on exception`() =
|
||||||
|
runTest {
|
||||||
|
// setup
|
||||||
|
val mockContext = mockk<Context>(relaxed = true)
|
||||||
|
val mockUri = mockk<Uri>()
|
||||||
|
val mockOnReady = mockk<(Uri, String?, Long?) -> Unit>(relaxed = true)
|
||||||
|
|
||||||
|
mockkObject(MediaCompressorFileUtils)
|
||||||
|
every { MediaCompressorFileUtils.from(any(), any()) } returns File("test")
|
||||||
|
coEvery { Compressor.compress(any(), any<File>(), any(), any()) } throws Exception("Compression error")
|
||||||
|
|
||||||
|
// Execute
|
||||||
|
MediaCompressor().compress(
|
||||||
|
uri = mockUri,
|
||||||
|
contentType = "image/jpeg",
|
||||||
|
applicationContext = mockContext,
|
||||||
|
onReady = mockOnReady,
|
||||||
|
onError = { },
|
||||||
|
mediaQuality = CompressorQuality.MEDIUM,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Verify: onReady should be called with original uri, content type, and null size
|
||||||
|
verify { mockOnReady.invoke(mockUri, "image/jpeg", null) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user