package Ġcom . app mat t us . markdown . processing Ċ Ċ import Ġcom . app mat t us . markdown . dsl . Config Ċ import Ġcom . app mat t us . markdown . plugin . Markdown Lint Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . rules . Temporary Folder Ċ import Ġorg . spe k framework . spe k 2 . Spe k Ċ import Ġorg . spe k framework . spe k 2 . style . g her kin . Feature Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . File Ċ import Ġjava . io . Print Stream Ċ import Ġjava . nio . file . Files Ċ Ċ object ĠRule Processor Test Ġ: ĠSpe k ({ ĊĠĠĠ Ġfun ĠRule Processor . process And Return Output ( config : ĠConfig ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠbyteArray OutputStream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġprocess ( config , ĠPrint Stream ( byteArray OutputStream )) ĊĠĠĠĠĠĠĠ Ġreturn ĠbyteArray OutputStream . toByteArray (). toString ( Charsets . UTF _ 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠFeature (" Rule Processor ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemporary Folder Ġby Ġmemoized Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemporary Folder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġroot Dir Ġby Ġmemoized Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemporary Folder . new Folder (" rootDir "). to Path () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġreports Dir Ġby Ġmemoized Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemporary Folder . new Folder (" reports Dir "). to Path () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġslash Ġ= ĠRegex . escape ( File . separator ) ĊĠĠĠĠĠĠĠ Ġval Ġhtml Report Pattern Ġ= Ġ" reports Dir ${ slash } markdown lint \\. html ". to Regex (). to Pattern () ĊĠĠĠĠĠĠĠ Ġval Ġxml Report Pattern Ġ= Ġ" reports Dir ${ slash } markdown lint \\. xml ". to Regex (). to Pattern () ĊĊĠĠĠĠĠĠĠ ĠScenario (" default Ġconfig Ġexecutes Ġsuccessfully ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġrule Processor : ĠRule Processor ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" a Ġdefault Ġconfig ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġcreate Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrule Processor Ġ= ĠRule Processor ( rootDir , Ġreports Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" processing Ġthe Ġconfig Ġfile Ġis Ġsuccessful ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrule Processor . process ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" default Ġconfig Ġgenerates Ġboth Ġxml Ġand Ġhtml Ġreports ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" a Ġdefault Ġconfig ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" xml Ġreport Ġgenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" Successfully Ġgenerated ĠCheck style ĠXML Ġreport ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains Pattern ( xml Report Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( reports Dir . resolve (" markdown lint . xml ")). exists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" html Ġreport Ġgenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" Successfully Ġgenerated ĠHTML Ġreport ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains Pattern ( html Report Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( reports Dir . resolve (" markdown lint . html ")). exists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" empty Ġreport Ġconfig Ġgenerates Ġno Ġreports ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" config Ġdisabling Ġreports ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). reports Ġ{ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" no Ġxml Ġreport Ġgenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). does Not Contain (" Successfully Ġgenerated ĠCheck style ĠXML Ġreport ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). does Not Contain Pattern ( xml Report Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( reports Dir . resolve (" markdown lint . xml ")). does NotExist () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" no Ġhtml Ġreport Ġgenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). does Not Contain (" Successfully Ġgenerated ĠHTML Ġreport ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). does Not Contain Pattern ( html Report Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( reports Dir . resolve (" markdown lint . html ")). does NotExist () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" html Ġonly Ġreport Ġconfig Ġgenerates Ġonly Ġhtml Ġreport ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" config Ġwith Ġhtml Ġonly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). reports Ġ{ Ġhtml () Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" html Ġreport Ġgenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" Successfully Ġgenerated ĠHTML Ġreport ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains Pattern ( html Report Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( reports Dir . resolve (" markdown lint . html ")). exists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" no Ġxml Ġreport Ġgenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). does Not Contain (" Successfully Ġgenerated ĠCheck style ĠXML Ġreport ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). does Not Contain Pattern ( xml Report Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( reports Dir . resolve (" markdown lint . xml ")). does NotExist () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" xml Ġonly Ġreport Ġconfig Ġgenerates Ġonly Ġxml Ġreport ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" config Ġwith Ġxml Ġonly ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). reports Ġ{ Ġcheck style () Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" xml Ġreport Ġgenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" Successfully Ġgenerated ĠCheck style ĠXML Ġreport ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains Pattern ( xml Report Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( reports Dir . resolve (" markdown lint . xml ")). exists () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" no Ġhtml Ġreport Ġgenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). does Not Contain (" Successfully Ġgenerated ĠHTML Ġreport ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). does Not Contain Pattern ( html Report Pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( reports Dir . resolve (" markdown lint . html ")). does NotExist () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" no Ġfiles Ġanaly sed Ġwhen Ġno Ġmarkdown Ġfiles Ġdefined ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" no Ġmarkdown Ġfiles ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" a Ġdefault Ġconfig ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" no Ġfiles Ġanaly sed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" 0 Ġmarkdown Ġfiles Ġwere Ġanaly sed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" one Ġfile Ġanaly sed Ġwhen Ġone Ġmarkdown Ġfile Ġdefined ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" one Ġmarkdown Ġfiles ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" a - valid - file . md "), ĠlistOf ("# ĠA Ġvalid Ġfile ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" a Ġdefault Ġconfig ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" one Ġfile Ġanaly sed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" 1 Ġmarkdown Ġfiles Ġwere Ġanaly sed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" two Ġfiles Ġanaly sed Ġwhen Ġtwo Ġmarkdown Ġfiles Ġdefined ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" two Ġmarkdown Ġfiles ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" a - valid - file . md "), ĠlistOf ("# ĠA Ġvalid Ġfile ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" another - valid - file . md "), ĠlistOf ("# ĠAnother Ġvalid Ġfile ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" a Ġdefault Ġconfig ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" two Ġfile Ġanaly sed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" 2 Ġmarkdown Ġfiles Ġwere Ġanaly sed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" one Ġfile Ġanaly sed Ġwhen Ġone Ġfile Ġexcluded ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" two Ġmarkdown Ġfiles ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" a - valid - file . md "), ĠlistOf ("# ĠA Ġvalid Ġfile ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" an - invalid - file . md "), ĠlistOf ("")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" config Ġwith Ġexclude Ġrule ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude s Ġ= ĠlistOf (". */ an - invalid - file . md ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" one Ġfile Ġanaly sed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" 1 Ġmarkdown Ġfiles Ġwere Ġanaly sed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" one Ġfile Ġanaly sed Ġwhen Ġone Ġfile Ġincluded ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" two Ġmarkdown Ġfiles ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" a - valid - file . md "), ĠlistOf ("# ĠA Ġvalid Ġfile ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" an - invalid - file . md "), ĠlistOf ("")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" config Ġwith Ġexclude Ġrule ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġincludes Ġ= ĠlistOf (". */ a - valid - file . md ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" one Ġfile Ġanaly sed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" 1 Ġmarkdown Ġfiles Ġwere Ġanaly sed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" no Ġerrors Ġwere Ġreported ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" No Ġerrors Ġreported ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" no Ġfiles Ġanaly sed Ġwhen Ġa Ġfile Ġis Ġboth Ġincluded Ġand Ġexcluded ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" two Ġmarkdown Ġfiles ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" a - valid - file . md "), ĠlistOf ("# ĠA Ġvalid Ġfile ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" an - invalid - file . md "), ĠlistOf ("")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" config Ġwith Ġexclude Ġrule ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġincludes Ġ= ĠlistOf (". */ a - valid - file . md ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude s Ġ= ĠlistOf (". */ a - valid - file . md ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" no Ġfiles Ġanaly sed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" 0 Ġmarkdown Ġfiles Ġwere Ġanaly sed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" no Ġerrors Ġwere Ġreported ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" No Ġerrors Ġreported ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" one Ġfile Ġanaly sed Ġwhen Ġdirectory Ġexcluded ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġoutput : ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠGiven (" two Ġmarkdown Ġfiles ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" a - valid - file . md "), ĠlistOf ("# ĠA Ġvalid Ġfile ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . create Directory ( rootDir . resolve (" directory ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFiles . write ( rootDir . resolve (" directory / an - invalid - file . md "), ĠlistOf ("")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" config Ġwith Ġexclude Ġrule ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig Ġ= ĠMarkdown Lint (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude s Ġ= ĠlistOf (". */ directory / .* ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠWhen (" we Ġexecute Ġthe Ġrule Ġprocessor ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= ĠRule Processor ( rootDir , Ġreports Dir ). process And Return Output ( config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠThen (" one Ġfile Ġanaly sed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" 1 Ġmarkdown Ġfiles Ġwere Ġanaly sed ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAnd (" no Ġerrors Ġwere Ġreported ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( output ). contains (" No Ġerrors Ġreported ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ