/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠRod ĠMac K enz ie . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . github . ro dm . team city Ċ Ċ import Ġcom . github . ro dm . team city . internal . Default Pipeline Ċ import Ġjet brains . build Server . configs . kotlin . v 2 0 1 9 _ 2 . Build Type Ċ import Ġjet brains . build Server . configs . kotlin . v 2 0 1 9 _ 2 . Build Type Settings . Type . COMP OS ITE Ċ import Ġjet brains . build Server . configs . kotlin . v 2 0 1 9 _ 2 . Build Type Settings . Type . REG ULAR Ċ import Ġjet brains . build Server . configs . kotlin . v 2 0 1 9 _ 2 . Project Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertNotNull Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ Ċ class ĠPipeline Extension Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpipeline : ĠDefault Pipeline ĊĊĠĠĠ Ġprivate Ġfun Ġpipeline ( init : ĠPipeline . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpipeline Ġ= Ġ ĠProject (). pipeline ( init ) Ġas ĠDefault Pipeline ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` define Ġa Ġbuild Ġpipeline Ġfor Ġa Ġproject `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( pipeline ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġpipeline Ġcontains Ġa Ġnamed Ġstage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Build ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġpipeline . stages . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Build ", Ġpipeline . stages [ 0 ]. name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġpipeline Ġcontains Ġmultiple Ġnamed Ġstages `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Build ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Test ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġpipeline . stages . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Test ", Ġpipeline . stages [ 1 ]. name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġhas Ġa Ġnamed Ġcomposite Ġbuild Ġconfiguration `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Build ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstage Ġ= Ġpipeline . stages [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠBuild ", Ġstage . build Type . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( COMP OS ITE , Ġstage . build Type . type ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("", Ġstage . build Type . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġcan Ġhave Ġa Ġdescription `() Ġ{ ĊĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Build ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Build Ġstage Ġdescription " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstage Ġ= Ġpipeline . stages [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" Build Ġstage Ġdescription ", Ġstage . build Type . description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġnames Ġshould Ġbe Ġunique `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Duplicate Name Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Stage ") Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Stage ") Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage Ġname Ġ' Stage ' Ġalready Ġexists ", Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġcomposite Ġbuilds Ġare Ġadded Ġto Ġproject `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Build ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġproject . build Types . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠBuild ", Ġproject . build Types [ 0 ]. name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġwithin Ġa Ġstage Ġadds Ġa Ġregular Ġbuild Ġconfiguration Ġto Ġproject `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Build ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Compile " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġproject . build Types . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Compile ", Ġproject . build Types [ 1 ]. name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( REG ULAR , Ġproject . build Types [ 1 ]. type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stages Ġand Ġbuilds Ġconfiguration Ġorder Ġis Ġdisplay Ġorder `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Build 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Build 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġproject . build Types Order . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 1 ", Ġproject . build Types Order [ 0 ]. name ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Build 1 ", Ġproject . build Types Order [ 1 ]. name ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 2 ", Ġproject . build Types Order [ 2 ]. name ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Build 2 ", Ġproject . build Types Order [ 3 ]. name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sub - project Ġstages Ġand Ġbuilds Ġconfiguration Ġorder Ġis Ġdisplay Ġorder `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Project Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Sub Ġproject Ġ 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Build 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Project Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Sub Ġproject Ġ 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Stage 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Build 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġproject . build Types . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġproject . sub Projects . size ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsub Project 1 Ġ= Ġproject . sub Projects [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsub Project 1 . build Types Order . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 1 ", Ġsub Project 1 . build Types Order [ 0 ]. name ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Build 1 ", Ġsub Project 1 . build Types Order [ 1 ]. name ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsub Project 2 Ġ= Ġproject . sub Projects [ 1 ] ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġsub Project 2 . build Types Order . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 2 ", Ġsub Project 2 . build Types Order [ 0 ]. name ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Build 2 ", Ġsub Project 2 . build Types Order [ 1 ]. name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġdepends Ġon Ġbuilds Ġdefined Ġwithin Ġa Ġstage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Build 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġproject . find Build ByName (" Stage : ĠStage 1 ") ?. dependencies ?. items ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdependencies ?. size ) ĊĠĠĠĠĠĠĠ Ġval Ġdependency Build Ġ= Ġdependencies ?. get ( 0 )?. build TypeId Ġas ĠBuild Type ĊĠĠĠĠĠĠĠ ĠassertEquals (" Build 1 ", Ġdependency Build . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġdepends Ġon Ġanother Ġbuild Ġwithin Ġa Ġstage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Build 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Build 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( build (" Build 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġproject . find Build ByName (" Build 2 ") ?. dependencies ?. items ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdependencies ?. size ) ĊĠĠĠĠĠĠĠ Ġval Ġdependency Build Ġ= Ġdependencies ?. get ( 0 )?. build TypeId Ġas ĠBuild Type ĊĠĠĠĠĠĠĠ ĠassertEquals (" Build 1 ", Ġdependency Build . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġdepends Ġon Ġprevious Ġstage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġproject . find Build ByName (" Stage : ĠStage 2 ") ?. dependencies ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdependencies ?. items ?. size ) ĊĠĠĠĠĠĠĠ Ġval Ġdependency Build Ġ= Ġdependencies ?. items ?. get ( 0 )?. build TypeId Ġas ĠBuild Type ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 1 ", Ġdependency Build . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġdepends Ġon Ġspecified Ġstage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstage 1 Ġ= Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 3 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( stage 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġproject . find Build ByName (" Stage : ĠStage 3 ") ?. dependencies ?. items ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdependencies ?. size ) ĊĠĠĠĠĠĠĠ Ġval Ġdependency Build Ġ= Ġdependencies ?. get ( 0 )?. build TypeId Ġas ĠBuild Type ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 1 ", Ġdependency Build . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġdepends Ġon Ġmultiple Ġearlier Ġstages `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstage 1 Ġ= Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstage 2 Ġ= Ġstage Ġ(" Stage 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 3 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( stage 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( stage 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġproject . find Build ByName (" Stage : ĠStage 3 ") ?. dependencies ?. items ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġdependencies ?. size ) ĊĠĠĠĠĠĠĠ Ġval Ġdependency Build 1 Ġ= Ġdependencies ?. get ( 0 )?. build TypeId Ġas ĠBuild Type ĊĠĠĠĠĠĠĠ Ġval Ġdependency Build 2 Ġ= Ġdependencies [ 1 ]. build TypeId Ġas ĠBuild Type ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 1 ", Ġdependency Build 1 . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 2 ", Ġdependency Build 2 . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġdepends Ġon Ġearlier Ġstage Ġby Ġname `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 3 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On Ġ( stage (" Stage 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġproject . find Build ByName (" Stage : ĠStage 3 ") ?. dependencies ?. items ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdependencies ?. size ) ĊĠĠĠĠĠĠĠ Ġval Ġdependency Build Ġ= Ġdependencies ?. get ( 0 )?. build TypeId Ġas ĠBuild Type ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 1 ", Ġdependency Build . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` lookup Ġby Ġinvalid Ġstage Ġthrows Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Name NotFoundException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage (" Invalid Ġname ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage Ġ' Invalid Ġname ' Ġnot Ġfound ", Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġbuild Ġtype Ġhas Ġid `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstage Build Type Ġ= Ġproject . build Types [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage _ Stage 1 ", Ġstage Build Type . id ?. toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` stage Ġbuild Ġtype Ġhas Ġid Ġwithout Ġwhitespace `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage ĠOne ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstage Build Type Ġ= Ġproject . build Types [ 0 ] ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage _ Stage One ", Ġstage Build Type . id ?. toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġtypes Ġin Ġa Ġstage Ġdepend Ġon Ġthe Ġprevious Ġstage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Build " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġproject . find Build ByName (" Build ") ?. dependencies ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġdependencies ?. items ?. size ) ĊĠĠĠĠĠĠĠ Ġval Ġdependency Build Ġ= Ġdependencies ?. items ?. get ( 0 )?. build TypeId Ġas ĠBuild Type ĊĠĠĠĠĠĠĠ ĠassertEquals (" Stage : ĠStage 1 ", Ġdependency Build . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` default Ġv cs Ġsettings Ġfor Ġstage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstage Build Ġ= Ġproject . find Build ByName (" Stage : ĠStage 1 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstage Build ?. vcs ?. show Dependencies Changes ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstage Build ?. vcs ?. exclude Default Branch Changes ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("+ :* ", Ġstage Build ?. vcs ?. branch Filter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` change Ġv cs Ġsettings Ġfor Ġstage `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Ġ(" Stage 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv cs Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dependencies Changes Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude Default Branch Changes Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch Filter Ġ= Ġ"+ : master " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġstage Build Ġ= Ġproject . find Build ByName (" Stage : ĠStage 1 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstage Build ?. vcs ?. show Dependencies Changes ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstage Build ?. vcs ?. exclude Default Branch Changes ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("+ : master ", Ġstage Build ?. vcs ?. branch Filter ) ĊĠĠĠ Ġ} Ċ } Ċ