package Ġorg . learning . by . example . pet store . pet queries . testing Ċ Ċ import Ġorg . springframework . test . annotation . Dir ties Context Ċ import Ġorg . springframework . test . context . Dynamic Property Registry Ċ import Ġorg . springframework . test . context . Dynamic Property Source Ċ import Ġorg . test containers . containers . PostgreSQL Container Ċ import Ġorg . test containers . junit . jupiter . Container Ċ import Ġorg . test containers . junit . jupiter . Test containers Ċ Ċ @ Test containers Ċ @ Dir ties Context Ċ abstract Ġclass ĠDatabase Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Container ĊĠĠĠĠĠĠĠ Ġval Ġcontainer : ĠPostgreSQL Container < Nothing > Ġ= ĠPostgreSQL Container < Nothing >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Database Name (" pe ts ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Username (" pet user ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Password (" pe tp wd ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Re use ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Dynamic Property Source ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġsetup DB Properties ( registry : ĠDynamic Property Registry ) Ġ= Ġwith ( container ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry . add (" spring . r 2 dbc . url ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" r 2 dbc : postgresql :// $ host :$ first Mapped Port /$ database Name " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry . add (" spring . r 2 dbc . username ", Ġ:: getUsername ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry . add (" spring . r 2 dbc . password ", Ġ:: getPassword ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry . add (" db . initialize ") Ġ{ Ġ" true " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ