diff --git a/db/src/test/java/com/readrops/db/ExampleUnitTest.java b/db/src/test/java/com/readrops/db/ExampleUnitTest.java deleted file mode 100644 index f8cec603..00000000 --- a/db/src/test/java/com/readrops/db/ExampleUnitTest.java +++ /dev/null @@ -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 Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file diff --git a/db/src/test/java/com/readrops/db/ItemsQueryBuilderTest.kt b/db/src/test/java/com/readrops/db/ItemsQueryBuilderTest.kt new file mode 100644 index 00000000..b61ce808 --- /dev/null +++ b/db/src/test/java/com/readrops/db/ItemsQueryBuilderTest.kt @@ -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) + } +} \ No newline at end of file