package Ġdatabase . databinding Ċ Ċ import Ġdatabase . ex posed . Database Test Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġorg . jetbrains . ex posed . dao . id . Int Id Table Ċ import Ġorg . jetbrains . ex posed . sql . Table Ċ import Ġorg . jetbrains . ex posed . sql . insert Ċ import Ġorg . jetbrains . ex posed . sql . selectAll Ċ import Ġorg . jetbrains . ex posed . sql . transactions . transaction Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠBind To Test Ġ: ĠDatabase Test () Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun Ġsetup Ex posed () Ġ{ ĊĠĠĠĠĠĠĠ Ġtables ( db _ users , Ġdb _ users _ aut op k ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ bind () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb _ users _ Insert () ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb _ users . id Ġbind To ĠUser :: id , Ġdb _ users . name Ġbind To ĠUser :: name , Ġdb _ users . counter Ġbind To ĠUser :: counter ĊĠĠĠĠĠĠĠ Ġ). to Mapper Ġ{ ĠUser () Ġ} ĊĊĠĠĠĠĠĠĠ Ġdb _ users _ assert s ( target ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ bind _ all Properties () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb _ users _ Insert () ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġexposed Mapper Ġ{ ĠUser () Ġ}. bind To ( db _ users ) ĊĠĠĠĠĠĠĠ Ġdb _ users _ assert s ( target ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġobject Ġdb _ users _ aut op k Ġ: ĠInt Id Table () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġvarchar (" name ", Ġ 5 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcounter Ġ= Ġinteger (" counter ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ bind _ auto PrimaryKey () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfoo Id Ġ= Ġdb _ users _ aut op k _ Insert (" foo ", Ġ 4 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġbar Id Ġ= Ġdb _ users _ aut op k _ Insert (" bar ", Ġ 4 3 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb _ users _ aut op k . id Ġbind To ĠUser :: id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb _ users _ aut op k . name Ġbind To ĠUser :: name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb _ users _ aut op k . counter Ġbind To ĠUser :: counter ĊĠĠĠĠĠĠĠ Ġ). to Mapper Ġ{ ĠUser () Ġ} ĊĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusers Ġ= Ġdb _ users _ aut op k . selectAll (). map Ġ{ Ġtarget . map ( it ) Ġ}. sorted By Ġ{ Ġit . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( User ( foo Id , Ġ" foo ", Ġ 4 2 ), ĠUser ( bar Id , Ġ" bar ", Ġ 4 3 )), Ġusers ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ bind _ auto PrimaryKey _ all Properties () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfoo Id Ġ= Ġdb _ users _ aut op k _ Insert (" foo ", Ġ 4 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġbar Id Ġ= Ġdb _ users _ aut op k _ Insert (" bar ", Ġ 4 3 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġexposed Mapper Ġ{ ĠUser () Ġ}. bind To ( db _ users _ aut op k ) ĊĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusers Ġ= Ġdb _ users _ aut op k . selectAll (). map Ġ{ Ġtarget . map ( it ) Ġ}. sorted By Ġ{ Ġit . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( User ( foo Id , Ġ" foo ", Ġ 4 2 ), ĠUser ( bar Id , Ġ" bar ", Ġ 4 3 )), Ġusers ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġobject Ġdb _ users Ġ: ĠTable () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġinteger (" id ") ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġvarchar (" name ", Ġ 5 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcounter Ġ= Ġinteger (" counter ") ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġprimary Key Ġ= ĠPrimary Key ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠUser ( ĊĠĠĠĠĠĠĠ Ġvar Ġid : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġname : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġvar Ġcounter : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġdb _ users _ Insert ( i : ĠInt , Ġs : ĠString , Ġi 1 : ĠInt ) Ġ= Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠ Ġdb _ users . insert Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ id ] Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ counter ] Ġ= Ġi 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġdb _ users _ aut op k _ Insert ( s : ĠString , Ġi : ĠInt ) Ġ= Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠ Ġ( db _ users _ aut op k . insert Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit [ counter ] Ġ= Ġi ĊĠĠĠĠĠĠĠ Ġ} Ġget Ġ( db _ users _ aut op k . id )). value ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġdb _ users _ assert s ( target : ĠColumns Mapper < User >) Ġ{ ĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusers Ġ= Ġdb _ users . selectAll (). map Ġ{ Ġtarget . map ( it ) Ġ}. sorted By Ġ{ Ġit . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( listOf ( User ( 1 , Ġ" foo ", Ġ 4 2 ), ĠUser ( 2 , Ġ" bar ", Ġ 4 3 )), Ġusers ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdb _ users _ Insert () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb _ users _ Insert ( 1 , Ġ" foo ", Ġ 4 2 ) ĊĠĠĠĠĠĠĠ Ġdb _ users _ Insert ( 2 , Ġ" bar ", Ġ 4 3 ) ĊĠĠĠ Ġ} Ċ } Ċ