package Ġintegration . jdbc Ċ Ċ import Ġintegration . Person Ċ import Ġintegration . address Ċ import Ġintegration . employee Ċ import Ġintegration . identity Strategy Ċ import Ġintegration . person Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . kom apper . core . dsl . Meta Ċ import Ġorg . kom apper . core . dsl . Query Dsl Ċ import Ġorg . kom apper . core . dsl . operator . concat Ċ import Ġorg . kom apper . core . dsl . operator . plus Ċ import Ġorg . kom apper . core . dsl . query . dry Run Ċ import Ġorg . kom apper . core . dsl . query . first Ċ import Ġorg . kom apper . jdbc . Jdbc Database Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ import Ġkotlin . test . assertNot Equals Ċ Ċ @ Extend With ( Env :: class ) Ċ class ĠUpdate Set Test ( private Ġval Ġdb : ĠJdbc Database ) Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠMeta . address ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( a ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . street Ġeq Ġ" STRE ET Ġ 1 6 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcount ) ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . from ( a ). where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (" STRE ET Ġ 1 6 ", Ġaddress . street ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset If NotNull () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠMeta . address ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( a ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . street Ġeq If NotNull Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . version Ġeq Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcount ) ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . from ( a ). where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (" STRE ET Ġ 1 ", Ġaddress . street ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġaddress . version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġarithmetic _ add () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠMeta . address ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( a ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . version Ġeq Ġ( a . version Ġ+ Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcount ) ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . from ( a ). where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 1 , Ġaddress . version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġstring _ concat () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠMeta . address ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( a ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . street Ġeq Ġ( concat ( concat ("[ ", Ġa . street ), Ġ"] ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcount ) ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . from ( a ). where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ STRE ET Ġ 1 ]", Ġaddress . street ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġallow Empty Where Clause _ default () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠMeta . employee ĊĠĠĠĠĠĠĠ Ġval Ġex Ġ= Ġassert Fails With < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UNUSED _ VARIABLE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( e ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . employee Name Ġeq Ġ" ABC " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (" Empty Ġwhere Ġclause Ġis Ġnot Ġallowed .", Ġex . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġallow Empty Where Clause _ default _ empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠMeta . employee ĊĠĠĠĠĠĠĠ Ġval Ġex Ġ= Ġassert Fails With < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UNUSED _ VARIABLE ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( e ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . employee Name Ġeq Ġ" ABC " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals (" Empty Ġwhere Ġclause Ġis Ġnot Ġallowed .", Ġex . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġallow Empty Where Clause _ true () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠMeta . employee ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( e ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . employee Name Ġeq Ġ" ABC " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. options Ġ{ Ġit . copy ( allow Empty Where Clause Ġ= Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 4 , Ġcount ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġassign Timestamp _ auto () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠMeta . person ĊĠĠĠĠĠĠĠ Ġval Ġperson 1 Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . insert ( p ). single ( Person ( 1 , Ġ" abc ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠThread . sleep ( 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( p ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . name Ġeq Ġ" ABC " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . person Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġperson 2 Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . from ( p ). where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . person Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcount ) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( person 1 . updatedAt , Ġperson 2 . updatedAt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġassign Timestamp _ manual () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠMeta . person ĊĠĠĠĠĠĠĠ Ġval Ġperson 1 Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . insert ( p ). single ( Person ( 1 , Ġ" abc ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠThread . sleep ( 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( p ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . name Ġeq Ġ" ABC " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . updatedAt Ġeq Ġperson 1 . updatedAt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . person Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġperson 2 Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . from ( p ). where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . person Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcount ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( person 1 . updatedAt , Ġperson 2 . updatedAt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġincrement Version _ auto () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠMeta . address ĊĠĠĠĠĠĠĠ Ġval Ġaddress 1 Ġ= Ġdb . run Query Ġ{ ĠQuery Dsl . from ( a ). where Ġ{ Ġa . address Id Ġeq Ġ 1 Ġ}. first () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġaddress 1 . version ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( a ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . street Ġeq Ġ" STRE ET Ġ 1 6 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcount ) ĊĊĠĠĠĠĠĠĠ Ġval Ġaddress 2 Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . from ( a ). where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġaddress 2 . version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġincrement Version _ disabled () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠMeta . address ĊĠĠĠĠĠĠĠ Ġval Ġaddress 1 Ġ= Ġdb . run Query Ġ{ ĠQuery Dsl . from ( a ). where Ġ{ Ġa . address Id Ġeq Ġ 1 Ġ}. first () Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġaddress 1 . version ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . update ( a ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . street Ġeq Ġ" STRE ET Ġ 1 6 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . version Ġeq Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġcount ) ĊĊĠĠĠĠĠĠĠ Ġval Ġaddress 2 Ġ= Ġdb . run Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQuery Dsl . from ( a ). where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġaddress 2 . version ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdry Run _ timestamp () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠMeta . person ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠQuery Dsl . update ( p ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . name Ġeq Ġ" test " ĊĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . person Id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġquery . dry Run () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" update ĠPER SON Ġas Ġt 0 _ Ġset ĠNAME Ġ= Ġ?, ĠUP D ATED _ AT Ġ= Ġ? Ġwhere Ġt 0 _. PERSON _ ID Ġ= Ġ? " ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġresult . sql ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdry Run _ version () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠMeta . address ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠQuery Dsl . update ( a ). set Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa . street Ġeq Ġ" STRE ET Ġ 1 6 " ĊĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa . address Id Ġeq Ġ 1 6 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġquery . dry Run () ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" update ĠADDRESS Ġas Ġt 0 _ Ġset ĠST RE ET Ġ= Ġ?, ĠVERSION Ġ= ĠVERSION Ġ+ Ġ 1 Ġwhere Ġt 0 _. ADDRESS _ ID Ġ= Ġ? " ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġresult . sql ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdry Run _ empty Set Clause () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠMeta . identity Strategy ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠQuery Dsl . update ( i ). set Ġ{ ĊĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi . id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġquery . dry Run () ĊĠĠĠĠĠĠĠ Ġprintln ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty Set Clause () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠMeta . identity Strategy ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠQuery Dsl . update ( i ). set Ġ{ ĊĠĠĠĠĠĠĠ Ġ}. where Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi . id Ġeq Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġdb . run Query Ġ{ Ġquery Ġ} ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġcount ) ĊĠĠĠ Ġ} Ċ } Ċ