package Ġcom . ek ino . oss . j cv . db . assertj Ċ Ċ import Ġcom . ek ino . oss . j cv . core . Json Comparator Ċ import Ġcom . ek ino . oss . j cv . core . Json Validator Ċ import Ġcom . ek ino . oss . j cv . db . assertj . exception . Json ParseException Ċ import Ġcom . ek ino . oss . j cv . db . assertj . mapper . Assert J Base Mapper Ċ import Ġcom . ek ino . oss . j cv . db . assertj . mapper . MSS QL Mapper Ċ import Ġcom . ek ino . oss . j cv . db . assertj . mapper . MySQL Mapper Ċ import Ġcom . ek ino . oss . j cv . db . assertj . mapper . Postgres Mapper Ċ import Ġcom . ek ino . oss . j cv . db . assertj . util . Db Comparator Builder Ċ import Ġcom . ek ino . oss . j cv . db . config . Database Type Ċ import Ġcom . ek ino . oss . j cv . db . exception . Db Assert Exception Ċ import Ġcom . ek ino . oss . j cv . db . mapper . Type Mapper Ċ import Ġcom . ek ino . oss . j cv . db . model . Row Model Ċ import Ġcom . ek ino . oss . j cv . db . model . TableModel Ċ import Ġcom . ek ino . oss . j cv . db . util . Converter Util Ċ import Ġcom . ek ino . oss . j cv . db . util . Json Converter Ċ import Ġcom . ek ino . oss . j cv . db . util . Json Converter . compare Json And Log Result Ċ import Ġcom . ek ino . oss . j cv . db . util . Json Converter . format Input Ċ import Ġorg . assertj . core . api . Abstract Assert Ċ import Ġorg . assertj . db . type . Source Ċ import Ġorg . assertj . db . type . Table Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONException Ċ import Ġorg . sky sc ream er . json assert . JSON Compare Mode Ċ import Ġjava . io . InputStream Ċ import Ġjava . sql . Driver Manager Ċ import Ġjava . util . HashMap Ċ import Ġjava . util . Objects Ċ import Ġjavax . sql . DataSource Ċ Ċ class ĠDb Comparator Assert J ( ĊĠĠĠ Ġactual Table : ĠTable , ĊĠĠĠ Ġprivate Ġval Ġjson Comparator : ĠJson Comparator , ĊĠĠĠ Ġprivate Ġval Ġmapper : ĠAssert J Base Mapper ? Ġ= Ġnull Ċ ) Ġ: ĠAbstract Assert < Db Comparator Assert J , ĠTable >( actual Table , ĠDb Comparator Assert J :: class . java ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun ĠassertThat Table ( table : ĠTable ) Ġ= ĠDb Comparator Builder . create (). build ( table ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġusing ( comparator : ĠJson Comparator ) Ġ= ĠDb Comparator Assert J ( actual , Ġcomparator ) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠJson Validator <* >> Ġusing ( mode : ĠJSON Compare Mode , Ġvar arg Ġvalidators : ĠT ) Ġ= Ġusing ( mode , Ġvalidators . toList ()) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠJson Validator <* >> Ġusing ( mode : ĠJSON Compare Mode , Ġvalidators : ĠList < T >) Ġ= ĠDb Comparator Assert J ( actual , ĠJson Comparator ( mode , Ġvalidators )) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠJson Validator <* >> Ġusing ( mode : ĠJSON Compare Mode , Ġmapper : ĠAssert J Base Mapper , Ġvalidators : ĠList < T >) Ġ= ĊĠĠĠĠĠĠĠ ĠDb Comparator Assert J ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Comparator ( mode , Ġvalidators ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapper ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠJson Validator <* >> Ġusing ( var arg Ġvalidators : ĠT ) Ġ= Ġusing ( validators . toList ()) ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠJson Validator <* >> Ġusing ( validators : ĠList < T >) Ġ= Ġusing ( JSON Compare Mode . STRICT , Ġvalidators ) ĊĊĠĠĠ Ġfun Ġusing ( mapper : ĠAssert J Base Mapper ) Ġ= ĠDb Comparator Assert J ( ĊĠĠĠĠĠĠĠ Ġactual , ĊĠĠĠĠĠĠĠ Ġjson Comparator , ĊĠĠĠĠĠĠĠ Ġmapper ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun ĠisValid Again st ( input : ĠString ) Ġ= Ġformat Input ( input )?. let Ġ{ Ġcompare Actual And Except ed ( it ) Ġ} Ġ?: Ġthrow ĠDb Assert Exception ( ĊĠĠĠĠĠĠĠ Ġ" Unable Ġto Ġparse Ġexpected Ġresult Ġfrom Ġstring Ġto Ġjson " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun ĠisValid Again st ( inputStream : ĠInputStream ) Ġ= ĠisValid Again st ( Json Converter . load File AsString ( inputStream )) ĊĊĠĠĠ Ġprivate Ġfun Ġcompare Actual And Except ed ( expected : ĠJSONArray ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis NotNull ĊĊĠĠĠĠĠĠĠ ĠObjects . requireNonNull < Any >( json Comparator , Ġ" Json Ġcomparator Ġdefinition Ġis Ġmissing ") ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Json Ġ= Ġactual . convert Table To TableModel (). getTable Model As Json ( mapper Ġ?: Ġget Mapper By DbType ( actual . source , Ġactual . dataSource )) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompare Json And Log Result ( actual Json , Ġexpected , Ġjson Comparator ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠJson ParseException (" Error Ġwith Ġprovided ĠJSON ĠStrings ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTable . convert Table To TableModel (): ĠTable Model Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtable Model Ġ= ĠTable Model () ĊĠĠĠĠĠĠĠ Ġthis . rows List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Model Ġ= ĠRow Model () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcells Ġ= ĠHashMap < String , ĠAny ?> () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . columns Name List . forEach Ġ{ ĠcolumnName Ġ-> Ġcells [ columnName ] Ġ= Ġit . getColumn Value ( columnName ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow Model . cells Ġ= Ġcells ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtable Model . add Row ( row Model ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtable Model ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Mapper By DbType ( source : ĠSource ?, ĠdataSource : ĠDataSource ?): ĠType Mapper Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdefault Map pers : ĠMap < Database Type , ĠAssert J Base Mapper > Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Type . POST GRE SQL Ġto ĠPostgres Mapper (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Type . MYSQL Ġto ĠMySQL Mapper (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Type . MSS QL Ġto ĠM SS QL Mapper () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Ġ!= Ġnull Ġ-> ĠdataSource . connection ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ!= Ġnull Ġ-> ĠDriver Manager . getConnection ( source . url , Ġsource . user , Ġsource . password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠNullPointerException (" Database Ġconnection Ġmust Ġbe Ġnot Ġnull ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠConverter Util . get Mapper From Map ByKey ( connection . metaData . database ProductName , Ġdefault Map pers ) ĊĠĠĠ Ġ} Ċ } Ċ