package Ġcom . example . android . observ ability . database . dao Ċ Ċ import Ġandroidx . room . Room Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . filters . Small Test Ċ import Ġcom . example . android . observ ability . database . App Database Ċ import Ġcom . example . android . observ ability . model . Github Model Ċ import Ġcom . example . android . observ ability . model . Github Owner Ċ import Ġorg . junit . After Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ @ Small Test Ċ class ĠGithub Dao Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdatabase : ĠApp Database ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdao : ĠGithub Dao ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠRoom . in Memory Database Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApplication Provider . getApplicationContext (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp Database :: class . java ĊĠĠĠĠĠĠĠ Ġ). allow MainThread Queries (). build () ĊĠĠĠĠĠĠĠ Ġdao Ġ= Ġdatabase . get Github Dao () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġteardown () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtesting _ insert _ github _ model _ should _ returns _ true () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgithub Model To Insert Ġ= ĠGithub Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ks Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstars Ġ= Ġ 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= ĠGithub Owner ( id Ġ= Ġ 1 L , Ġavatar Ġ= Ġ"", Ġusername Ġ= Ġ"") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdao . insert ( array ListOf ( github Model To Insert )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġdao . getAll () ĊĠĠĠĠĠĠĠ ĠassertThat ( results ). contains ( github Model To Insert ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtesting _ total _ by _ lang _ should _ returns _ true () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgithub Model To Insert 1 Ġ= ĠGithub Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ks Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġ" Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstars Ġ= Ġ 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= ĠGithub Owner ( id Ġ= Ġ 1 L , Ġavatar Ġ= Ġ"", Ġusername Ġ= Ġ"") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġgithub Model To Insert 2 Ġ= ĠGithub Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 2 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ks Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġ" Kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstars Ġ= Ġ 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= ĠGithub Owner ( id Ġ= Ġ 1 L , Ġavatar Ġ= Ġ"", Ġusername Ġ= Ġ"") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġgithub Model To Insert 3 Ġ= ĠGithub Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 3 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfullName Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ks Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Ġ= Ġ" Java ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstars Ġ= Ġ 0 L , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġowner Ġ= ĠGithub Owner ( id Ġ= Ġ 1 L , Ġavatar Ġ= Ġ"", Ġusername Ġ= Ġ"") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdao . insert ( array ListOf ( github Model To Insert 1 , Ġgithub Model To Insert 2 , Ġgithub Model To Insert 3 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdao . getTotal By Language (" Kotlin ") ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( 2 ) ĊĠĠĠ Ġ} ĊĊ Ċ }