package Ġcom . github . leon ard oz . kan b app . data . dao Ċ Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . filters . Small Test Ċ import Ġcom . github . leon ard oz . kan b app . data . entity . Board Ċ import Ġcom . github . leon ard oz . kan b app . data . entity . Column Ċ import Ġcom . github . leon ard oz . kan b app . data . entity . ColumnType .* Ċ import Ġjunit . framework . TestCase . assertEquals Ċ import Ġjunit . framework . TestCase . assertNull Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . util .* Ċ Ċ @ Small Test Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ open Ġclass ĠColumns Dao Test Ġ: ĠBase Dao Test () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcolumns Dao : ĠColumns Dao ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġboard : ĠBoard ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġcreate Parent Board () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġboards Dao Ġ= Ġdatabase . boards Dao () ĊĠĠĠĠĠĠĠ Ġval Ġbid Ġ= Ġboards Dao . insert Board ( Board ( name Ġ= Ġ" Daily ĠTasks ")) ĊĠĠĠĠĠĠĠ Ġcolumns Dao Ġ= Ġdatabase . columns Dao () ĊĠĠĠĠĠĠĠ Ġboard Ġ= ĠgetValue ( boards Dao . get Board ( bid )) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Insert And _ Get Column () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" TODO ", Ġtype Ġ= ĠTODO _ COLUMN ) ĊĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġcolumns Dao . insert Column ( column ) ĊĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getColumn ( board . id , Ġid )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( column . title , Ġit . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( column . board Id , Ġit . board Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( column . type , Ġit . type ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . createdAt , Ġit . updatedAt ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Insert And _ Get Column ByType () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" TODO ", Ġtype Ġ= ĠTODO _ COLUMN ) ĊĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġcolumns Dao . insert Column ( column ) ĊĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getColumn ByType ( board . id , ĠTODO _ COLUMN )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( column . title , Ġit . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( column . board Id , Ġit . board Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( column . type , Ġit . type ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . createdAt , Ġit . updatedAt ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Update And _ Get Column () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" Do ing ", Ġorder Ġ= Ġ 2 , Ġtype Ġ= ĠWORK _ COLUMN ) ĊĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġcolumns Dao . insert Column ( column ) ĊĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getColumn ( board . id , Ġid )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title Ġ= Ġ" Do ing Ġit " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns Dao . update Column Title ( it . title , Ġit . updatedAt , Ġit . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getColumn ( board . id , Ġid )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Do ing Ġit ", Ġit . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns Dao . update Column Order ( it . order Ġ+ Ġ 1 , ĠDate (), Ġit . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getColumn ( board . id , Ġid )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( it . order , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Update And _ Get Columns () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn A Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" Do ing ", Ġorder Ġ= Ġ 2 , Ġtype Ġ= ĠWORK _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn B Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" Testing ", Ġorder Ġ= Ġ 3 , Ġtype Ġ= ĠWORK _ COLUMN ) ĊĊĠĠĠĠĠĠĠ Ġval Ġ( id A , Ġid B ) Ġ= Ġcolumns Dao . insert Columns ( column A , Ġcolumn B ) ĊĠĠĠĠĠĠĠ Ġcolumn A . id Ġ= Ġid A ĊĠĠĠĠĠĠĠ Ġcolumn B . id Ġ= Ġid B ĊĊĠĠĠĠĠĠĠ Ġcolumn B . order Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġcolumn A . order Ġ= Ġ 3 ĊĊĠĠĠĠĠĠĠ Ġcolumn A . updatedAt Ġ= ĠDate () ĊĠĠĠĠĠĠĠ Ġcolumn B . updatedAt Ġ= ĠDate () ĊĊĠĠĠĠĠĠĠ Ġcolumns Dao . update Column Orders ( column A , Ġcolumn B ) ĊĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getAll Columns ( board . id )). let Ġ{ Ġ( a , Ġb ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Testing ", Ġa . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġa . order ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Do ing ", Ġb . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġb . order ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Insert And _ Delete Column () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" TODO ", Ġtype Ġ= ĠTODO _ COLUMN ) ĊĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġcolumns Dao . insert Column ( column ) ĊĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getColumn ( board . id , Ġid )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns Dao . delete Column ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdeleted Column Ġ= ĠgetValue ( columns Dao . getColumn ( board . id , Ġid )) ĊĠĠĠĠĠĠĠ ĠassertNull ( deleted Column ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Get _ All Columns _ Of Board () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtodo Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" TODO ", Ġorder Ġ= Ġ 1 , Ġtype Ġ= ĠTODO _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġval Ġworking Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" DE VELO P MENT ", Ġorder Ġ= Ġ 2 , Ġtype Ġ= ĠWORK _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġval Ġdone Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" CON CL UDE D ", Ġorder Ġ= Ġ 3 , Ġtype Ġ= ĠDONE _ COLUMN ) ĊĊĠĠĠĠĠĠĠ Ġval Ġids Ġ= Ġcolumns Dao . insert Columns ( todo , Ġworking , Ġdone ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġids . size ) ĊĊĠĠĠĠĠĠĠ Ġval Ġ(_ todo , Ġ_ work , Ġ_ done ) Ġ= ĠgetValue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumns Dao . getAll Columns ( board Id Ġ= Ġboard . id ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" TODO ", Ġ_ todo . title ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" DE VELO P MENT ", Ġ_ work . title ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" CON CL UDE D ", Ġ_ done . title ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Update _ Next Columns () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn A Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" TODO ", Ġorder Ġ= Ġ 1 , Ġtype Ġ= ĠTODO _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn B Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" WORK ", Ġorder Ġ= Ġ 2 , Ġtype Ġ= ĠWORK _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn C Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" TEST ", Ġorder Ġ= Ġ 3 , Ġtype Ġ= ĠWORK _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn D Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" DONE ", Ġorder Ġ= Ġ 4 , Ġtype Ġ= ĠDONE _ COLUMN ) ĊĊĠĠĠĠĠĠĠ Ġcolumns Dao . insert Columns ( column A , Ġcolumn C , Ġcolumn D ) ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġcolumns Dao . insert Column ( column B ) ĊĠĠĠĠĠĠĠ Ġcolumn B . id Ġ= Ġid ĊĊĠĠĠĠĠĠĠ Ġcolumns Dao . delete AndUpdate Orders ( column B ) ĊĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getAll Columns ( board . id )). let Ġ{ Ġcolumns Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġcolumns . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcolumns [ 0 ]. order ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġcolumns [ 1 ]. order ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġcolumns [ 2 ]. order ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Insert And _ Update Last _ Column () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn A Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" TODO ", Ġorder Ġ= Ġ 1 , Ġtype Ġ= ĠTODO _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn B Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" WORK ", Ġorder Ġ= Ġ 2 , Ġtype Ġ= ĠWORK _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn C Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" DONE ", Ġorder Ġ= Ġ 3 , Ġtype Ġ= ĠDONE _ COLUMN ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Column Ġ= ĠColumn ( board Id Ġ= Ġboard . id , Ġtitle Ġ= Ġ" TEST ", Ġtype Ġ= ĠWORK _ COLUMN ) ĊĠĠĠĠĠĠĠ Ġcolumns Dao . insert Columns ( column A , Ġcolumn B , Ġcolumn C ) ĊĊĠĠĠĠĠĠĠ Ġcolumns Dao . insert Column Updating Order ( new Column ) ĊĠĠĠĠĠĠĠ ĠgetValue ( columns Dao . getAll Columns ( board . id )). let Ġ{ Ġcolumns Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġcolumns . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcolumns [ 0 ]. order ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġcolumns [ 1 ]. order ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġcolumns [ 2 ]. order ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġcolumns [ 3 ]. order ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }