Skip to content

Commit 8cebc89

Browse files
committedAug 28, 2017
Added UserDaoTest
1 parent ca29cad commit 8cebc89

File tree

1 file changed

+100
-0
lines changed
  • app/src/androidTest/java/com/example/tamaskozmer/kotlinrxexample/model/persistence/daos

1 file changed

+100
-0
lines changed
 
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package com.example.tamaskozmer.kotlinrxexample.model.persistence.daos
2+
3+
import android.arch.persistence.room.Room
4+
import android.support.test.InstrumentationRegistry
5+
import android.support.test.runner.AndroidJUnit4
6+
import com.example.tamaskozmer.kotlinrxexample.model.entities.User
7+
import com.example.tamaskozmer.kotlinrxexample.model.persistence.AppDatabase
8+
import org.junit.After
9+
import org.junit.Assert
10+
import org.junit.Before
11+
import org.junit.Test
12+
import org.junit.runner.RunWith
13+
14+
/**
15+
* Created by Tamas_Kozmer on 7/24/2017.
16+
*/
17+
@RunWith(AndroidJUnit4::class)
18+
class UserDaoTest {
19+
20+
lateinit var userDao: UserDao
21+
lateinit var database: AppDatabase
22+
23+
@Before
24+
fun setup() {
25+
val context = InstrumentationRegistry.getTargetContext()
26+
database = Room.inMemoryDatabaseBuilder(context, AppDatabase::class.java).build()
27+
userDao = database.userDao()
28+
}
29+
30+
@After
31+
fun tearDown() {
32+
database.close()
33+
}
34+
35+
@Test
36+
fun testInsertedAndRetrievedUsersMatch() {
37+
val users = listOf(User(1, "Name", 100, "url"), User())
38+
userDao.insertAll(users)
39+
40+
val allUsers = userDao.getUsers(1)
41+
Assert.assertEquals(users, allUsers)
42+
}
43+
44+
@Test
45+
fun testUsersOrderedByCorrectly() {
46+
val users = listOf(
47+
User(1, "Name", 100, "url"),
48+
User(2, "Name2", 500, "url"),
49+
User(3, "Name3", 300, "url"))
50+
userDao.insertAll(users)
51+
52+
val allUsers = userDao.getUsers(1)
53+
val expectedUsers = users.sortedByDescending { it.reputation }
54+
Assert.assertEquals(expectedUsers, allUsers)
55+
}
56+
57+
@Test
58+
fun testConflictingInsertsReplaceUsers() {
59+
val users = listOf(
60+
User(1, "Name", 100, "url"),
61+
User(2, "Name2", 500, "url"),
62+
User(3, "Name3", 300, "url"))
63+
64+
val users2 = listOf(
65+
User(1, "Name", 1000, "url"),
66+
User(2, "Name2", 700, "url"),
67+
User(4, "Name3", 5500, "url"))
68+
userDao.insertAll(users)
69+
userDao.insertAll(users2)
70+
71+
val allUsers = userDao.getUsers(1)
72+
val expectedUsers = listOf(
73+
User(4, "Name3", 5500, "url"),
74+
User(1, "Name", 1000, "url"),
75+
User(2, "Name2", 700, "url"),
76+
User(3, "Name3", 300, "url"))
77+
78+
Assert.assertEquals(expectedUsers, allUsers)
79+
}
80+
81+
@Test
82+
fun testLimitUsersPerPage_FirstPageOnly30Items() {
83+
val users = (1..40L).map { User(it, "Name $it", it *100, "url") }
84+
85+
userDao.insertAll(users)
86+
87+
val retrievedUsers = userDao.getUsers(1)
88+
Assert.assertEquals(30, retrievedUsers.size)
89+
}
90+
91+
@Test
92+
fun testRequestSecondPage_LimitUsersPerPage_showOnlyRemainingItems() {
93+
val users = (1..40L).map { User(it, "Name $it", it *100, "url") }
94+
95+
userDao.insertAll(users)
96+
97+
val retrievedUsers = userDao.getUsers(2)
98+
Assert.assertEquals(10, retrievedUsers.size)
99+
}
100+
}

0 commit comments

Comments
 (0)
Please sign in to comment.