/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠV lad im ir ĠS it nik ov Ġ< sit nik ov . vl ad im ir @ gmail . com > Ċ Ġ* Ċ Ġ* ĠLicensed Ġ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 Ġcom . github . aut ost yle . gradle Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . gradle . test kit . runner . Build Result Ċ import Ġorg . gradle . test kit . runner . Task Outcome Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ /** ĠTests Ġthe Ġdesired Ġbehavior Ġfrom Ġhttps :// github . com / diff plug / spot less / issues / 4 6 . Ġ Ġ*/ Ċ class ĠError Should Re throw Test Ġ: ĠGradle IntegrationTest () Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġwrite Build ( format Settings : ĠString Ġ= Ġ"", Ġenforce Check : ĠBoolean ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' com . github . aut ost yle ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' java ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaut ost yle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ enforce Check ?. let Ġ{ Ġ" enforce Check Ġ$ it " Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ' misc ', Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline End ings Ġ' UNIX ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġfile (' README . md ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Ġ' no Ġfu ', Ġ 1 , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . toLowerCase ( Locale . ROOT ). contains (' f ubar ')) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġnew ĠRuntimeException (' No Ġf ubar !'); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Ġ' no Ġfoo ', Ġ 1 , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . toLowerCase ( Locale . ROOT ). contains (' foobar ')) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġnew ĠRuntimeException (' No Ġfoo bar !'); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ format Settings ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġset File (" build . gradle "). to Content ( build ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpasses If No Exception () Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Build () ĊĠĠĠĠĠĠĠ Ġset File (" README . md "). to Content (" This Ġcode Ġis Ġfun .") ĊĠĠĠĠĠĠĠ Ġrun With Success ("> ĠTask Ġ: aut ost yle Misc Check ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġany Exception Should Fail () Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Build () ĊĠĠĠĠĠĠĠ Ġset File (" README . md "). to Content (" This Ġcode Ġis Ġf ubar .") ĊĠĠĠĠĠĠĠ Ġrun With Failure ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ": aut ost yle Misc Step Ġ' no Ġs we aring ' Ġfound Ġproblem Ġin Ġ' README . md ': ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" No Ġs we aring !", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" java . lang . RuntimeException : ĠNo Ġs we aring !" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġunless En force Check IsFalse () Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Build ( enforce Check Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġset File (" README . md "). to Content (" This Ġcode Ġis Ġf ubar .") ĊĠĠĠĠĠĠĠ Ġ// Ġaut ost yle Check Ġis Ġnot Ġexecuted Ġexecuted Ġas Ġa Ġpart Ġof Ġcheck Ġsince Ġenforce Check = false ĊĠĠĠĠĠĠĠ Ġrun With Success ( outcome Ġ= Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun With Success ( var arg Ġmessages : ĠString , Ġoutcome : ĠTask Outcome ? Ġ= ĠTask Outcome . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġgradle Runner (). with Arguments (" check "). build () ĊĠĠĠĠĠĠĠ Ġassert Result And Messages ( result , Ġoutcome , Ġ* messages ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun With Failure ( var arg Ġmessages : ĠString , Ġoutcome : ĠTask Outcome ? Ġ= ĠTask Outcome . FAILED ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġgradle Runner (). with Arguments (" check "). build And Fail () ĊĠĠĠĠĠĠĠ Ġassert Result And Messages ( result , Ġoutcome , Ġ* messages ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Result And Messages ( ĊĠĠĠĠĠĠĠ Ġresult : ĠBuild Result , ĊĠĠĠĠĠĠĠ Ġoutcome : ĠTask Outcome ?, ĊĠĠĠĠĠĠĠ Ġvar arg Ġmessages : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( result . task (": aut ost yle Misc Process ") ?. outcome ). isEqualTo ( outcome ). ` as ` (" aut ost yle Misc Check . outcome ") Ċ // ĠĠĠĠĠĠĠ Ġval Ġexpected To Start With Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠString Printer . build String From Lines (* messages ). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} Ċ // ĠĠĠĠĠĠĠ Ġval Ġnum New lines Ġ= ĠChar Matcher .` is ` ('\ n '). count In ( expected To Start With ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġactual Lines Ġ= ĠLine Ending . to Unix ( result . output ). split ('\ n ') Ċ // ĠĠĠĠĠĠĠ Ġval Ġactual Start Ġ= Ġactual Lines . sub List ( 0 , Ġnum New lines Ġ+ Ġ 1 ). join ToString ("\ n ") Ċ // ĠĠĠĠĠĠĠ ĠassertThat ( actual Start ). isEqualTo ( expected To Start With ) Ċ // ĠĠĠĠĠĠĠ ĠassertThat ( result . tasks ( outcome ). size Ġ+ Ġresult . tasks ( Task Outcome . UP _ TO _ DATE ). size ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( result . tasks . size ) ĊĠĠĠ Ġ} Ċ } Ċ