From dcbd978c7358d071dd27092c4410c1cde631697a Mon Sep 17 00:00:00 2001 From: mcarare Date: Mon, 26 Jul 2021 17:06:09 +0300 Subject: [PATCH] [fenix] For https://github.com/mozilla-mobile/fenix/issues/20425: Re-add tests for class BookmarksUseCaseTest. --- .../components/bookmarks/BookmarksUseCase.kt | 7 ++- .../bookmarks/BookmarksUseCaseTest.kt | 49 +++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/bookmarks/BookmarksUseCase.kt b/app/src/main/java/org/mozilla/fenix/components/bookmarks/BookmarksUseCase.kt index 021c8fb0a..895dda3be 100644 --- a/app/src/main/java/org/mozilla/fenix/components/bookmarks/BookmarksUseCase.kt +++ b/app/src/main/java/org/mozilla/fenix/components/bookmarks/BookmarksUseCase.kt @@ -47,10 +47,13 @@ class BookmarksUseCase(storage: BookmarksStorage) { * Retrieves a list of recently added bookmarks, if any, up to maximum. */ @WorkerThread - suspend operator fun invoke(count: Int = DEFAULT_BOOKMARKS_TO_RETRIEVE): List { + suspend operator fun invoke( + count: Int = DEFAULT_BOOKMARKS_TO_RETRIEVE, + maxAgeInMs: Long = TimeUnit.DAYS.toMillis(DEFAULT_BOOKMARKS_DAYS_AGE_TO_RETRIEVE) + ): List { return storage.getRecentBookmarks( count, - TimeUnit.DAYS.toMillis(DEFAULT_BOOKMARKS_DAYS_AGE_TO_RETRIEVE) + maxAgeInMs ) } } diff --git a/app/src/test/java/org/mozilla/fenix/components/bookmarks/BookmarksUseCaseTest.kt b/app/src/test/java/org/mozilla/fenix/components/bookmarks/BookmarksUseCaseTest.kt index 57619a395..5ccd28c17 100644 --- a/app/src/test/java/org/mozilla/fenix/components/bookmarks/BookmarksUseCaseTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/bookmarks/BookmarksUseCaseTest.kt @@ -13,9 +13,11 @@ import kotlinx.coroutines.test.runBlockingTest import mozilla.appservices.places.BookmarkRoot import mozilla.components.concept.storage.BookmarkNode import mozilla.components.concept.storage.BookmarksStorage +import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test +import java.util.concurrent.TimeUnit @ExperimentalCoroutinesApi class BookmarksUseCaseTest { @@ -47,4 +49,51 @@ class BookmarksUseCaseTest { coVerify { storage.addItem(BookmarkRoot.Mobile.id, "https://mozilla.org", "Mozilla", null) } } + + @Test + fun `WHEN recently saved bookmarks exist THEN retrieve the list from storage`() = runBlockingTest { + val storage = mockk(relaxed = true) + val useCase = BookmarksUseCase(storage) + val bookmarkNode = mockk() + + coEvery { + storage.getRecentBookmarks( + any(), + any(), + any() + ) + }.coAnswers { listOf(bookmarkNode) } + + val result = useCase.retrieveRecentBookmarks(BookmarksUseCase.DEFAULT_BOOKMARKS_TO_RETRIEVE, 22) + + assertEquals(listOf(bookmarkNode), result) + + coVerify { + storage.getRecentBookmarks( + BookmarksUseCase.DEFAULT_BOOKMARKS_TO_RETRIEVE, + 22, + any() + ) + } + } + + @Test + fun `WHEN there are no recently saved bookmarks THEN retrieve the empty list from storage`() = runBlockingTest { + val storage = mockk(relaxed = true) + val useCase = BookmarksUseCase(storage) + + coEvery { storage.getRecentBookmarks(any(), any(), any()) }.coAnswers { listOf() } + + val result = useCase.retrieveRecentBookmarks(BookmarksUseCase.DEFAULT_BOOKMARKS_TO_RETRIEVE) + + assertEquals(listOf(), result) + + coVerify { + storage.getRecentBookmarks( + BookmarksUseCase.DEFAULT_BOOKMARKS_TO_RETRIEVE, + TimeUnit.DAYS.toMillis(BookmarksUseCase.DEFAULT_BOOKMARKS_DAYS_AGE_TO_RETRIEVE), + any() + ) + } + } }