From c0de73847038f0eba900f936395c7f2c2212513c Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Fri, 28 Jun 2019 17:03:39 +0100 Subject: [PATCH] #1238 100% StorageObserver --- .../fileselect_view/StorageObserverTest.kt | 85 ++++++++----------- 1 file changed, 35 insertions(+), 50 deletions(-) diff --git a/app/src/test/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/StorageObserverTest.kt b/app/src/test/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/StorageObserverTest.kt index 0f111ae39..2d53c1937 100644 --- a/app/src/test/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/StorageObserverTest.kt +++ b/app/src/test/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/StorageObserverTest.kt @@ -73,29 +73,14 @@ class StorageObserverTest { @Test fun `books from disk are filtered by current downloads`() { - every { downloadModel.fileNameFromUrl } returns "test" - every { file.absolutePath } returns "This is a test" - storageObserver.booksOnFileSystem - .test() - .also { - downloads.offer(listOf(downloadModel)) - files.offer(listOf(file)) - } - .assertValues(listOf()) + withFiltering() + booksOnFileSystem().assertValues(listOf()) } @Test fun `null books from ZimContentProvider are filtered out`() { - every { downloadModel.fileNameFromUrl } returns "test" - every { file.absolutePath } returns "This won't match" - - storageObserver.booksOnFileSystem - .test() - .also { - downloads.offer(listOf(downloadModel)) - files.offer(listOf(file)) - } - .assertValues(listOf()) + withNoFiltering() + booksOnFileSystem().assertValues(listOf()) } @Test @@ -105,51 +90,41 @@ class StorageObserverTest { "description", "language" ) mockkStatic(ZimContentProvider::class) - every { downloadModel.fileNameFromUrl } returns "test" - every { file.absolutePath } returns "This won't match" - - ZimContentProvider.canIterate = true + withNoFiltering() every { ZimContentProvider.setZimFile("This won't match") } returns "" - expect(expectedBook) - - storageObserver.booksOnFileSystem - .test() - .also { - downloads.offer(listOf(downloadModel)) - files.offer(listOf(file)) - } - .assertValues( - listOf( - bookOnDisk( - book = expectedBook, - file = file, - databaseId = null - ) - - ) + booksOnFileSystem().assertValues( + listOf( + bookOnDisk(book = expectedBook, file = file, databaseId = null) ) + ) assertThat(ZimContentProvider.originalFileName).isEqualTo("") } @Test fun `zim provider sets zim file to original file name if it exists`() { - every { downloadModel.fileNameFromUrl } returns "test" - every { file.absolutePath } returns "This is not" - + withNoFiltering() mockkStatic(ZimContentProvider::class) every { ZimContentProvider.setZimFile(any()) } returns null ZimContentProvider.zimFileName = "myZimFileName" - storageObserver.booksOnFileSystem - .test() - .also { - downloads.offer(listOf(downloadModel)) - files.offer(listOf(file)) - } - .assertValues(listOf()) + booksOnFileSystem().assertValues(listOf()) verify { ZimContentProvider.setZimFile("myZimFileName") } } + @Test + fun `zim provider does not read book if it can not iterate`() { + withNoFiltering() + ZimContentProvider.canIterate = false + booksOnFileSystem().assertValues(listOf()) + } + + private fun booksOnFileSystem() = storageObserver.booksOnFileSystem + .test() + .also { + downloads.offer(listOf(downloadModel)) + files.offer(listOf(file)) + } + private fun expect(expectedBook: Book) { every { ZimContentProvider.getZimFileTitle() } returns expectedBook.title every { ZimContentProvider.getId() } returns expectedBook.id @@ -161,4 +136,14 @@ class StorageObserverTest { every { ZimContentProvider.getDescription() } returns expectedBook.description every { ZimContentProvider.getLanguage() } returns expectedBook.language } + + private fun withFiltering() { + every { downloadModel.fileNameFromUrl } returns "test" + every { file.absolutePath } returns "This is a test" + } + + private fun withNoFiltering() { + every { downloadModel.fileNameFromUrl } returns "test" + every { file.absolutePath } returns "This won't match" + } }