package Ġjet brains . build Server . runner . lambda . cmd Ċ Ċ import Ġjet brains . build Server . Base TestCase Ċ import Ġjet brains . build Server . agent . Build Progress Logger Ċ import Ġjet brains . build Server . agent . Build Runner Context Ċ import Ġjet brains . build Server . runner . lambda . Lambda Constants Ċ import Ġjet brains . build Server . runner . lambda . Mock Logger Object . mock Build Logger Ċ import Ġorg . j mock . Expectations Ċ import Ġorg . j mock . Mock ery Ċ import Ġorg . j mock . lib . concurrent . Synchron iser Ċ import Ġorg . j mock . lib . legacy . Class Imp oster iser Ċ import Ġorg . testng . Assert Ċ import Ġorg . testng . annotations . After Method Ċ import Ġorg . testng . annotations . Before Method Ċ import Ġorg . testng . annotations . Test Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ import Ġkotlin . io . path . create Temp Directory Ċ Ċ class ĠUnix CommandLine Pre par er Impl Test Ġ: ĠBase TestCase () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm : ĠMock ery ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠBuild Runner Context ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlogger : ĠBuild Progress Logger ĊĊĠĠĠ Ġ@ Before Method ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġpublic Ġoverride Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUp () ĊĠĠĠĠĠĠĠ Ġm Ġ= ĠMock ery () ĊĠĠĠĠĠĠĠ Ġm . set Imp oster iser ( Class Imp oster iser . INSTANCE ) ĊĠĠĠĠĠĠĠ Ġm . set Threading Policy ( Synchron iser ()) ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġm . mock ( Build Runner Context :: class . java ) ĊĠĠĠĠĠĠĠ Ġlogger Ġ= Ġm . mock Build Logger () ĊĊĠĠĠĠĠĠĠ Ġm . checking ( object Ġ: ĠExpect ations () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġone Of ( context ). runner Parameters ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwill ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠreturnValue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( Lambda Constants . SCRIPT _ CONTENT _ PARAM , ĠS CRIPT _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Method ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġpublic Ġoverride Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġm . assertIs Satisf ied () ĊĠĠĠĠĠĠĠ Ġsuper . te ar Down () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Write Build Script Content () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġunix CommandLine Pre par er Ġ= Ġcreate Client () ĊĠĠĠĠĠĠĠ Ġval Ġtemp Dir Ġ= Ġcreate Temp Directory (). to File () ĊĊĠĠĠĠĠĠĠ Ġval Ġfilename List Ġ= Ġunix CommandLine Pre par er . write Build Script Content ( PROJECT _ NAME , Ġtemp Dir ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( filename List , ĠlistOf ( Lambda Constants . SCRIPT _ CONTENT _ FILENAME )) ĊĊĠĠĠĠĠĠĠ Ġval Ġscript File Ġ= ĠFile ("${ temp Dir . absolute Path }/${ filename List . first () }") ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( script File . exists ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠString ( Files . read All Bytes ( script File . to Path ())) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLambda Constants . SCRIPT _ CONTENT _ HEADER Ġ+ ĠLambda Constants . SCRIPT _ CONTENT _ CHANGE _ DIRECTORY _ PREFIX Ġ+ ĠS CRIPT _ CONTENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Write Build Script Content _ Existing File () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġunix CommandLine Pre par er Ġ= Ġcreate Client () ĊĠĠĠĠĠĠĠ Ġval Ġtemp Dir Ġ= Ġcreate Temp Directory (). to File () ĊĠĠĠĠĠĠĠ Ġval Ġoutput Name Ġ= ĠLambda Constants . SCRIPT _ CONTENT _ FILENAME ĊĊĠĠĠĠĠĠĠ Ġwrite ToFile ( temp Dir , Ġoutput Name ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfilename List Ġ= Ġunix CommandLine Pre par er . write Build Script Content ( PROJECT _ NAME , Ġtemp Dir ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( filename List , ĠlistOf ( output Name )) ĊĊĠĠĠĠĠĠĠ Ġval Ġscript File Ġ= ĠFile ("${ temp Dir . absolute Path }/${ filename List . first () }") ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( script File . exists ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= ĠString ( Files . read All Bytes ( script File . to Path ())) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLambda Constants . SCRIPT _ CONTENT _ HEADER Ġ+ ĠLambda Constants . SCRIPT _ CONTENT _ CHANGE _ DIRECTORY _ PREFIX Ġ+ ĠS CRIPT _ CONTENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwrite ToFile ( temp Dir : ĠFile , Ġoutput Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscript File Ġ= ĠFile ("${ temp Dir . absolute Path }/ $ output Name ") ĊĠĠĠĠĠĠĠ Ġscript File . createNew File () ĊĊĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= Ġscript File . print Writer () ĊĠĠĠĠĠĠĠ Ġwriter . println (" some Ġcontent ") ĊĠĠĠĠĠĠĠ Ġwriter . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Client () Ġ= ĠUnix CommandLine Pre par er Impl ( context , Ġlogger ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPROJECT _ NAME Ġ= Ġ" projectName " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠS CRIPT _ CONTENT Ġ= Ġ" script Content " ĊĠĠĠ Ġ} Ċ }