package Ġorg . jon ny zz z . team city . dsl . util ĊĊ Ċ import Ġorg . jon ny zz z . team city . dsl . div Ċ import Ġorg . jon ny zz z . team city . dsl . load UTF Ċ import Ġjava . io . File Ċ Ċ fun Ġassert Generated Team City Model ( orig Ġ: ĠFile , Ġtemp Ġ: ĠFile ) Ġ{ ĊĠ Ġfun ĠFile . load For Compare () Ġ= Ġload UTF (). replace ("\ r \ n ", Ġ"\ n ") ĊĊĠ Ġfun Ġselect Files To Compare ( root : ĠFile ) Ġ: ĠMap < String , ĠString > Ġ= Ġroot ĊĠĠĠĠĠĠĠĠĠ Ġ. list Files Ġ{ Ġit Ġ-> Ġit . isDirectory Ġ} !! ĊĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġ" project :" Ġ+ Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Config Ġ= Ġit Ġ/ Ġ" project - config . xml " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! project Config . isFile ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( key Ġto Ġproject Config . load For Compare ()) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( it Ġ/ Ġ" build Types ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. list Files Ġ{ Ġit Ġ-> Ġit . isFile Ġ&& Ġit . name . endsWith (". xml ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġ( key Ġ+ Ġ"/ Build _" Ġ+ Ġit . name ) Ġto Ġit . load For Compare () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠlistOf ()) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( it Ġ/ Ġ" vcs Roots ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. list Files Ġ{ Ġit Ġ-> Ġit . isFile Ġ&& Ġit . name . endsWith (". xml ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġ( key Ġ+ Ġ"/ V CS Root _" Ġ+ Ġit . name ) Ġto Ġit . load For Compare () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠlistOf ()) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( it Ġ/ Ġ" plugin Data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. list Files Ġ{ Ġit Ġ-> Ġit . isFile Ġ&& Ġit . name . endsWith (". xml ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġ( key Ġ+ Ġ"/" Ġ+ Ġit . name ) Ġto Ġit . load For Compare () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠlistOf ()) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(( it Ġ/ Ġ" plugin Data " Ġ/ Ġ" meta Run ners ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. list Files Ġ{ Ġit Ġ-> Ġit . isFile Ġ&& Ġit . name . endsWith (". xml ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġ( key Ġ+ Ġ"/ meta -" Ġ+ Ġit . name ) Ġto Ġit . load For Compare () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠlistOf ()) ĊĠĠĠĠĠĠĠĠĠ Ġ}. toMap () ĊĊĠ Ġval Ġorig Data Ġ= Ġselect Files To Compare ( orig ) ĊĠ Ġval Ġactual Data Ġ= Ġselect Files To Compare ( temp ) ĊĊĠ Ġprintln () ĊĠ Ġprintln (" Expected Ġfiles :\ n " Ġ+ Ġorig Data . keys . join ToString ("\ n ")) ĊĠ Ġprintln () ĊĠ Ġprintln (" Actual Ġfiles :\ n " Ġ+ Ġactual Data . keys . join ToString ("\ n ")) ĊĊĠ Ġprintln () ĊĠ Ġval Ġerrors Ġ= Ġorig Data . filter Ġ{ Ġkv Ġ-> ĊĠĠĠ Ġval Ġ( file , Ġorig Text ) Ġ= Ġkv ĊĠĠĠ Ġactual Data [ file ] Ġ!= Ġorig Text ĊĠ Ġ} Ġ. Ġmap Ġ{ Ġit . key Ġ} Ġ. to Sorted Set () ĊĠ Ġprintln (" Total Ġerrors : Ġ${ errors . size } Ġof Ġ${ orig Data . size }: Ġ$ errors ") ĊĠ Ġprintln () ĊĊĠ Ġfor Ġ(( file , Ġorig Text ) Ġin Ġorig Data ) Ġ{ ĊĠĠĠ Ġprintln (" Checking : Ġ" Ġ+ Ġfile ) ĊĊĠĠĠ Ġval Ġactual Text Ġ= Ġactual Data [ file ] ĊĠĠĠ Ġorg . junit . Assert . assertNotNull (" File Ġ$ file Ġshould Ġbe Ġgenerated ", Ġactual Text ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġorg . junit . Assert . assertEquals ("$ file Ġis Ġgenerated Ġincorrectly ", Ġorig Text , Ġactual Text ) ĊĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠ Ġprintln (" Generated Ġfile :") ĊĠĠĠĠĠ Ġprintln ( actual Text ) ĊĠĠĠĠĠ Ġprintln (" =============== =") ĊĠĠĠĠĠ Ġprintln (" Expected Ġfile :") ĊĠĠĠĠĠ Ġprintln ( orig Text ) ĊĠĠĠĠĠ Ġprintln (" =============== =") ĊĠĠĠĠĠ Ġthrow Ġt ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġorg . junit . Assert . assertEquals ( orig Data , Ġactual Data ) Ċ } ĊĊ