package Ġcom . cd sap . tal ai ot . e 2 e Ċ Ċ import Ġio . kot lint est . specs . Behavior Spec Ċ import Ġorg . gradle . test kit . runner . Gradle Runner Ċ import Ġorg . gradle . test kit . runner . Task Outcome Ċ Ċ class ĠPush Gateway Publisher Build Test Ġ: ĠBehavior Spec ({ ĊĠĠĠ Ġgiven (" Build ĠGradle ĠFile ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Project Dir Ġ= ĠTemporary Folder () ĊĠĠĠĠĠĠĠ Ġ` when ` (" T al ai ot Ġis Ġincluded Ġwith ĠPush Gateway Publisher ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Project Dir . create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild File Ġ= Ġtest Project Dir . new File (" build . gradle ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild File . append Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' java ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ' com . cd sap . tal ai ot ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtal ai ot { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġcom . cd sap . tal ai ot . logger . Log Tracker . Mode . INFO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublish ers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpush Gateway Publisher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" http :// localhost : 9 0 9 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Job Name Ġ= Ġ" tracking " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠGradle Runner . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Project Dir ( test Project Dir . getRoot ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Arguments (" assemble ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Plugin Classpath () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( result . output ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthen (" logs Ġare Ġshown Ġin Ġthe Ġoutput Ġand Ġincluding Ġthe Ġpush Gateway Ġformat ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( result . output . contains (": assemble { state =\" EXECUT ED \ "," )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert ( result . task (": assemble ") ?. outcome Ġ== ĠTask Outcome . SUCCESS ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Project Dir . delete () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ