package Ġpl . to uk . kr ush . base Ċ Ċ import Ġorg . fly way db . core . Fly way Ċ import Ġorg . jetbrains . ex posed . sql . Database Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . postgresql . ds . PG Simple DataSource Ċ import Ġorg . test containers . containers . PostgreSQL Container Ċ import Ġorg . test containers . junit . jupiter . Test containers Ċ import Ġorg . test containers . utility . Docker Image Name Ċ import Ġjavax . sql . DataSource Ċ Ċ class ĠPostgres Container ( docker Image Name : ĠDocker Image Name ) Ġ: ĠPostgreSQL Container < Postgres Container >( docker Image Name ) Ċ Ċ @ Test containers Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ abstract Ġclass ĠBase Database Test Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpostgresql Container Ġ= ĠPostgres Container ( Docker Image Name . parse (" postgres : 1 2 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Database Name (" kr ush ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Username (" kr ush ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Password (" kr ush ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Re use ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠdataSource : ĠDataSource ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun Ġconnect () Ġ{ ĊĠĠĠĠĠĠĠ Ġpostgresql Container . start () ĊĊĠĠĠĠĠĠĠ ĠdataSource Ġ= ĠPG Simple DataSource (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set URL ( postgresql Container . jdbc Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . user Ġ= Ġpostgresql Container . username ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . password Ġ= Ġpostgresql Container . password ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠDatabase . connect ( dataSource ) ĊĠĠĠĠĠĠĠ Ġmigrate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmigrate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfly way Ġ= ĠFly way . configure (). dataSource ( dataSource ). load () ĊĠĠĠĠĠĠĠ Ġfly way . migrate () ĊĠĠĠ Ġ} Ċ Ċ } Ċ