package Ġcom . p interest . kt lint Ċ Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . Print Stream Ċ import Ġjava . security . Permission Ċ import Ġorg . junit . Assert . assertFalse Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠBase line Tests Ġ{ ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . set Security Manager ( object Ġ: ĠSecurity Manager () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck Permission ( perm : ĠPermission ?) Ġ{ Ġ// Ġallow Ġanything . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck Permission ( perm : ĠPermission ?, Ġcontext : ĠAny ?) Ġ{ Ġ// Ġallow Ġanything . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck Exit ( status : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . check Exit ( status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠExit Exception ( status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest No Baseline () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġps Ġ= ĠPrint Stream ( stream ) ĊĠĠĠĠĠĠĠ ĠSystem . set Out ( ps ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain ( array Of (" src / test / resources / Test Baseline File . kt ")) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠExit Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhandle ĠSystem . exit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠString ( stream . toByteArray ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( output . contains (" .* : 1 : 2 4 : ĠUn necessary Ġblock ". to Regex ())) ĊĠĠĠĠĠĠĠ ĠassertTrue ( output . contains (" .* : 2 : 1 : ĠUnexpected Ġblank Ġline \\ ( s \\ ) Ġbefore Ġ\ "} \"" . to Regex ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Baseline Returns No Errors () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġps Ġ= ĠPrint Stream ( stream ) ĊĠĠĠĠĠĠĠ ĠSystem . set Out ( ps ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain ( array Of (" src / test / resources / Test Baseline File . kt ", Ġ"-- baseline = src / test / resources / test - baseline . xml ")) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠExit Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhandle ĠSystem . exit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠString ( stream . toByteArray ()) ĊĠĠĠĠĠĠĠ ĠassertFalse ( output . contains (" .* : 1 : 2 4 : ĠUn necessary Ġblock ". to Regex ())) ĊĠĠĠĠĠĠĠ ĠassertFalse ( output . contains (" .* : 2 : 1 : ĠUnexpected Ġblank Ġline \\ ( s \\ ) Ġbefore Ġ\ "} \"" . to Regex ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Extra Error NotIn Baseline () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ Ġval Ġps Ġ= ĠPrint Stream ( stream ) ĊĠĠĠĠĠĠĠ ĠSystem . set Out ( ps ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain ( array Of (" src / test / resources / Test Baseline Extra Error File . kt ", Ġ"-- baseline = src / test / resources / test - baseline . xml ")) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠExit Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhandle ĠSystem . exit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠString ( stream . toByteArray ()) ĊĠĠĠĠĠĠĠ ĠassertFalse ( output . contains (" .* : 1 : 2 4 : ĠUn necessary Ġblock ". to Regex ())) ĊĠĠĠĠĠĠĠ ĠassertTrue ( output . contains (" .* : 2 : 1 : ĠUnexpected Ġblank Ġline \\ ( s \\ ) Ġbefore Ġ\ "} \"" . to Regex ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠExit Exception ( val Ġstatus : ĠInt ) Ġ: ĠSecurity Exception (" Should Ġnot Ġexit Ġin Ġtests ") Ċ } Ċ