package Ġid h . c 3 cloud . tis . pilot Ċ Ċ import Ġid h . c 3 cloud . tis . Patient Ċ import Ġid h . c 3 cloud . tis . Patient Repository Ċ import Ġkotlinx . coroutines . reactive . await Single Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . dao . Duplicate Key Exception Ċ import Ġorg . springframework . test . context . junit 4 . Spring Runner Ċ import Ġreactor . core . publisher . Mono Ċ import Ġreactor . util . function .* Ċ Ċ @ RunWith ( Spring Runner :: class ) Ċ @ SpringBootTest Ċ class ĠPatient Repository Test Ġ{ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġpatient Repository : ĠPatient Repository ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġpatient Repository . delete All (). block () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinsert () Ġ{ ĊĠĠĠĠĠĠĠ Ġpatient Repository . insert ( Patient (" p 1 ", Ġ" s 1 ")). block () ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġpatient Repository . count (). block ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" s 1 ", Ġpatient Repository . findById (" p 1 "). block ()?. c 3 cloud Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠDuplicate Key Exception :: class ) ĊĠĠĠ Ġfun Ġduplicate Study Id () Ġ{ ĊĠĠĠĠĠĠĠ Ġpatient Repository . insert ( Patient (" p 1 ", Ġ" s 1 ")). block () ĊĠĠĠĠĠĠĠ Ġpatient Repository . insert ( Patient (" p 2 ", Ġ" s 1 ")). block () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġvalidate P ait ent Ids () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġids Ġ= ĠlistOf (" A 0 0 0 1 ", Ġ" A 0 0 0 2 ") ĊĠĠĠĠĠĠĠ Ġval Ġinvalid Ids Ġ= ĠMono . zip ( Mono . just ( ids ), Ġpatient Repository . findAll ById ( ids ). map ( Patient :: id ). collect List ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ( quer ied , Ġfound ) Ġ-> Ġqueried Ġ- Ġfound Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . join ToString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. block () ĊĠĠĠĠĠĠĠ Ġprintln ( invalid Ids ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠNoSuch ElementException :: class ) ĊĠĠĠ Ġfun Ġpatient NotFound () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( patient Repository . findById (" A 0 0 0 2 "). await Single ()) ĊĠĠĠ Ġ} Ċ Ċ }