package Ġbe . sch 3 lp . j 2 k . builder . kotlin Ċ Ċ import Ġorg . assertj . core . api . Abstract Object Assert Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . recursive . comparison . Recursive Comparison Configuration Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠCustomer Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` A ĠCustomer Ġcan Ġbe Ġcreated Ġin Ġan Ġeasily Ġreadable Ġway `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcustomer Id Ġ= ĠCustomer Id () ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠCustomer ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġcustomer Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġage Ġ= ĠAge ( 4 0 u ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġ" B ru ce ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġ" Way ne ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= ĠAddress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstreet Ġ= Ġ" V le erm uis stra at ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġ" D il be ek ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzip Ġ= ĠZip (" 1 7 0 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhouse Number Ġ= Ġ" 1 5 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( actual . id ). isEqualTo ( customer Id ) ĊĠĠĠĠĠĠĠ ĠassertThat ( actual . age ). isEqualTo ( Age ( 4 0 u )) ĊĠĠĠĠĠĠĠ ĠassertThat ( actual . name ). isEqualTo ( Name (" B ru ce ", Ġ" Way ne ")) ĊĠĠĠĠĠĠĠ ĠassertThat ( actual . address ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAddress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstreet Ġ= Ġ" V le erm uis stra at ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġ" D il be ek ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzip Ġ= ĠZip (" 1 7 0 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhouse Number Ġ= Ġ" 1 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbus Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` A ĠCustomer Ġcan Ġbe Ġcreated Ġusing Ġa ĠTest Builder `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠCustomer ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠCustomer Id (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġage Ġ= ĠAge ( 5 2 u ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġ" Ed ward ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġ" N igma ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Ġ= ĠAddress ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstreet Ġ= Ġ" M ant el stra at ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġ" K ru ish out em ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzip Ġ= ĠZip (" 9 7 7 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhouse Number Ġ= Ġ" 4 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( a Default Customer ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġ" Ed ward ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġ" N igma " ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Ignored Fields Of Types ( CustomerId :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( expected ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġ< S Ġ: ĠAbstract Object Assert < S , ĠA >, ĠA > ĠAbstract Object Assert < S , ĠA >. with Ignored Fields Of Types ( var arg Ġtypes : ĠClass <* >) Ġ= ĊĠĠĠ Ġusing Recursive Comparison ( ĊĠĠĠĠĠĠĠ ĠRecursive Comparison Configuration . builder (). with Ignored Fields Of Types (* types ). build () ĊĠĠĠ Ġ)