From 76a66e7bd3b2bbcf2b51c56badfc5722aded40d7 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Wed, 9 Oct 2024 21:46:15 +0200 Subject: [PATCH] added test for when exception happens during compression --- .../ui/components/MediaCompressorTest.kt | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/amethyst/src/test/java/com/vitorpamplona/amethyst/ui/components/MediaCompressorTest.kt b/amethyst/src/test/java/com/vitorpamplona/amethyst/ui/components/MediaCompressorTest.kt index 8cf36a75e..04bcf10d9 100644 --- a/amethyst/src/test/java/com/vitorpamplona/amethyst/ui/components/MediaCompressorTest.kt +++ b/amethyst/src/test/java/com/vitorpamplona/amethyst/ui/components/MediaCompressorTest.kt @@ -20,6 +20,7 @@ */ package com.vitorpamplona.amethyst.ui.components +import android.content.Context import android.net.Uri import android.os.Looper import com.abedelazizshe.lightcompressorlibrary.VideoCompressor @@ -30,7 +31,6 @@ import io.mockk.coEvery import io.mockk.coVerify import io.mockk.every import io.mockk.mockk -import io.mockk.mockkClass import io.mockk.mockkObject import io.mockk.mockkStatic import io.mockk.unmockkAll @@ -146,7 +146,7 @@ class MediaCompressorTest { MediaCompressor().compress( uri, contentType, - applicationContext = mockkClass(android.content.Context::class, relaxed = true), + applicationContext = mockk(relaxed = true), onReady = { _, _, _ -> }, onError = { }, mediaQuality = mediaQuality, @@ -155,4 +155,30 @@ class MediaCompressorTest { // Verify 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(relaxed = true) + val mockUri = mockk() + val mockOnReady = mockk<(Uri, String?, Long?) -> Unit>(relaxed = true) + + mockkObject(MediaCompressorFileUtils) + every { MediaCompressorFileUtils.from(any(), any()) } returns File("test") + coEvery { Compressor.compress(any(), any(), 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) } + } }