package Ġlit . f ass . server Ċ Ċ import Ġcom . github . kit tin un f . fuel . core . extensions . authentication Ċ import Ġcom . github . kit tin un f . fuel . http Get Ċ import Ġcom . github . kit tin un f . fuel . http Post Ċ import Ġcom . github . kit tin un f . fuel . jackson . jackson Deserializer Of Ċ import Ġcom . github . kit tin un f . fuel . jackson . object Body Ċ import Ġlit . f ass . server . helper . Test Types . Api Test Ċ import Ġlit . f ass . server . helper . Test container Cluster Support Ċ import Ġlit . f ass . server . persistence . Collection Config Persistence Service . Companion . COLLECTION _ CONFIG _ TABLE Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . await ility . Await ility . with Ċ import Ġorg . junit . jupiter . api .* Ċ import Ġorg . junit . jupiter . api . Method Order er . Order Annotation Ċ import Ġorg . junit . jupiter . api . Test Instance . Lifecycle . PER _ CLASS Ċ import Ġorg . springframework . core . io . Class Path Resource Ċ import Ġjava . util . concurrent . TimeUnit . SECONDS Ċ Ċ /** Ċ Ġ* Ġ@ author ĠMichael ĠM air Ċ Ġ*/ Ċ @ Tag ( Api Test ) Ċ @ Test Instance ( PER _ CLASS ) Ċ @ TestMethod Order ( Order Annotation :: class ) Ċ internal Ġclass ĠCollection Api Cluster Test Ġ: ĠTest container Cluster Support () Ġ{ ĊĊĠĠĠ Ġ@ After All ĊĠĠĠ Ġfun Ġcleanup Tests () Ġ{ ĊĠĠĠĠĠĠĠ Ġdrop Table (" bar ") ĊĠĠĠĠĠĠĠ Ġdrop Table (" foo ") ĊĠĠĠĠĠĠĠ Ġclear Table ( COLLECTION _ CONFIG _ TABLE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 1 ) ĊĠĠĠ Ġfun Ġ` collections Ġ{ collection } ĠGET Ġendpoint `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ"${ baseUrl 1 () }/ configs " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. http Post () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. authentication (). basic (" admin ", Ġ" admin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( Class Path Resource (" bar . yml "). file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsecond ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( response . statusCode ). isEqualTo ( 2 0 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"${ baseUrl 2 () }/ collections / bar ? foo = bar & param 1 = foo & param 1 = bar & param 2 = true " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. http Get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsecond ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( response . statusCode ). isEqualTo ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat ( ag gregated Logs ()). contains (" Saved Ġcollection Ġbar ") ĊĠĠĠĠĠĠĠ Ġwith (). poll Delay ( 3 , ĠSE CON DS ). await (). until Ġ{ Ġselect All From Table (" bar "). size Ġ== Ġ 2 Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat ( lit f ass Server 2 . logs ). contains (" Invalid ating Ġconfig Ġbar ") ĊĠĠĠĠĠĠĠ ĠassertThat ( lit f ass Server 3 . logs ). contains (" Invalid ating Ġconfig Ġbar ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 2 ) ĊĠĠĠ Ġfun Ġ` collections Ġ{ collection } Ġid ĠGET Ġendpoint `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ"${ baseUrl 3 () }/ collections / bar / 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. http Get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. authentication (). basic (" admin ", Ġ" admin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. response Object < Map < String , ĠAny ?> >( jackson Deserializer Of ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġthird . component 1 () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result [" id "]). isEqualTo (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result [" bar "]). isEqualTo ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (( result [" foo "] Ġas ĠMap < *, Ġ* >) [" foo "]). isEqualTo (" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (( result [" foo "] Ġas ĠMap < *, Ġ* >) [" param 1 "]). isEqualTo (" bar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (( result [" foo "] Ġas ĠMap < *, Ġ* >) [" param 2 "]). isEqualTo (" true ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (( result [" foo "] Ġas ĠMap < *, Ġ* >) [" timestamp "]). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat ( ag gregated Logs ()). contains (" Getting Ġcollection Ġdata Ġfor Ġbar Ġwith Ġid Ġ 1 Ġfor Ġuser Ġadmin ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 3 ) ĊĠĠĠ Ġfun Ġ` collections Ġ{ collection } Ġid ĠGET Ġendpoint Ġfor Ġsecond Ġentry `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ"${ baseUrl 1 () }/ collections / bar / 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. http Get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. authentication (). basic (" admin ", Ġ" admin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. response Object < Map < String , ĠAny ?> >( jackson Deserializer Of ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġthird . component 1 () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result [" id "]). isEqualTo (" 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result [" bar "]). isEqualTo ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (( result [" foo "] Ġas ĠMap < *, Ġ* >) [" bl ub "]). isEqualTo (" serv us ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat ( ag gregated Logs ()). contains (" Getting Ġcollection Ġdata Ġfor Ġbar Ġwith Ġid Ġ 2 Ġfor Ġuser Ġadmin ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 4 ) ĊĠĠĠ Ġfun Ġ` collections Ġ{ collection } ĠPOST Ġendpoint `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ"${ baseUrl 2 () }/ configs " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. http Post () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. authentication (). basic (" admin ", Ġ" admin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( Class Path Resource (" foo . yml "). file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsecond ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( response . statusCode ). isEqualTo ( 2 0 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"${ baseUrl 3 () }/ collections / foo ? param 1 = foo & param 1 = bar & param 2 = true " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. http Post () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. object Body ( map Of (" id " Ġto Ġ" 1 ", Ġ" foo " Ġto Ġ" bar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsecond ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( response . statusCode ). isEqualTo ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith (). poll Delay ( 3 , ĠSE CON DS ). await (). until Ġ{ Ġselect All From Table (" foo "). size Ġ== Ġ 1 Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat ( ag gregated Logs ()). contains (" Saved Ġcollection Ġfoo ") ĊĠĠĠĠĠĠĠ ĠassertThat ( lit f ass Server 1 . logs ). contains (" Invalid ating Ġconfig Ġfoo ") ĊĠĠĠĠĠĠĠ ĠassertThat ( lit f ass Server 3 . logs ). contains (" Invalid ating Ġconfig Ġfoo ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Order ( 5 ) ĊĠĠĠ Ġfun Ġ` collections Ġ{ collection } ĠPOST Ġendpoint Ġremoves Ġcollection Ġitem `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ"${ baseUrl 3 () }/ collections / foo ? action = delete " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. http Post () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. object Body ( map Of (" id " Ġto Ġ" 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġsecond ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( response . statusCode ). isEqualTo ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThat ( ag gregated Logs ()). contains (" Removed Ġcollection Ġfoo ") ĊĠĠĠĠĠĠĠ Ġwith (). poll Delay ( 3 , ĠSE CON DS ). await (). until Ġ{ Ġselect All From Table (" foo "). size Ġ== Ġ 0 Ġ} ĊĠĠĠ Ġ} Ċ Ċ }