/* Ċ Ġ* ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "). Ċ Ġ* ĠSee ĠLICENSE Ġin Ġthe Ġproject Ġroot Ġfor Ġlicense Ġinformation . Ċ Ġ*/ Ċ Ċ package Ġjet brains . build Server . rust . test Ċ Ċ import Ġjet brains . build Server . agent . Build Progress Logger Ċ import Ġjet brains . build Server . rust . logging . Cargo LoggerFactory Ċ import Ġjet brains . build Server . rust . logging . Cargo Logging Listener Ċ import Ġjet brains . build Server . util . File Util Ċ import Ġorg . hamcrest . Base Matcher Ċ import Ġorg . hamcrest . Description Ċ import Ġorg . j mock . Expectations Ċ import Ġorg . j mock . Mock ery Ċ import Ġorg . testng . annotations . DataProvider Ċ import Ġorg . testng . annotations . Test Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author ĠD mit ry . Tre ty ak ov Ċ Ġ* Ġ* ĠĠĠĠĠĠĠĠ ĠDate : Ġ 2 1 . 0 6 . 2 0 1 6 Ċ Ġ* Ġ* ĠĠĠĠĠĠĠĠ ĠTime : Ġ 0 : 0 5 Ċ Ġ*/ Ċ class ĠC argo Logging Listener Test Ġ{ ĊĊĠĠĠ Ġ@ Test ( dataProvider Ġ= Ġ" test Transform ations ") ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġtest Transformation ( filename : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoriginal File Ġ= ĠFile (" src / test / resources / cargo / original /$ filename ") ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Ġ= ĠArrayList ( File Util . readFile ( original File )) ĊĠĠĠĠĠĠĠ Ġval Ġprocessed File Ġ= ĠFile (" src / test / resources / cargo / processed /$ filename ") ĊĠĠĠĠĠĠĠ Ġval Ġprocessed Ġ= ĠArrayList ( File Util . readFile ( processed File )) ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= ĠMock ery () ĊĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= Ġm . mock < Build Progress Logger >( Build Progress Logger :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġmatcher Ġ= Ġget Matcher ( processed ) ĊĠĠĠĠĠĠĠ Ġval ĠnumberOf Lines Ġ= Ġprocessed . size ĊĠĠĠĠĠĠĠ Ġm . checking ( object Ġ: ĠExpect ations () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexactly ( numberOf Lines ). of ( logger ). message ( with ( matcher )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval Ġlogger Factory Ġ= ĠC argo LoggerFactory ( logger ) ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠC argo Logging Listener ( logger Factory ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( message Ġin Ġoriginal ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Standard Output ( message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlistener . process Finished ( 0 ) ĊĊĠĠĠĠĠĠĠ Ġm . assertIs Satisf ied () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Matcher ( processed : ĠMutable List < String >): ĠBase Matcher < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠBase Matcher < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmatches ( actual : ĠAny ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġprocessed . size Ġ> Ġ 0 Ġ&& Ġis Equals ( actual Ġas ĠString , Ġprocessed . remove At ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdescribe To ( description : ĠDescription ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . append Text (" List Ġmatcher ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Equals ( actual : ĠString , Ġexpected : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcleaned Ġ= Ġactual . replace ("\\ s ( duration =' \\ d +') ". to Regex (), Ġ"") ĊĠĠĠĠĠĠĠ Ġreturn Ġcleaned Ġ== Ġexpected ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DataProvider ĊĠĠĠ Ġfun Ġtest Transform ations (): ĠArray < Array < Any >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Tests . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Compile Verbose . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Test Failures . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Build . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Warnings . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Doc Tests 1 . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Doc Tests 2 . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Doc Tests 3 . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Doc Tests 4 . txt "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf < Any >(" cargo Feature Error . txt ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ