/* Ċ Ġ* ĠThis ĠKotlin Ġsource Ġfile Ġwas Ġgenerated Ġby Ġthe ĠGradle Ġ' init ' Ġtask . Ċ Ġ*/ Ċ package Ġgit . semver . plugin . gradle Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . eclipse . j git . api . Git Ċ import Ġorg . gradle . test kit . runner . Build Result Ċ import Ġorg . gradle . test kit . runner . Gradle Runner Ċ import Ġjava . io . File Ċ import Ġkotlin . test . Test Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġfunctional Ġtest Ġfor Ġthe Ġplugin . Ċ Ġ*/ Ċ class ĠGit Sem ver Plugin Functional Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` can Ġrun Ġtask `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSetup Ġthe Ġtest Ġbuild ĊĊĠĠĠĠĠĠĠ Ġval Ġproject Dir Ġ= ĠFile (" build / functional Test ") ĊĠĠĠĠĠĠĠ Ġproject Dir . mkdir s () ĊĠĠĠĠĠĠĠ Ġproject Dir . resolve (". gitignore "). write Text (". gradle ") ĊĠĠĠĠĠĠĠ Ġproject Dir . resolve (" settings . gradle "). write Text (" include Ġ': sub 1 '") ĊĠĠĠĠĠĠĠ Ġproject Dir . resolve (" build . gradle "). write Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid (' com . github . j mong ard . git - semver - plugin ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġsemver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Version In crements Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġall projects Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġsemver . version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġtest Task ( depends On : print Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln Ġ" Proj Ver : Ġ" Ġ+ Ġproject . version ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsub Project Dir Ġ= ĠFile (" build / functional Test / sub 1 ") ĊĠĠĠĠĠĠĠ Ġsub Project Dir . mkdir s () ĊĠĠĠĠĠĠĠ Ġsub Project Dir . resolve (" build . gradle "). write Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Sub 1 : Ġ" Ġ+ Ġproject . version ) ĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthe Ġbuild Ġfiles Ġto Ġa Ġnew Ġgit Ġrepository ĊĠĠĠĠĠĠĠ ĠGit . init (). set Directory ( project Dir ). call (). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add (). add File pattern (". "). call () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . commit (). setMessage (" test Ġfiles "). call () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠRun Ġthe Ġbuild Ġ- Ġrelease ĊĠĠĠĠĠĠĠ Ġval Ġrelease Result Ġ= Ġrun ( project Dir , Ġ" release ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- P default Pre Release = NEXT ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- P no Dirty Check = true ") ĊĠĠĠĠĠĠĠ ĠassertThat ( release Result . output ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. does Not Contain (" FAILED ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Pattern (" Sub 1 : Ġ\\ d + \\. \\ d + \\. \\ d +- NEXT ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠRun Ġthe Ġbuild Ġ- Ġrelease Ġwith Ġoptions ĊĠĠĠĠĠĠĠ Ġval Ġrelease Result 2 Ġ= Ġrun ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Dir , Ġ" release ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- no - tag ", Ġ"-- no - commit ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- pre Release = NEXT . 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"-- message = test " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThat ( release Result 2 . output ). does Not Contain (" FAILED ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠRun Ġthe Ġbuild Ġ- Ġtest Task ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrun ( project Dir , Ġ" test Task ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠVerify Ġthe Ġresult ĊĠĠĠĠĠĠĠ ĠassertThat ( result . output ). contains Pattern (" Version : Ġ\\ d + \\. \\ d + \\. \\ d +") ĊĠĠĠĠĠĠĠ ĠassertThat ( result . output ). contains Pattern (" Proj Ver : Ġ\\ d + \\. \\ d + \\. \\ d +") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun ( project Dir : ĠFile , Ġvar arg Ġargs : ĠString ): ĠBuild Result Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠGradle Runner . create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forward Output () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Plugin Classpath () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments ( args . toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Project Dir ( project Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ } Ċ