#1238 100% StorageObserver

This commit is contained in:
Sean Mac Gillicuddy 2019-06-28 17:03:39 +01:00
parent 39a964bf42
commit c0de738470

View File

@ -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"
}
}