package Ġcom . a 6 5 apps . changelog Ċ Ċ import Ġorg . aj ober star . gr git . G rg it Ċ import Ġorg . aj ober star . gr git . Person Ċ import Ġorg . gradle . internal . impl dep . org . junit . rules . Temporary Folder Ċ import Ġorg . gradle . internal . impl dep . org . testng . Assert JUnit . assertEquals Ċ import Ġorg . gradle . test kit . runner . Build Result Ċ import Ġorg . gradle . test kit . runner . Gradle Runner Ċ import Ġorg . gradle . test kit . runner . Task Outcome Ċ import Ġorg . spe k framework . spe k 2 . Spe k Ċ import Ġorg . spe k framework . spe k 2 . dsl . Test Body Ċ import Ġorg . spe k framework . spe k 2 . style . g her kin . Feature Ċ import Ġorg . spe k framework . spe k 2 . style . g her kin . Scenario Body Ċ import Ġjava . io . File Ċ Ċ object ĠChangelog Plugin Specification Ġ: ĠSpe k ({ ĊĠĠĠ Ġtemporary Folder () ĊĊĠĠĠ ĠFeature (" Ð¿ Ð» Ð°Ð³ Ð¸Ð½ ĠÐ´Ð¾Ð»Ð¶ ÐµÐ½ ĠÑĥ Ð¼ ÐµÑĤ ÑĮ ĠÐ³ ÐµÐ½ ÐµÑĢ Ð¸ÑĢÐ¾Ð² Ð°ÑĤÑĮ Ġchangelog . md ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Project . name Ġ= Ġ" changelog " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġtemplate Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĠChangelog ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ## Ġ{{ title }} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{{ # entries }} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{{ message }} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{{ / entries }} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ## ĠFol ded ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{{ # short Entries }} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{{ fold Id }} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{{ / short Entries }} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĠChangelog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ## Ġ 1 . 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġ 3 : Ġchanges ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġ 4 : Ġrc _ 1 . 1 Ġfix ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ## ĠFol ded ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ ĠScenario (" Ñĥ ÑģÐ¿ ÐµÑĪ Ð½Ð°Ñı ĠÐ³ ÐµÐ½ ÐµÑĢ Ð°ÑĨÐ¸Ñı Ġchangelog . md ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ" com . a 6 5 apps . changelog " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchangelog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Version Ġ= Ġ" 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Release Branch Ġ= Ġ" rc _ 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Release Branch Ġ= Ġ" rc _ 1 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate File Ġ= Ġ" template / changelog . must ache " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Ġ= Ġsettings , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Ġ= Ġtemplate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ= Ġbuild , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= Ġexpected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" Ñĥ ÑģÐ¿ ÐµÑĪ Ð½Ð°Ñı ĠÐ³ ÐµÐ½ ÐµÑĢ Ð°ÑĨÐ¸Ñı Ġchangelog . md ĠÐ±ÐµÐ· ĠÑĥÐºÐ°Ð· Ð°Ð½Ð¸Ñı ĠÑĤÐµÐº ÑĥÑī ÐµÐ¹ ĠÐ² ÐµÑĤ ÐºÐ¸ ĠÑĢ ÐµÐ»Ð¸ Ð· Ð° ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ" com . a 6 5 apps . changelog " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchangelog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Version Ġ= Ġ" 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Release Branch Ġ= Ġ" rc _ 1 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate File Ġ= Ġ" template / changelog . must ache " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Ġ= Ġsettings , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Ġ= Ġtemplate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ= Ġbuild , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= Ġexpected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" Ð¿ Ð¾ÑĢ Ñı Ð´ Ð¾Ðº ĠÐ¾ÑĤ ĠÐ¿Ð¾ÑģÐ» ÐµÐ´ Ð½ ÐµÐ³Ð¾ ĠÐº ĠÐ¿ÐµÑĢ Ð² Ð¾Ð¼Ñĥ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . a 6 5 apps . changelog . Log Order ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ" com . a 6 5 apps . changelog " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchangelog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Version Ġ= Ġ" 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Release Branch Ġ= Ġ" rc _ 1 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate File Ġ= Ġ" template / changelog . must ache " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder Ġ= ĠLog Order . LAST _ TO _ FIRST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Ġ= Ġsettings , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Ġ= Ġtemplate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ= Ġbuild , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ# ĠChangelog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ## Ġ 1 . 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġ 4 : Ġrc _ 1 . 1 Ġfix ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġ 3 : Ġchanges ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ## ĠFol ded ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠScenario (" Ñĥ ÑģÐ¿ ÐµÑĪ Ð½Ð°Ñı ĠÐ³ ÐµÐ½ ÐµÑĢ Ð°ÑĨÐ¸Ñı Ġchangelog . md ĠÐ½Ð° ĠÐ¿ Ñĥ ÑĪ ĠÑĤ Ñį Ð³ Ð° ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ" com . a 6 5 apps . changelog " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchangelog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Version Ġ= Ġ" 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Release Branch Ġ= Ġ" rc _ 1 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate File Ġ= Ġ" template / changelog . must ache " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsettings Ġ= Ġsettings , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemplate Ġ= Ġtemplate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ= Ġbuild , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= Ġexpected ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġgit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauthor Ġ= ĠPerson (" anon ", Ġ" anon @ anon . com ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag Ġ= Ġgit . tag . add Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name Ġ= Ġ" 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . tag ger Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . points To Ġ= Ġgit . log (). first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgit . checkout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . branch Ġ= Ġ" 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ Ċ private Ġfun ĠScenario Body . test ( ĊĠĠĠ Ġsettings : ĠString , ĊĠĠĠ Ġtemplate : ĠString , ĊĠĠĠ Ġbuild : ĠString , ĊĠĠĠ Ġexpected : ĠString , ĊĠĠĠ Ġgit Prepare : ĠTest Body .( G rg it ) Ġ-> ĠUnit Ġ= Ġ{} Ċ ) Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġsettings File : ĠFile ĊĠĠĠ Ġlateinit Ġvar Ġbuild File : ĠFile ĊĠĠĠ Ġlateinit Ġvar Ġtemplate File : ĠFile ĊĊĠĠĠ Ġval Ġtemporary Folder : ĠTemporary Folder Ġby Ġmemoized () ĊĊĠĠĠ ĠGiven (" Ð¿ Ð¾Ð´ Ð³ Ð¾ÑĤ Ð¾Ð² Ð»ÐµÐ½ Ñĭ ĠÑĦÐ°Ð¹Ð» Ñĭ ĠÐ¿ÑĢÐ¾ ÐµÐºÑĤ Ð° ") Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings File Ġ= Ġtemporary Folder . new File (" settings . gradle ") ĊĠĠĠĠĠĠĠ Ġbuild File Ġ= Ġtemporary Folder . new File (" build . gradle ") ĊĠĠĠĠĠĠĠ Ġtemporary Folder . new Folder (" template ") ĊĠĠĠĠĠĠĠ Ġtemplate File Ġ= Ġtemporary Folder . new File (" template / changelog . must ache ") ĊĠĠĠĠĠĠĠ Ġtemplate File . mkdir s () ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠGiven (" Ñģ Ð¾Ð´ÐµÑĢÐ¶ Ð¸Ð¼ Ð¾Ðµ Ġsettings . gradle : Ġ$ settings ") Ġ{ ĊĠĠĠĠĠĠĠ Ġsettings File . write Text ( settings ) ĊĠĠĠ Ġ} ĊĠĠĠ ĠAnd (" Ñģ Ð¾Ð´ÐµÑĢÐ¶ Ð¸Ð¼ Ð¾Ðµ Ġbuild . gradle : Ġ$ build ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild File . write Text ( build ) ĊĠĠĠ Ġ} ĊĠĠĠ ĠAnd (" Ñģ Ð¾Ð´ÐµÑĢÐ¶ Ð¸Ð¼ Ð¾Ðµ Ġchangelog . must ache : Ġ$ template ") Ġ{ ĊĠĠĠĠĠĠĠ Ġtemplate File . write Text ( template ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠGiven (" Ð¿ Ð¾Ð´ Ð³ Ð¾ÑĤ Ð¾Ð² Ð»ÐµÐ½ Ġgit ĠÑĢ ÐµÐ¿ Ð¾Ð· Ð¸ÑĤ Ð¾ÑĢ Ð¸Ð¹ ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauthor Ġ= ĠPerson (" anon ", Ġ" anon @ anon . com ") ĊĠĠĠĠĠĠĠ Ġval Ġgit Ġ= ĠG rg it . init Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . dir Ġ= Ġtemporary Folder . root ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtemporary Folder . new File (" init "). write Text (" init ") ĊĠĠĠĠĠĠĠ Ġgit . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . author Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . commit ter Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . message Ġ= Ġ" init " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . all Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgit . checkout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . branch Ġ= Ġ" develop " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . create Branch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtemporary Folder . new File (" rc _ 1 . 0 "). write Text (" rc _ 1 . 0 ") ĊĠĠĠĠĠĠĠ Ġgit . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . author Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . commit ter Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . message Ġ= Ġ" 1 : Ġrc _ 1 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . all Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgit . checkout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . branch Ġ= Ġ" rc _ 1 . 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . create Branch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtemporary Folder . new File (" rc _ 1 . 0 _ fix "). write Text (" rc _ 1 . 0 _ fix ") ĊĠĠĠĠĠĠĠ Ġgit . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . author Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . commit ter Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . message Ġ= Ġ" 2 : Ġrc _ 1 . 0 Ġfix " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . all Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgit . checkout Ġ{ Ġit . branch Ġ= Ġ" develop " Ġ} ĊĊĠĠĠĠĠĠĠ Ġtemporary Folder . new File (" changes "). write Text (" changes ") ĊĠĠĠĠĠĠĠ Ġgit . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . author Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . commit ter Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . message Ġ= Ġ" 3 : Ġchanges " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . all Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgit . checkout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . branch Ġ= Ġ" rc _ 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . create Branch Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtemporary Folder . new File (" rc _ 1 . 1 _ fix "). write Text (" rc _ 1 . 1 _ fix ") ĊĠĠĠĠĠĠĠ Ġgit . commit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . author Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . commit ter Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . message Ġ= Ġ" 4 : Ġrc _ 1 . 1 Ġfix " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . all Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgit . log (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . short Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . git Prepare ( git ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġresult : ĠBuild Result ĊĠĠĠ ĠWhen (" Ð¿ ÑĢÐ¾ Ð¸Ñģ ÑħÐ¾Ð´ Ð¸ÑĤ ĠÐ·Ð°Ð¿ ÑĥÑģ Ðº ĠÐ·Ð°Ð´ Ð°Ñĩ Ð¸ Ġchangelog ") Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= ĠGradle Runner . create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Plugin Classpath () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Project Dir ( temporary Folder . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forward Output () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments (" changelog ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Ja Co Co () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠThen (" Ð· Ð°Ð´ Ð°Ñĩ Ð° ĠÐ· Ð°Ð² ÐµÑĢ ÑĪ Ð¸Ð» Ð°Ñģ ÑĮ ĠÑģ ĠÑĥ ÑģÐ¿ ÐµÑħ Ð¾Ð¼ ") Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( Task Outcome . SUCCESS , Ġresult . task (": changelog ") ?. outcome ) ĊĠĠĠ Ġ} ĊĠĠĠ ĠAnd (" Ñģ Ð¾Ð´ÐµÑĢÐ¶ Ð¸Ð¼ Ð¾Ðµ Ġchangelog . md ĠÑģÐ¾ Ð¾ÑĤ Ð²ÐµÑĤ ÑģÑĤÐ² ÑĥÐµÑĤ ĠÐ¾ Ð¶ Ð¸Ð´ Ð°Ð½Ð¸Ñı Ð¼ : Ġ$ expected ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchangelog Ġ= ĠFile ( temporary Folder . root , Ġ" build / outputs / changelog . md ") ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġchangelog . read Text () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġtext ) ĊĠĠĠ Ġ} Ċ } Ċ