package Ġbr . com . bre iv . payment . gate ways čĊč Ċ import Ġbr . com . bre iv . buyer . Buyer č Ċ import Ġbr . com . bre iv . client . Client č Ċ import Ġbr . com . bre iv . credit card . CreditCard č Ċ import Ġbr . com . bre iv . misc . config . Persistence TestCase č Ċ import Ġbr . com . bre iv . payment . Payment . CreditCard Payment č Ċ import Ġbr . com . bre iv . payment . Payment StatusType . RE JECT ED č Ċ import Ġio . github . ben as . random beans . api . Enhanced Random . random č Ċ import Ġorg . assertj . core . api . Assertions . assertThat č Ċ import Ġorg . junit . jupiter . api . Test č Ċ import Ġorg . springframework . beans . factory . annotation . Autowired č Ċ import Ġjava . time . LocalDate čĊč Ċ class ĠCredit Card Payment Repository Impl Test Ġ: ĠPersistence TestCase () Ġ{ čĊčĊĠĠĠ Ġ@ Autowired čĊĠĠĠ Ġlateinit Ġvar Ġcredit Card Payment Repository Impl : ĠCredit Card Payment Repository Impl čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` should Ġsave Ġcredit Ġcard Ġpayment `() Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġpayment Ġ= Ġrandom ( CreditCard Payment :: class . java ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġpayment . copy () čĊčĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcredit Card Payment Repository Impl . save ( payment ) čĊčĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` should Ġfind Ġcredit Ġcard Ġpayment `() Ġ{ čĊĠĠĠĠĠĠĠ ĠsetUp Persistence (" sql / payment / CreditCard Payment . sql ") čĊčĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 1 L čĊčĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠCredit Card Payment ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= ĠRE JECT ED , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġ 1 2 3 . 4 5 , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Ġ= ĠClient ( id Ġ= Ġ 5 1 L ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuy er Ġ= ĠBu yer ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Ad ri ano ĠRi be iro ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= Ġ" amo @ rock . com ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc pf Ġ= Ġ" 1 2 3 4 5 6 7 8 9 0 1 " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredit Card Ġ= ĠCredit Card ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder Name Ġ= Ġ" D ri ĠD ri ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ= Ġ" 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpiration Date Ġ= ĠLocalDate . of ( 2 0 2 0 , Ġ 1 2 , Ġ 1 ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcv v Ġ= Ġ" 6 6 6 " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcredit Card Payment Repository Impl . findBy ( id ) čĊčĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isEqualTo ( expected ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` should Ġnot Ġfind Ġcredit Ġcard Ġpayment `() Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 9 9 L čĊčĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcredit Card Payment Repository Impl . findBy ( id ) čĊčĊĠĠĠĠĠĠĠ ĠassertThat ( result ). isNull () čĊĠĠĠ Ġ} č Ċ }