package Ġcom . github . vh rom ada . catalog . utils Ċ Ċ import Ġcom . github . vh rom ada . catalog . entity . Change Che at Data Ċ import Ġcom . github . vh rom ada . catalog . entity . Che at Data Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Soft Assertions . assert Soft ly Ċ import Ġjavax . persistence . EntityManager Ċ Ċ /** Ċ Ġ* ĠUpdates Ġche at 's Ġdata Ġfields . Ċ Ġ* Ċ Ġ* Ġ@ return Ġupdated Ġche at 's Ġdata Ċ Ġ*/ Ċ fun Ġcom . github . vh rom ada . catalog . domain . Che at Data . updated (): Ġcom . github . vh rom ada . catalog . domain . Che at Data Ġ{ ĊĠĠĠ Ġaction Ġ= Ġ" action " ĊĠĠĠ Ġdescription Ġ= Ġ" description " ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠUpdates Ġche at 's Ġdata Ġfields . Ċ Ġ* Ċ Ġ* Ġ@ return Ġupdated Ġche at 's Ġdata Ċ Ġ*/ Ċ fun ĠChe at Data . updated (): ĠChe at Data Ġ{ ĊĠĠĠ Ġreturn Ġcopy ( ĊĠĠĠĠĠĠĠ Ġaction Ġ= Ġ" action ", ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" description " ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġclass Ġrepresents Ġutility Ġclass Ġfor Ġche at 's Ġdata . Ċ Ġ* Ċ Ġ* Ġ@ author ĠV lad im ir ĠH rom ada Ċ Ġ*/ Ċ object ĠChe at Data Utils Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCount Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠCHE AT _ DATA _ COUNT Ġ= Ġ 6 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCount Ġof Ġche at 's Ġdata Ġin Ġche at ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconst Ġval ĠCHE AT _ DATA _ CHE AT _ COUNT Ġ= Ġ 3 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġlist Ġof Ġche at 's Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġche at Ġche at ĠID ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Domain Che at DataList ( che at : ĠInt ): ĠMutable List < com . github . vh rom ada . catalog . domain . Che at Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġche at Data Ġ= Ġmutable ListOf < com . github . vh rom ada . catalog . domain . Che at Data >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. CHE AT _ DATA _ CHE AT _ COUNT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġche at Data . add ( get Domain Che at Data ( che at Index Ġ= Ġche at , Ġche at Data Index Ġ= Ġi )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġche at Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġlist Ġof Ġche at 's Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġche at Ġche at ĠID ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Che at DataList ( che at : ĠInt ): ĠMutable List < Che at Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġche at Data Ġ= Ġmutable ListOf < Che at Data >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. CHE AT _ DATA _ CHE AT _ COUNT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġche at Data . add ( get Che at Data ( che at Index Ġ= Ġche at , Ġche at Data Index Ġ= Ġi )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġche at Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġche at 's Ġdata Ġfor Ġindexes . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġche at Index ĠĠĠĠ Ġche at Ġindex ĊĠĠĠĠ Ġ* Ġ@ param Ġche at Data Index Ġche at 's Ġdata Ġindex ĊĠĠĠĠ Ġ* Ġ@ return Ġche at 's Ġdata Ġfor Ġindexes ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Domain Che at Data ( che at Index : ĠInt , Ġche at Data Index : ĠInt ): Ġcom . github . vh rom ada . catalog . domain . Che at Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcom . github . vh rom ada . catalog . domain . Che at Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ( che at Index Ġ- Ġ 1 ) Ġ* ĠCHE AT _ DATA _ CHE AT _ COUNT Ġ+ Ġche at Data Index , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ" Che at Ġ$ che at Index ĠData Ġ$ che at Data Index Ġaction ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Che at Ġ$ che at Index ĠData Ġ$ che at Data Index Ġdescription " ĊĠĠĠĠĠĠĠ Ġ). fill Audit ( audit Ġ= ĠAudit Utils . get Audit ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġche at 's Ġdata Ġfor Ġindexes . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġche at Index ĠĠĠĠ Ġche at Ġindex ĊĠĠĠĠ Ġ* Ġ@ param Ġche at Data Index Ġche at 's Ġdata Ġindex ĊĠĠĠĠ Ġ* Ġ@ return Ġche at 's Ġdata Ġfor Ġindexes ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Che at Data ( che at Index : ĠInt , Ġche at Data Index : ĠInt ): ĠChe at Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠChe at Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ" Che at Ġ$ che at Index ĠData Ġ$ che at Data Index Ġaction ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Che at Ġ$ che at Index ĠData Ġ$ che at Data Index Ġdescription " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġcount Ġof Ġche at 's Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġentity Manager Ġentity Ġmanager ĊĠĠĠĠ Ġ* Ġ@ return Ġcount Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" Jpa Ql Inspection ") ĊĠĠĠ Ġfun Ġget Che at Data Count ( entityManager : ĠEntity Manager ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġentity Manager . createQuery (" SELECT ĠCOUNT ( c . id ) ĠFROM ĠChe at Data Ġc ", Ġjava . lang . Long :: class . java ). single Result . toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġche at 's Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid ĠID ĊĠĠĠĠ Ġ* Ġ@ return Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnew Domain Che at Data ( id : ĠInt ?): Ġcom . github . vh rom ada . catalog . domain . Che at Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcom . github . vh rom ada . catalog . domain . Che at Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ). updated () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġche at 's Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnew Che at Data (): ĠChe at Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠChe at Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ). updated () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġchanging Ġche at 's Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġchanging Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnew Request (): ĠChange Che at Data Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠChange Che at Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ" action ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" description " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAssert s Ġlist Ġof Ġche at 's Ġdata Ġdeep Ġequals . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexpected Ġexpected Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ* Ġ@ param Ġactual ĠĠ Ġactual Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġassert Domain Che at Data Deep Equals ( expected : ĠList < com . github . vh rom ada . catalog . domain . Che at Data >, Ġactual : ĠList < com . github . vh rom ada . catalog . domain . Che at Data >) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( expected . size ). isEqualTo ( actual . size ) ĊĠĠĠĠĠĠĠ Ġif Ġ( expected . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġexpected . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Che at Data Deep Equals ( expected Ġ= Ġexpected [ i ], Ġactual Ġ= Ġactual [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAssert s Ġche at 's Ġdata Ġdeep Ġequals . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexpected Ġexpected Ġche at 's Ġdata ĊĠĠĠĠ Ġ* Ġ@ param Ġactual ĠĠ Ġactual Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġassert Che at Data Deep Equals ( expected : Ġcom . github . vh rom ada . catalog . domain . Che at Data ?, Ġactual : Ġcom . github . vh rom ada . catalog . domain . Che at Data ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( expected Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual ). isNull () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Soft ly Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual !!. id ). isEqualTo ( expected . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . action ). isEqualTo ( expected . action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . description ). isEqualTo ( expected . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAudit Utils . assert Audit Deep Equals ( expected Ġ= Ġexpected , Ġactual Ġ= Ġactual !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAssert s Ġlist Ġof Ġche at 's Ġdata Ġdeep Ġequals . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexpected Ġexpected Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ* Ġ@ param Ġactual ĠĠ Ġactual Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġassert Che at Data Deep Equals ( expected : ĠList < com . github . vh rom ada . catalog . domain . Che at Data >, Ġactual : ĠList < Che at Data >) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( expected . size ). isEqualTo ( actual . size ) ĊĠĠĠĠĠĠĠ Ġif Ġ( expected . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġexpected . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Che at Data Deep Equals ( expected Ġ= Ġexpected [ i ], Ġactual Ġ= Ġactual [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAssert s Ġche at 's Ġdata Ġdeep Ġequals . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexpected Ġexpected Ġche at 's Ġdata ĊĠĠĠĠ Ġ* Ġ@ param Ġactual ĠĠ Ġactual Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġassert Che at Data Deep Equals ( expected : Ġcom . github . vh rom ada . catalog . domain . Che at Data , Ġactual : ĠChe at Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Soft ly Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . action ). isEqualTo ( expected . action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . description ). isEqualTo ( expected . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAssert s Ġlist Ġof Ġche at 's Ġdata Ġdeep Ġequals . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexpected Ġexpected Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ* Ġ@ param Ġactual ĠĠ Ġactual Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġassert Che at DataList Deep Equals ( expected : ĠList < Che at Data >, Ġactual : ĠList < Che at Data >) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( expected . size ). isEqualTo ( actual . size ) ĊĠĠĠĠĠĠĠ Ġif Ġ( expected . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġexpected . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Che at Data Deep Equals ( expected Ġ= Ġexpected [ i ], Ġactual Ġ= Ġactual [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAssert s Ġche at 's Ġdata Ġdeep Ġequals . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexpected Ġexpected Ġche at 's Ġdata ĊĠĠĠĠ Ġ* Ġ@ param Ġactual ĠĠ Ġactual Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġassert Che at Data Deep Equals ( expected : ĠChe at Data , Ġactual : ĠChe at Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Soft ly Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . action ). isEqualTo ( expected . action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . description ). isEqualTo ( expected . description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAssert s Ġlist Ġof Ġrequests Ġand Ġlist Ġof Ġche at 's Ġdata Ġdeep Ġequals . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexpected Ġexpected Ġlist Ġof Ġchanging Ġche at 's Ġdata ĊĠĠĠĠ Ġ* Ġ@ param Ġactual ĠĠ Ġactual Ġlist Ġof Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġassert Requests Deep Equals ( expected : ĠList < Change Che at Data >, Ġactual : ĠList < com . github . vh rom ada . catalog . domain . Che at Data >) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( expected . size ). isEqualTo ( actual . size ) ĊĠĠĠĠĠĠĠ Ġif Ġ( expected . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġexpected . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Request Deep Equals ( expected Ġ= Ġexpected [ i ], Ġactual Ġ= Ġactual [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAssert s Ġrequest Ġand Ġche at 's Ġdata Ġdeep Ġequals . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġexpected Ġexpected Ġchanging Ġche at 's Ġdata ĊĠĠĠĠ Ġ* Ġ@ param Ġactual ĠĠ Ġactual Ġche at 's Ġdata ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġassert Request Deep Equals ( expected : ĠChange Che at Data , Ġactual : Ġcom . github . vh rom ada . catalog . domain . Che at Data ) Ġ{ ĊĠĠĠĠĠĠĠ Ġassert Soft ly Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . id ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . action ). isEqualTo ( expected . action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . description ). isEqualTo ( expected . description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . created User ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . created Time ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . updated User ). isNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . assertThat ( actual . updated Time ). isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ