package Ġcom . si im k inks . sql item agic . query Ċ Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . si im k inks . sql item agic . Author Table . AUTHOR Ċ import Ġcom . si im k inks . sql item agic . Default Connection Test Ċ import Ġcom . si im k inks . sql item agic . Mag azine Table . MAG AZ INE Ċ import Ġcom . si im k inks . sql item agic . Select Ċ import Ġcom . si im k inks . sql item agic . Select . count Ċ import Ġcom . si im k inks . sql item agic . model .* Ċ import Ġcom . si im k inks . sql item agic . model . TestUtil . create Vals Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠCount Test Ġ: ĠDefault Connection Test Ġ{ ĊĠ Ġclass ĠSuccessful Operation < T >( ĊĠĠĠĠĠ Ġfor Model : ĠTest Model < T >, ĊĠĠĠĠĠ Ġoperation : ĠDual Operation < Int , ĠT , ĠLong > Ġ= ĠCount Dual Operation () ĊĠ Ġ) Ġ: ĠDual Operation TestCase < Int , ĠT , ĠLong >( ĊĠĠĠĠĠ Ġ" Count ing Ġrows Ġworks ", ĊĠĠĠĠĠ Ġmodel Ġ= Ġfor Model , ĊĠĠĠĠĠ ĠsetUp Ġ= Ġ{ Ġmodel Ġ-> ĊĠĠĠĠĠĠĠ Ġcreate Vals Ġ{ Ġinsert New Random ( model ) Ġ}. size ĊĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠ Ġoperation Ġ= Ġoperation , ĊĠĠĠĠĠ Ġassert Results Ġ= Ġ{ Ġ_, Ġinsert Vals Count , Ġoperation Result Ġ-> ĊĠĠĠĠĠĠĠ ĠassertThat ( insert Vals Count ). isEqualTo ( operation Result ) ĊĠĠĠĠĠ Ġ}) ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġsuccessful Count () Ġ{ ĊĠĠĠ ĠassertThat Dual Ġ{ ĊĠĠĠĠĠ ĠtestCase Ġ{ ĠSuccessful Operation ( it ) Ġ} ĊĠĠĠĠĠ Ġis Successful For (* ALL _ AUTO _ ID _ MODE LS ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġsuccessful Count Of Column Query () Ġ{ ĊĠĠĠ ĠassertThat Dual Ġ{ ĊĠĠĠĠĠ ĠtestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠSuccessful Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Model Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= ĠColumn Query Count Dual Operation ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis Successful For (* ALL _ AUTO _ ID _ MODE LS ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġsuccessful Count As Column () Ġ{ ĊĠĠĠ ĠassertThat Dual Ġ{ ĊĠĠĠĠĠ ĠtestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠSuccessful Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Model Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= ĠCount As Column Dual Operation ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis Successful For (* ALL _ AUTO _ ID _ MODE LS ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġclass ĠEmpty Table Operation < T >( ĊĠĠĠĠĠ Ġfor Model : ĠTest Model < T >, ĊĠĠĠĠĠ Ġoperation : ĠDual Operation < Int , ĠT , ĠLong > Ġ= ĠCount Dual Operation () ĊĠ Ġ) Ġ: ĠDual Operation TestCase < Int , ĠT , ĠLong >( ĊĠĠĠĠĠ Ġ" Count ing Ġempty Ġtable Ġworks ", ĊĠĠĠĠĠ Ġmodel Ġ= Ġfor Model , ĊĠĠĠĠĠ ĠsetUp Ġ= Ġ{ Ġ 0 Ġ}, ĊĠĠĠĠĠ Ġoperation Ġ= Ġoperation , ĊĠĠĠĠĠ Ġassert Results Ġ= Ġ{ Ġ_, Ġ_, Ġoperation Result Ġ-> ĊĠĠĠĠĠĠĠ ĠassertThat ( operation Result ). isEqualTo ( 0 ) ĊĠĠĠĠĠ Ġ}) ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġsuccessful Empty Count () Ġ{ ĊĠĠĠ ĠassertThat Dual Ġ{ ĊĠĠĠĠĠ ĠtestCase Ġ{ ĠEmpty Table Operation ( it ) Ġ} ĊĠĠĠĠĠ Ġis Successful For (* ALL _ AUTO _ ID _ MODE LS ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġsuccessful Empty Count Of Column Query () Ġ{ ĊĠĠĠ ĠassertThat Dual Ġ{ ĊĠĠĠĠĠ ĠtestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠEmpty Table Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Model Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= ĠColumn Query Count Dual Operation ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis Successful For (* ALL _ AUTO _ ID _ MODE LS ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġsuccessful Empty Count As Column () Ġ{ ĊĠĠĠ ĠassertThat Dual Ġ{ ĊĠĠĠĠĠ ĠtestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠEmpty Table Operation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Model Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= ĠCount As Column Dual Operation ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis Successful For (* ALL _ AUTO _ ID _ MODE LS ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġclass ĠSuccessful Operation With Where Clause < T >( ĊĠĠĠĠĠ Ġfor Model : ĠTest Model < T >, ĊĠĠĠĠĠ Ġoperation : ĠDual Operation < Long , ĠT , ĠLong > Ġ= ĠCount Dual Operation With Where Clause () ĊĠ Ġ) Ġ: ĠDual Operation TestCase < Long , ĠT , ĠLong >( ĊĠĠĠĠĠ Ġ" Count ing Ġrows Ġwith Ġwhere Ġclause Ġworks ", ĊĠĠĠĠĠ Ġmodel Ġ= Ġfor Model , ĊĠĠĠĠĠ ĠsetUp Ġ= Ġ{ Ġmodel Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= Ġcreate Vals Ġ{ Ġinsert New Random ( model ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġ( last Val , Ġ_) Ġ= Ġvalues . last () ĊĠĠĠĠĠĠĠ Ġmodel . getId ( last Val ) !! ĊĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠ Ġoperation Ġ= Ġoperation , ĊĠĠĠĠĠ Ġassert Results Ġ= Ġ{ Ġ_, Ġ_, Ġoperation Result Ġ-> ĊĠĠĠĠĠĠĠ ĠassertThat ( operation Result ). isEqualTo ( 1 ) ĊĠĠĠĠĠ Ġ}) ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġsuccessful Count With Where Clause () Ġ{ ĊĠĠĠ ĠassertThat Dual Ġ{ ĊĠĠĠĠĠ ĠtestCase Ġ{ ĠSuccessful Operation With Where Clause ( it ) Ġ} ĊĠĠĠĠĠ Ġis Successful For ( ĊĠĠĠĠĠĠĠĠĠ Ġsimple Mutable Auto Id Test Model , ĊĠĠĠĠĠĠĠĠĠ Ġcomplex Mutable Auto Id Test Model ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġsuccessful Count As Column With Where Clause () Ġ{ ĊĠĠĠ ĠassertThat Dual Ġ{ ĊĠĠĠĠĠ ĠtestCase Ġ{ ĊĠĠĠĠĠĠĠ ĠSuccessful Operation With Where Clause ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Model Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= ĠCount As Column Dual Operation With Where Clause ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis Successful For ( ĊĠĠĠĠĠĠĠĠĠ Ġsimple Mutable Auto Id Test Model , ĊĠĠĠĠĠĠĠĠĠ Ġcomplex Mutable Auto Id Test Model ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġquery Complex Child Column Count () Ġ= ĊĠĠĠĠĠ ĠQuery Model TestCase ( ĊĠĠĠĠĠĠĠĠĠ Ġ" Query ing Ġcomplex Ġchild Ġcolumn Ġcount ", ĊĠĠĠĠĠĠĠĠĠ Ġtest Model Ġ= Ġcomplex Mutable Auto Id Test Model , ĊĠĠĠĠĠĠĠĠĠ ĠsetUp Ġ= Ġ{ Ġmodel Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Vals Ġ{ Ġinsert New Random ( model ) Ġ}. size . to Long () ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= Ġobject Ġ: ĠQuery Operation < Long , ĠLong > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute Test ( test Val : ĠLong ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. column ( AUTHOR . NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( MAG AZ INE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġobserve Test ( test Val : ĠLong ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. column ( AUTHOR . NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( MAG AZ INE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. run Query Once () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. blocking Get () ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġassert Results Ġ= Ġresult Is EqualTo Expected ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. test () ĊĊĠ Ġclass ĠCount Dual Operation < T > Ġ: ĠDual Operation < Int , ĠT , ĠLong > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġexecute Test ( model : ĠTest Model < T >, Ġtest Val : ĠInt ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠ Ġ. execute () ĊĊĠĠĠ Ġoverride Ġfun Ġobserve Test ( model : ĠTest Model < T >, Ġtest Val : ĠInt ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠ Ġ. observe () ĊĠĠĠĠĠĠĠ Ġ. run Query Once () ĊĠĠĠĠĠĠĠ Ġ. blocking Get () ĊĠ Ġ} ĊĊĠ Ġclass ĠColumn Query Count Dual Operation < T > Ġ: ĠDual Operation < Int , ĠT , ĠLong > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġexecute Test ( model : ĠTest Model < T >, Ġtest Val : ĠInt ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. column ( model . id Column ) ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠ Ġ. execute () ĊĊĠĠĠ Ġoverride Ġfun Ġobserve Test ( model : ĠTest Model < T >, Ġtest Val : ĠInt ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. column ( model . id Column ) ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠ Ġ. observe () ĊĠĠĠĠĠĠĠ Ġ. run Query Once () ĊĠĠĠĠĠĠĠ Ġ. blocking Get () ĊĠ Ġ} ĊĊĠ Ġclass ĠCount As Column Dual Operation < T > Ġ: ĠDual Operation < Int , ĠT , ĠLong > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġexecute Test ( model : ĠTest Model < T >, Ġtest Val : ĠInt ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. column ( count ()) ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. take First () ĊĠĠĠĠĠĠĠ Ġ. execute () !! ĊĊĠĠĠ Ġoverride Ġfun Ġobserve Test ( model : ĠTest Model < T >, Ġtest Val : ĠInt ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. column ( count ()) ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. take First () ĊĠĠĠĠĠĠĠ Ġ. observe () ĊĠĠĠĠĠĠĠ Ġ. run Query Once () ĊĠĠĠĠĠĠĠ Ġ. blocking Get () ĊĠ Ġ} ĊĊĠ Ġclass ĠCount Dual Operation With Where Clause < T > Ġ: ĠDual Operation < Long , ĠT , ĠLong > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġexecute Test ( model : ĠTest Model < T >, Ġtest Val : ĠLong ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. where ( model . id Column .` is `( test Val )) ĊĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠ Ġ. execute () ĊĊĠĠĠ Ġoverride Ġfun Ġobserve Test ( model : ĠTest Model < T >, Ġtest Val : ĠLong ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. where ( model . id Column .` is `( test Val )) ĊĠĠĠĠĠĠĠ Ġ. count () ĊĠĠĠĠĠĠĠ Ġ. observe () ĊĠĠĠĠĠĠĠ Ġ. run Query Once () ĊĠĠĠĠĠĠĠ Ġ. blocking Get () ĊĠ Ġ} ĊĊĠ Ġclass ĠCount As Column Dual Operation With Where Clause < T > Ġ: ĠDual Operation < Long , ĠT , ĠLong > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġexecute Test ( model : ĠTest Model < T >, Ġtest Val : ĠLong ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. column ( count ()) ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. where ( model . id Column .` is `( test Val )) ĊĠĠĠĠĠĠĠ Ġ. take First () ĊĠĠĠĠĠĠĠ Ġ. execute () !! ĊĊĠĠĠ Ġoverride Ġfun Ġobserve Test ( model : ĠTest Model < T >, Ġtest Val : ĠLong ): ĠLong Ġ= ĠSelect ĊĠĠĠĠĠĠĠ Ġ. column ( count ()) ĊĠĠĠĠĠĠĠ Ġ. from ( model . table ) ĊĠĠĠĠĠĠĠ Ġ. where ( model . id Column .` is `( test Val )) ĊĠĠĠĠĠĠĠ Ġ. take First () ĊĠĠĠĠĠĠĠ Ġ. observe () ĊĠĠĠĠĠĠĠ Ġ. run Query Once () ĊĠĠĠĠĠĠĠ Ġ. blocking Get () ĊĠ Ġ} Ċ }