package Ġno . nav . hel se . sp le is Ċ Ċ import Ġcom . zaxxer . hikari . HikariConfig Ċ import Ġcom . zaxxer . hikari . Hikari DataSource Ċ import Ġk ot li query . query Of Ċ import Ġk ot li query . session Of Ċ import Ġno . nav . hel se . sp le is . dao . H en del se Dao Ċ import Ġorg . fly way db . core . Fly way Ċ import Ġorg . junit . jupiter . api .* Ċ import Ġorg . junit . jupiter . api . Test Instance . Lifecycle Ċ import Ġorg . test containers . containers . PostgreSQL Container Ċ import Ġjava . util .* Ċ import Ġjavax . sql . DataSource Ċ Ċ @ Test Instance ( Lifecycle . PER _ CLASS ) Ċ class ĠHen del se Dao Test Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpostgres Ġ= ĠPostgreSQL Container < Nothing >(" postgres : 1 4 "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Re use ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Label (" app - nav n ", Ġ" sp le is - api ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠUN G _ PERSON _ FN R Ġ= Ġ" 1 2 0 2 9 2 4 0 0 4 5 " ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠdataSource : ĠDataSource ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfly way : ĠFly way ĊĠĠĠ Ġprivate Ġval Ġme ld ings Refer an se Ġ= ĠUUID . randomUUID () ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġinternal Ġfun Ġ` start Ġembedded Ġenvironment `() Ġ{ ĊĊĠĠĠĠĠĠĠ ĠdataSource Ġ= ĠH ikari DataSource ( HikariConfig (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjdbc Url Ġ= Ġpostgres . jdbc Url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġpostgres . username ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġpostgres . password ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum PoolSize Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Idle Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialization Fail Timeout Ġ= Ġ 5 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġidle Timeout Ġ= Ġ 1 0 0 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Timeout Ġ= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Lifetime Ġ= Ġ 3 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfly way Ġ= ĠFly way ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. configure () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. dataSource ( dataSource ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġinternal Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġfly way . clean () ĊĠĠĠĠĠĠĠ Ġfly way . migrate () ĊĠĠĠĠĠĠĠ ĠdataSource . lag re H en del se ( meld ings Refer an se ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠDataSource . lag re H en del se ( ĊĠĠĠĠĠĠĠ Ġme ld ings Refer an se : ĠUUID , ĊĠĠĠĠĠĠĠ Ġme ld ing stype : ĠHen del se Dao . Mel ding stype Ġ= ĠHen del se Dao . Mel ding stype . IN N TE K TS ME LD ING , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString Ġ= ĠUN G _ PERSON _ FN R , ĊĠĠĠĠĠĠĠ Ġdata : ĠString Ġ= Ġ"{} " ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsession Of ( this ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . run ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" INSERT ĠINTO Ġme ld ing Ġ( fn r , Ġme ld ing _ id , Ġme ld ing _ type , Ġdata ) ĠVALUES Ġ( ?, Ġ?, Ġ?, Ġ( to _ json (? :: json ))) ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme ld ings Refer an se . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme ld ing stype . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). as Execute ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` h ent Alle H en del ser Ġsql Ġer Ġvalid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdao Ġ= ĠHen del se Dao ( dataSource ) ĊĠĠĠĠĠĠĠ Ġval Ġevents Ġ= Ġdao . h ent Alle H en del ser ( UNG _ PERSON _ FN R . to Long ()) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 , Ġevents . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` h ent H en del ser Ġsql Ġer Ġvalid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdao Ġ= ĠHen del se Dao ( dataSource ) ĊĠĠĠĠĠĠĠ Ġval Ġing en Events Ġ= Ġdao . h ent H en del ser ( set Of ( meld ings Refer an se )) ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( 1 , Ġing en Events . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` h ent H en del se Ġsql Ġer Ġvalid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdao Ġ= ĠHen del se Dao ( dataSource ) ĊĠĠĠĠĠĠĠ Ġval Ġevent Ġ= Ġdao . h ent H en del se ( meld ings Refer an se ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertNotNull ( event ) ĊĠĠĠ Ġ} Ċ } Ċ