package Ġcom . xm art labs . snapshot publisher Ċ Ċ import Ġcom . xm art labs . snapshot publisher . model . Version Config Ċ import Ġcom . xm art labs . snapshot publisher . plugin . Android Plugin Helper Ċ import Ġcom . xm art labs . snapshot publisher . utils . Git Helper Ċ import Ġorg . gradle . internal . impl dep . org . eclipse . j git . api . Git Ċ import Ġorg . gradle . internal . impl dep . org . eclipse . j git . rev walk . Rev Commit Ċ import Ġorg . gradle . internal . impl dep . org . eclipse . j git . storage . file . File Repository Builder Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġjava . io . File Ċ import Ġjava . util . UUID Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠVersion Name Test Ġ{ ĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġval ĠRE PO _ FOLDER Ġ= ĠFile ("/ tmp /${ UUID . randomUUID () }/ ") ĊĠĠĠ Ġprivate Ġval ĠRE PO _ GIT _ FOLDER Ġ= ĠFile ("${ REPO _ FOLDER . absolute File }/. git ") ĊĠĠĠ Ġprivate Ġconst Ġval ĠB RANCH _ NAME Ġ= Ġ" test - branch " ĊĠ Ġ} ĊĊĠ Ġlateinit Ġvar Ġhead Commit : ĠRev Commit ĊĊĠ Ġ@ Before ĊĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠ Ġval Ġnewly Created Repo Ġ= ĠFile Repository Builder . create ( ĊĠĠĠĠĠĠĠ ĠRE PO _ GIT _ FOLDER ĊĠĠĠ Ġ) ĊĠĠĠ Ġnewly Created Repo . create () ĊĊĠĠĠ Ġhead Commit Ġ= ĠGit ( new ly Created Repo ) ĊĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠĠĠĠĠ Ġ. setMessage (" Test Ġmessage ") ĊĠĠĠĠĠĠĠ Ġ. set Allow Empty ( true ) ĊĠĠĠĠĠĠĠ Ġ. set Sign ( false ) ĊĠĠĠĠĠĠĠ Ġ. call () ĊĊĠĠĠ ĠGit ( new ly Created Repo ) ĊĠĠĠĠĠĠĠ Ġ. checkout () ĊĠĠĠĠĠĠĠ Ġ. set Create Branch ( true ) ĊĠĠĠĠĠĠĠ Ġ. setName ( BRANCH _ NAME ) ĊĠĠĠĠĠĠĠ Ġ. call () ĊĊĠĠĠ ĠGit Helper . default Dir Ġ= ĠRE PO _ FOLDER ĊĠ Ġ} ĊĊĠ Ġ@ After ĊĠ Ġfun Ġfinish () Ġ{ ĊĠĠĠ Ġif Ġ( REPO _ FOLDER . exists ()) ĠRE PO _ FOLDER . delete Re cursively () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` Test Ġversion Ġname Ġwith Ġcommit Ġhash `() Ġ{ ĊĠĠĠ Ġval Ġversion Config Ġ= ĠVersion Config () ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġversion Name Format Ġ= Ġ"{ commit Hash }" Ġ} ĊĊĠĠĠ Ġval Ġversion Name Ġ= ĠAndroid Plugin Helper . getVersion Name ( version Config , Ġ"") ĊĊĠĠĠ ĠassertEquals ( head Commit . short Commit Hash , Ġversion Name ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` Test Ġversion Ġname Ġwith Ġbranch Ġname `() Ġ{ ĊĠĠĠ Ġval Ġversion Config Ġ= ĠVersion Config () ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġversion Name Format Ġ= Ġ"{ branch Name }" Ġ} ĊĊĠĠĠ Ġval Ġversion Name Ġ= ĠAndroid Plugin Helper . getVersion Name ( version Config , Ġ"") ĊĊĠĠĠ ĠassertEquals ( BRANCH _ NAME , Ġversion Name ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` Test Ġversion Ġname Ġwith Ġcommit Ġhash Ġand Ġbranch Ġname `() Ġ{ ĊĠĠĠ Ġval Ġversion Config Ġ= ĠVersion Config () ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġversion Name Format Ġ= Ġ"{ commit Hash }{ branch Name }" Ġ} ĊĊĠĠĠ Ġval Ġversion Name Ġ= ĠAndroid Plugin Helper . getVersion Name ( version Config , Ġ"") ĊĊĠĠĠ ĠassertEquals ( head Commit . short Commit Hash Ġ+ ĠB RANCH _ NAME , Ġversion Name ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` Test Ġversion Ġname Ġwith Ġbranch Ġname , Ġcommit Ġhash Ġand Ġa Ġcustom Ġstring `() Ġ{ ĊĠĠĠ Ġval Ġversion Config Ġ= ĠVersion Config () ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġversion Name Format Ġ= Ġ" v { branch Name }-{ commit Hash }- SNAPSHOT " Ġ} ĊĊĠĠĠ Ġval Ġversion Name Ġ= ĠAndroid Plugin Helper . getVersion Name ( version Config , Ġ"") ĊĊĠĠĠ ĠassertEquals (" v $ BRANCH _ NAME -${ head Commit . short Commit Hash }- SNAPSHOT ", Ġversion Name ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` Test Ġversion Ġname Ġwith Ġcurrent Ġversion Ġname , Ġcommit Ġhash , Ġbranch Ġname Ġand Ġa Ġcustom Ġstring `() Ġ{ ĊĠĠĠ Ġval Ġversion Config Ġ= ĠVersion Config () ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġversion Name Format Ġ= Ġ" v { current Version Name }{ commit Hash }! { branch Name }- SNAPSHOT " Ġ} ĊĊĠĠĠ Ġval Ġcurrent Version Name Ġ= Ġ" current - version " ĊĠĠĠ Ġval Ġversion Name Ġ= ĠAndroid Plugin Helper . getVersion Name ( version Config , Ġcurrent Version Name ) ĊĊĠĠĠ Ġval Ġexpected Ġ= Ġ" v $ current Version Name ${ head Commit . short Commit Hash }! $ BRANCH _ NAME - SNAPSHOT " ĊĠĠĠ ĠassertEquals ( expected , Ġversion Name ) ĊĠ Ġ} Ċ } Ċ Ċ private Ġval ĠRev Commit . short Commit Hash : ĠString ĊĠ Ġget () Ġ= Ġname . substring ( 0 , Ġ 7 ) Ċ