Add tests for ItemsQueryBuilder

This commit is contained in:
Shinokuni 2020-10-26 14:17:20 +01:00
parent 9406416ce7
commit 4460420f8a
2 changed files with 73 additions and 17 deletions

View File

@ -1,17 +0,0 @@
package com.readrops.db;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@ -0,0 +1,73 @@
package com.readrops.db
import com.readrops.db.filters.FilterType
import com.readrops.db.filters.ListSortType
import junit.framework.TestCase.assertFalse
import junit.framework.TestCase.assertTrue
import org.junit.Test
class ItemsQueryBuilderTest {
@Test
fun noFilterDefaultSortCaseTest() {
val queryFilters = QueryFilters(accountId = 1)
val query = ItemsQueryBuilder.buildQuery(queryFilters).sql
assertTrue(query.contains("Feed.account_id = 1"))
assertTrue(query.contains("read_it_later = 0"))
assertTrue(query.contains("Item.id DESC"))
assertFalse(query.contains("read = 0 And"))
}
@Test
fun feedFilterCaseTest() {
val queryFilters = QueryFilters(accountId = 1, filterType = FilterType.FEED_FILTER,
filterFeedId = 15)
val query = ItemsQueryBuilder.buildQuery(queryFilters).sql
assertTrue(query.contains("feed_id = 15 And read_it_later = 0"))
}
@Test
fun readLaterFilterCaseTest() {
val queryFilters = QueryFilters(accountId = 1, filterType = FilterType.READ_IT_LATER_FILTER)
val query = ItemsQueryBuilder.buildQuery(queryFilters).sql
assertTrue(query.contains("read_it_later = 1"))
}
@Test
fun starsFilterCaseTest() {
val queryFilters = QueryFilters(accountId = 1, filterType = FilterType.STARS_FILTER)
val query = ItemsQueryBuilder.buildQuery(queryFilters).sql
assertTrue(query.contains("starred = 1 And read_it_later = 0"))
}
@Test
fun oldestSortCaseTest() {
val queryFilters = QueryFilters(accountId = 1, sortType = ListSortType.OLDEST_TO_NEWEST,
showReadItems = false)
val query = ItemsQueryBuilder.buildQuery(queryFilters).sql
assertTrue(query.contains("read = 0 And "))
assertTrue(query.contains("pub_date ASC"))
}
@Test(expected = IllegalArgumentException::class)
fun accountIdExceptionTest() {
val queryFilters = QueryFilters()
ItemsQueryBuilder.buildQuery(queryFilters)
}
@Test(expected = IllegalArgumentException::class)
fun filterFeedIdExceptionTest() {
val queryFilters = QueryFilters(accountId = 1, filterType = FilterType.FEED_FILTER)
ItemsQueryBuilder.buildQuery(queryFilters)
}
}