package Ġch . tut tel i . minimal ist Ċ Ċ import Ġorg . eclipse . j git . api . Git Ċ import Ġorg . junit . rules . Temporary Folder ĊĊ Ċ class ĠGit Rule Ġ: ĠTemporary Folder () Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġgit : ĠGit ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠWORK _ DIR Ġ= Ġ" work Dir " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . before () ĊĠĠĠĠĠĠĠ Ġval Ġwork Folder Ġ= Ġnew Folder ( WORK _ DIR ) ĊĠĠĠĠĠĠĠ Ġgit Ġ= ĠGit . init (). set Directory ( work Folder ). call () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġnew File In Work Dir ( fileName : ĠString , Ġvar arg Ġsub Folders : ĠString ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġprefix Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( sub Folders . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Folder ( WORK _ DIR , Ġ* sub Folders ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefix Ġ= Ġsub Folders . join ToString ( separator Ġ= Ġ"/", Ġpostfix Ġ= Ġ"/") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠfilePath Ġ= Ġprefix Ġ+ ĠfileName ĊĠĠĠĠĠĠĠ Ġreturn ĠBuilder ( filePath ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠBuilder ( val ĠfilePath : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfile Ġ= Ġnew File ( WORK _ DIR Ġ+ Ġ"/" Ġ+ ĠfilePath ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠĠĠĠĠ Ġfun ĠaddTo Git (): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgit . add (). add File pattern ( filePath ). call () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġchange Content ( content : ĠString ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . write Text ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcommit ( message : ĠString Ġ= Ġ" test "): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgit . commit (). setMessage ( message ). call () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ