@@ -5,14 +5,13 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
55import androidx.test.platform.app.InstrumentationRegistry
66import com.seok.gfd.room.AppDatabase
77import com.seok.gfd.room.entity.SearchGithubId
8+ import kotlinx.coroutines.runBlocking
89import org.junit.After
910import org.junit.Before
1011
1112import org.junit.Assert.*
1213import org.junit.Test
1314import org.junit.runner.RunWith
14- import java.io.IOException
15- import java.util.*
1615
1716@RunWith(AndroidJUnit4 ::class )
1817class SearchGithubIdDaoTest {
@@ -21,17 +20,35 @@ class SearchGithubIdDaoTest {
2120 @Before
2221 fun createDb () {
2322 val context = InstrumentationRegistry .getInstrumentation().targetContext
23+ assertEquals(" com.seok.gfd" , context.packageName)
24+
25+ db = Room .inMemoryDatabaseBuilder(
26+ context,
27+ AppDatabase ::class .java
28+ ).build()
2429 }
2530
2631 @After
27- @Throws( IOException :: class )
28- fun closeDb (){
32+ fun closeDb () = runBlocking {
33+ db.searchGithubIdDao().deleteAll()
2934 db.close()
3035 }
3136
3237 @Test
33- @Throws(Exception ::class )
34- fun write (){
38+ fun iWantToKnowTheDatabaseIsFind () = runBlocking{
39+ val searchGithubId = SearchGithubId (gid = 0 , gidName = " github" )
40+
41+ db.searchGithubIdDao().insert(searchGithubId)
42+ var entity = db.searchGithubIdDao().selectAll(" g" )[0 ]
43+ assertHabitEquals(searchGithubId, entity)
44+
45+ db.searchGithubIdDao().delete(entity)
46+ assertEquals(0 , db.searchGithubIdDao().selectAll(" g" ).size)
47+ }
48+
49+ private fun assertHabitEquals (expected : SearchGithubId , actual : SearchGithubId ) {
50+ // id 는 자동생성되므로, 검증을 위해서 id의 동일성은 무시하자.
51+ assertEquals(expected.copy(gid = 0 ), actual.copy(gid = 0 ))
3552 }
3653
3754}
0 commit comments