package Ġme tri k Ċ Ċ import Ġio . rest ass ured . Rest Ass ured Ċ import Ġio . rest ass ured . http . ContentType Ċ import Ġme tri k . base . Api TestBase Ċ import Ġme tri k . project . domain . model . Pipeline Configuration Ċ import Ġme tri k . project . domain . model . Pipeline Type Ċ import Ġorg . hamcrest . Core Matchers .` is ` Ċ import Ġorg . hamcrest . Core Matchers . notNull Value Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġorg . junit . jupiter . api . Disabled Ċ import Ġorg . junit . jupiter . api . Method Order er Ċ import Ġorg . junit . jupiter . api . Order Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . junit . jupiter . api . TestMethod Order Ċ Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ @ TestMethod Order ( Method Order er . Order Annotation :: class ) Ċ internal Ġclass ĠPipeline Api Test Ġ: ĠApi TestBase () Ġ{ ĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun ĠsetUp Pipeline TestData () Ġ{ ĊĠĠĠĠĠĠĠ Ġmongo Template . save ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPipeline Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" 6 0 1 cbb 3 4 2 5 c 1 3 9 2 1 1 7 aa 0 5 3 b ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= Ġ" 6 0 1 cb ae 8 2 5 c 1 3 9 2 1 1 7 aa 0 4 2 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" df ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġ" E 9 fn MY 3 U GE 6 O ms 3 5 J zL Gg Q ==", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredential Ġ= Ġ" F VS R / 5 o 1 BY h 6 d JQ Be Q aN v Q ==", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" http :// localhost : 8 0 0 1 / job / 4 km - df /", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠPipeline Type . J EN K INS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmongo Template . save ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPipeline Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" 6 0 1 cb ae 8 2 5 c 1 3 9 2 1 1 7 aa 0 4 2 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= Ġ" 6 0 1 cb ae 8 2 5 c 1 3 9 2 1 1 7 aa 0 4 2 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" cf r ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġ" E 9 fn MY 3 U GE 6 O ms 3 5 J zL Gg Q ==", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredential Ġ= Ġ" F VS R / 5 o 1 BY h 6 d JQ Be Q aN v Q ==", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" http :// localhost : 8 0 0 1 / job / 4 km - cf r /", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠPipeline Type . J EN K INS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 1 ) ĊĠĠĠ Ġfun Ġ` should Ġget Ġpipeline Ġconfig Ġdetails Ġwith Ġa Ġvalid ĠID `() Ġ{ ĊĠĠĠĠĠĠĠ ĠRest Ass ured ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( ContentType . JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ("/ api / project / 6 0 1 cb ae 8 2 5 c 1 3 9 2 1 1 7 aa 0 4 2 9 / pipeline / 6 0 1 cbb 3 4 2 5 c 1 3 9 2 1 1 7 aa 0 5 3 b ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body (" id ", Ġ` is ` (" 6 0 1 cbb 3 4 2 5 c 1 3 9 2 1 1 7 aa 0 5 3 b ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body (" name ", Ġ` is ` (" df ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body (" username ", Ġ` is ` (" E 9 fn MY 3 U GE 6 O ms 3 5 J zL Gg Q ==" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body (" credential ", Ġ` is ` (" F VS R / 5 o 1 BY h 6 d JQ Be Q aN v Q ==" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body (" url ", Ġ` is ` (" http :// localhost : 8 0 0 1 / job / 4 km - df / ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body (" type ", Ġ` is ` (" J EN K INS ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 2 ) ĊĠĠĠ Ġfun Ġ` should Ġthrow Ġ 4 0 0 Ġerror Ġwhen Ġpipeline Ġconfig Ġtype Ġif Ġun recognized Ġpipeline Ġtype Ġreceived `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type ": Ġ" CIR CLE _ CI ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" url ": Ġ" https :// circleci . com / thought works / met rik ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" credential ": Ġ" circleci _ token " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ ĠRest Ass ured ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( ContentType . JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( request Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ("/ api / pipeline / verify ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 4 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ ĠRight Ġnow Ġthe Ġfollowing Ġtest Ġcan Ġalways Ġpass , Ġbecause Ġthe Ġconfig Ġtype Ġwill Ġalways Ġfallback Ġto Ġthe Ġdefault Ġempty Ġimplementation Ġof ĠPipeline Service . ĊĠĠĠ Ġ// Ġ ĠOnce ĠGithub Actions Ġimplementation Ġis Ġadded , Ġthese Ġtests Ġshould Ġbe Ġenabled Ġimmediately Ġwith Ġnecessary Ġmocks . ĠConsider Ġusing Ġwire mock Ġto Ġstub Ġthe ĠGithub Ġresponse . ĊĠĠĠ Ġ@ Disabled ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 2 ) ĊĠĠĠ Ġfun Ġ` should Ġverify Ġa ĠGithub ĠActions Ġpipeline Ġconfig Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type ": Ġ" GITHUB _ ACTION S ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" url ": Ġ" https :// github . com / thought works / met rik ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" credential ": Ġ" gh p _ wx 4 W nm Vo OD 9 4 6 e H NC RO H 7 f UU 6 h ZZ bq 2 y 9 FT z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ ĠRest Ass ured ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( ContentType . JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( request Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ("/ api / pipeline / verify ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Disabled ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 3 ) ĊĠĠĠ Ġfun Ġ` should Ġverify Ġand Ġsave Ġa Ġpipeline Ġconfig Ġsuccessfully `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name ": Ġ" a Ġgithub Ġactions Ġproject ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" type ": Ġ" GITHUB _ ACTION S ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" url ": Ġ" https :// github . com / thought works / met rik ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" credential ": Ġ" gh p _ wx 4 W nm Vo OD 9 4 6 e H NC RO H 7 f UU 6 h ZZ bq 2 y 9 FT z " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ ĠRest Ass ured ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( ContentType . JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( request Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ("/ api / project / 6 0 1 cb ae 8 2 5 c 1 3 9 2 1 1 7 aa 0 4 2 9 / pipeline ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Disabled ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 4 ) ĊĠĠĠ Ġfun Ġ` should Ġget Ġall Ġpipelines Ġconfigured Ġfor Ġthe Ġproject Ġwith Ġa Ġvalid Ġproject ĠID `() Ġ{ ĊĠĠĠĠĠĠĠ ĠRest Ass ured ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. given () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( ContentType . JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ("/ api / project / 6 0 1 cb ae 8 2 5 c 1 3 9 2 1 1 7 aa 0 4 2 9 / pipelines - stages ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. statusCode ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 0 ]. pipeline Id ", Ġnot NullValue ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 0 ]. pipeline Name ", Ġ` is ` (" a Ġgithub Ġactions Ġproject ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 0 ]. stages ", Ġnot NullValue ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 1 ]. pipeline Id ", Ġ` is ` (" 6 0 1 cb ae 8 2 5 c 1 3 9 2 1 1 7 aa 0 4 2 9 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 1 ]. pipeline Name ", Ġ` is ` (" cf r ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 1 ]. stages ", Ġnot NullValue ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 2 ]. pipeline Id ", Ġ` is ` (" 6 0 1 cbb 3 4 2 5 c 1 3 9 2 1 1 7 aa 0 5 3 b ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 2 ]. pipeline Name ", Ġ` is ` (" df ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ("[ 2 ]. stages ", Ġnot NullValue ()) ĊĠĠĠ Ġ} Ċ } Ċ