package Ġpl . to uk . kr ush . one 2 one Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . jetbrains . ex posed . sql . Schema Utils Ċ import Ġorg . jetbrains . ex posed . sql . insert Ċ import Ġorg . jetbrains . ex posed . sql . select Ċ import Ġorg . jetbrains . ex posed . sql . selectAll Ċ import Ġorg . jetbrains . ex posed . sql . transactions . transaction Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġpl . to uk . kr ush . base . Base Database Test Ċ Ċ class ĠEmployee Test Ġ: ĠBase Database Test () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Handle One ToOne () Ġ{ ĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchema Utils . create ( Employee Info Table , ĠEmployee Table , ĠPark ing Spot Table ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemployee Ġ= ĠEmployee (). let Ġ{ Ġemployee Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠEmployee Table . insert Ġ{} [ Employee Table . id ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemployee . copy ( id Ġ= Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemployee Info Ġ= ĠEmployee Info Table . insert ( Employee Info ( login Ġ= Ġ" admin ", Ġemployee Ġ= Ġemployee )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// when ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemployees Ġ= Ġ( Employee Table Ġleft Join ĠEmployee Info Table ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. select Ġ{ ĠEmployee Info Table . login . regexp ("[ a - z ]{ 5 }") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Employee List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull Employee Ġ= Ġemployee . copy ( employee Info Ġ= Ġemployee Info ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// then ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employees ). contains Only ( full Employee ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Handle Multiple Level One ToOne () Ġ{ ĊĠĠĠĠĠĠĠ Ġtransaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchema Utils . create ( Employee Info Table , ĠEmployee Table , ĠPark ing Spot Table ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemployee Ġ= ĠEmployee (). let Ġ{ Ġemployee Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠEmployee Table . insert Ġ{} [ Employee Table . id ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemployee . copy ( id Ġ= Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemployee Info Ġ= ĠEmployee Info ( login Ġ= Ġ" admin ", Ġemployee Ġ= Ġemployee ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġemployee Info Ġ-> ĠEmployee Info Table . insert ( employee Info ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpar king Spot Ġ= ĠPark ing Spot ( code Ġ= Ġ" C 1 2 3 4 5 ", Ġemployee Info Ġ= Ġemployee Info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let ( Par king Spot Table :: insert ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// when ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemployees Ġ= Ġ( Employee Table Ġleft Join ĠEmployee Info Table Ġleft Join ĠPark ing Spot Table ). selectAll (). to Employee List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull Employee Ġ= Ġemployee . copy ( employee Info Ġ= Ġemployee Info . copy ( park ing Spot Ġ= Ġpar king Spot )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// then ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( employees ). contains Only ( full Employee ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ