From 9a3a30aca24f22062d1c06dfb804a22f6d4e3272 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 16 Dec 2022 20:49:33 +0100 Subject: [PATCH] Add repo tests --- .../data/recipes/impl/RecipeRepoTest.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoTest.kt b/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoTest.kt index 7c04429..2a4fb81 100644 --- a/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoTest.kt +++ b/app/src/test/java/gq/kirmanak/mealient/data/recipes/impl/RecipeRepoTest.kt @@ -8,9 +8,11 @@ import gq.kirmanak.mealient.data.recipes.network.RecipeDataSource import gq.kirmanak.mealient.datasource.NetworkError.Unauthorized import gq.kirmanak.mealient.test.BaseUnitTest import gq.kirmanak.mealient.test.RecipeImplTestData.CAKE_FULL_RECIPE_INFO +import gq.kirmanak.mealient.test.RecipeImplTestData.CAKE_RECIPE_SUMMARY_ENTITY import gq.kirmanak.mealient.test.RecipeImplTestData.FULL_CAKE_INFO_ENTITY import io.mockk.coEvery import io.mockk.coVerify +import io.mockk.coVerifyOrder import io.mockk.impl.annotations.MockK import io.mockk.verify import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -106,4 +108,21 @@ class RecipeRepoTest : BaseUnitTest() { subject.refreshRecipes() coVerify { remoteMediator.updateRecipes(eq(0), eq(150), eq(LoadType.REFRESH)) } } + + @Test + fun `when delete recipe expect correct sequence`() = runTest { + subject.deleteRecipe(CAKE_RECIPE_SUMMARY_ENTITY) + coVerifyOrder { + dataSource.deleteRecipe(eq("cake")) + storage.deleteRecipe(eq(CAKE_RECIPE_SUMMARY_ENTITY)) + pagingSourceFactory.invalidate() + } + } + + @Test + fun `when delete recipe remotely fails expect it isn't deleted locally`() = runTest { + coEvery { dataSource.deleteRecipe(any()) } throws Unauthorized(IOException()) + subject.deleteRecipe(CAKE_RECIPE_SUMMARY_ENTITY) + coVerify(inverse = true) { storage.deleteRecipe(any()) } + } } \ No newline at end of file