Add tests for offline filtering
All checks were successful
continuous-integration/drone/pr Build is passing

This commit is contained in:
davidoskky 2022-10-08 17:15:41 +02:00
parent 1d1c121aab
commit d0a982f385

View File

@ -173,6 +173,60 @@ class RepositoryTest() {
verify(atLeast = 1) { db.itemsQueries.items().executeAsList()} verify(atLeast = 1) { db.itemsQueries.items().executeAsList()}
} }
@Test
fun `Get newer items without connectivity and tag filter`() {
val itemParameter1 = FakeItemParameters()
val itemParameter2 = FakeItemParameters()
val itemParameter3 = FakeItemParameters()
itemParameter2.tags = "Test, Stuff"
itemParameter3.tags = "Other, Tag"
coEvery { db.itemsQueries.items().executeAsList() } returnsMany listOf(
generateTestDBItems(itemParameter1),
generateTestDBItems(itemParameter2),
generateTestDBItems(itemParameter3)
)
every { connectivityStatus.isNetworkConnected } returns MutableStateFlow(false)
every { appSettingsService.isItemCachingEnabled() } returns true
val repository = Repository(api, appSettingsService, connectivityStatus, db)
repository.tagFilter = SelfossModel.Tag("Test", "red", 3)
runBlocking {
repository.getNewerItems()
}
assertSame(repository.items.size, 1)
coVerify(exactly = 0) { api.getItems("unread", 0, null, null, null, null, any()) }
verify(atLeast = 1) { db.itemsQueries.items().executeAsList()}
}
@Test
fun `Get newer items without connectivity and source filter`() {
val itemParameter1 = FakeItemParameters()
val itemParameter2 = FakeItemParameters()
val itemParameter3 = FakeItemParameters()
itemParameter2.sourcetitle = "Test"
itemParameter3.sourcetitle = "Other"
coEvery { db.itemsQueries.items().executeAsList() } returnsMany listOf(
generateTestDBItems(itemParameter1),
generateTestDBItems(itemParameter2),
generateTestDBItems(itemParameter3)
)
every { connectivityStatus.isNetworkConnected } returns MutableStateFlow(false)
every { appSettingsService.isItemCachingEnabled() } returns true
val repository = Repository(api, appSettingsService, connectivityStatus, db)
repository.sourceFilter = SelfossModel.Source(1, "Test", listOf("tags"),"spouts\\rss\\fulltextrss", "", "b3aa8a664d08eb15d6ff1db2fa83e0d9.png")
runBlocking {
repository.getNewerItems()
}
assertSame(repository.items.size, 1)
coVerify(exactly = 0) { api.getItems("unread", 0, null, null, null, null, any()) }
verify(atLeast = 1) { db.itemsQueries.items().executeAsList()}
}
@Test @Test
fun `Get older items`() { fun `Get older items`() {
coEvery { api.getItems(any(), any(), any(), any(), any(), any(), any()) } returns coEvery { api.getItems(any(), any(), any(), any(), any(), any(), any()) } returns
@ -998,6 +1052,6 @@ class FakeItemParameters() {
val thumbnail = null val thumbnail = null
val icon = "ba79e238383ce83c23a169929c8906ef.png" val icon = "ba79e238383ce83c23a169929c8906ef.png"
val link = "https://ilblogdellasci.wordpress.com/2022/09/09/etica-della-ricerca-sotto-i-riflettori/" val link = "https://ilblogdellasci.wordpress.com/2022/09/09/etica-della-ricerca-sotto-i-riflettori/"
val sourcetitle = "La Chimica e la Società" var sourcetitle = "La Chimica e la Società"
val tags = "Chimica, Testing" var tags = "Chimica, Testing"
} }