/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠRichard ĠH aus wal d Ġ- Ġhttps :// quantum maid . de /. Ċ Ġ* Ċ Ġ* ĠLicensed Ġto Ġthe ĠApache ĠSoftware ĠFoundation Ġ( ASF ) Ġunder Ġone Ċ Ġ* Ġor Ġmore Ġcontributor Ġlicense Ġagreements . Ġ ĠSee Ġthe ĠNOTICE Ġfile Ċ Ġ* Ġdistributed Ġwith Ġthis Ġwork Ġfor Ġadditional Ġinformation Ċ Ġ* Ġregarding Ġcopyright Ġownership . Ġ ĠThe ĠASF Ġlicenses Ġthis Ġfile Ċ Ġ* Ġto Ġyou Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ċ Ġ* Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ċ Ġ* Ġwith Ġthe ĠLicense . Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ċ Ġ* Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ċ Ġ* Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY Ċ Ġ* ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ċ Ġ* Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ċ Ġ* Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġde . quantum maid . doc um aid . given When Then Ċ Ċ import Ġde . quantum maid . doc um aid . config . Doc u M aid Configuration Ċ import Ġde . quantum maid . doc um aid . config . Platform Ċ import Ġde . quantum maid . doc um aid . errors . Errors Encounter ed In D oku M aid Exception Ċ import Ġde . quantum maid . doc um aid . shared . filesystem . S ut File Structure Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ Ċ class ĠDoc u M aid Test Validation Builder Ġprivate Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġtest Validation : Ġ( test Environment : ĠTest Environment ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġbuild (): Ġ( test Environment : ĠTest Environment ) Ġ-> ĠUnit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtest Validation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġexpect All Files ToBe Correct (): ĠDoc u M aid Test Validation Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDoc u M aid Test Validation Builder Ġ{ Ġtest Environment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert No Exception Thrown ( test Environment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert All Files Correct ly Generated ( test Environment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġexpect No Exception (): ĠDoc u M aid Test Validation Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDoc u M aid Test Validation Builder Ġ{ Ġtest Environment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert No Exception Thrown ( test Environment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġexpect An Exception With Message ( expected Message : ĠString ): ĠDoc u M aid Test Validation Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDoc u M aid Test Validation Builder Ġ{ Ġassert Exception With Message ( expected Message , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġexpect AD oc u M aid Exception Collect ing The Following Errors ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar arg Ġexpected Messages : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠDoc u M aid Test Validation Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDoc u M aid Test Validation Builder Ġ{ Ġtest Environment Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( test Environment . has ( Test Environment Property . EXCEPTION )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġtest Environment . getProperty As Type < Exception >( Test Environment Property . EXCEPTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( exception Ġis ĠErrors Encounter ed In D oku M aid Exception ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdo ku M aid Exception Ġ= Ġexception Ġas ĠErrors Encounter ed In D oku M aid Exception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= Ġdo ku M aid Exception . errors ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" Sizes Ġof Ġexpected Ġerrors Ġand Ġactual Ġerrors Ġdo Ġnot Ġmatch " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( expected Messages . size , Ġerrors . size , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġexpected Messages . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Message Ġ= Ġexpected Messages [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġerrors [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( expected Message , Ġerror . message ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail < Any >(" Expected Ġan Ġexception Ġto Ġbe Ġthrown , Ġbut Ġnone Ġwas Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġassert No Exception Thrown ( test Environment : ĠTest Environment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( test Environment . has ( Test Environment Property . EXCEPTION )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġtest Environment . getProperty As Type < Exception >( Test Environment Property . EXCEPTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail < Any >( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġassert All Files Correct ly Generated ( test Environment : ĠTest Environment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsut File Structure : ĠS ut File Structure Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Environment . getProperty As Type ( Test Environment Property . S UT _ FILE _ STRUCTURE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig : ĠDoc u M aid Configuration Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Environment . getProperty As Type ( Test Environment Property . DO CU _ MA ID _ CONFIG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected File Structure Ġ= Ġwhen Ġ( config . platform ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . GITHUB Ġ-> Ġsut File Structure . construct Expected File Structure For Github () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . HU GO Ġ-> Ġsut File Structure . construct Expected File Structure For H ugo ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest File Structure Correct ness Checker . check For Correct ness ( expected File Structure ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġassert Exception With Message ( expected Message : ĠString , Ġtest Environment : ĠTest Environment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( test Environment . has ( Test Environment Property . EXCEPTION )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġtest Environment . getProperty As Type < Exception >( Test Environment Property . EXCEPTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġexception . message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( expected Message , Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail < Any >(" Expected Ġan Ġexception Ġto Ġbe Ġthrown , Ġbut Ġnone Ġwas Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ