package Ġcom . netflix . spin n aker . ke el . rest Ċ Ċ import Ġcom . fasterxml . jackson . module . kotlin . readValue Ċ import Ġcom . netflix . spin n aker . ke el . Ke el Application Ċ import Ġcom . netflix . spin n aker . ke el . SP IN NA KER _ API _ V 1 Ċ import Ġcom . netflix . spin n aker . ke el . act uation . Resource Pers ister Ċ import Ġcom . netflix . spin n aker . ke el . api . artifacts . Deb ian Artifact Ċ import Ġcom . netflix . spin n aker . ke el . constraints . Constraint State Ċ import Ġcom . netflix . spin n aker . ke el . constraints . Constraint Status . OVERRIDE _ PASS Ċ import Ġcom . netflix . spin n aker . ke el . constraints . Constraint Status . PENDING Ċ import Ġcom . netflix . spin n aker . ke el . core . api . Dep ends On Constraint Ċ import Ġcom . netflix . spin n aker . ke el . core . api . Submitted Delivery Config Ċ import Ġcom . netflix . spin n aker . ke el . core . api . Submitted Environment Ċ import Ġcom . netflix . spin n aker . ke el . core . api . Submitted Resource Ċ import Ġcom . netflix . spin n aker . ke el . persistence . memory . InMemory Artifact Repository Ċ import Ġcom . netflix . spin n aker . ke el . persistence . memory . InMemory Delivery Config Repository Ċ import Ġcom . netflix . spin n aker . ke el . persistence . memory . InMemory Resource Repository Ċ import Ġcom . netflix . spin n aker . ke el . serialization . configured ObjectMapper Ċ import Ġcom . netflix . spin n aker . ke el . serialization . configured Yaml Mapper Ċ import Ġcom . netflix . spin n aker . ke el . spring . test . Mock E ureka Configuration Ċ import Ġcom . netflix . spin n aker . ke el . test . Dummy Resource Spec Ċ import Ġcom . netflix . spin n aker . ke el . yaml . APPLICATION _ YAML Ċ import Ġdev . min ut est . junit . JUnit 5 Min ut ests Ċ import Ġdev . min ut est . root Context Ċ import Ġorg . hamcrest . Core Matchers . contains String Ċ import Ġorg . hamcrest . Core Matchers . not Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . autoconfigure . web . servlet . Auto Configure MockMvc Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . boot . test . context . SpringBootTest . Web Environment . MOCK Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . http . MediaType . APPLICATION _ JSON Ċ import Ġorg . springframework . test . context . junit . jupiter . Spring Extension Ċ import Ġorg . springframework . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . Result Actions Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders . get Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders . post Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . content Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . status Ċ import Ġstri kt . api . expect Catch ing Ċ import Ġstri kt . api . expect That Ċ import Ġstri kt . assertions . has Size Ċ import Ġstri kt . assertions . isEmpty Ċ import Ġstri kt . assertions . isEqualTo Ċ import Ġstri kt . assertions . isNotNull Ċ import Ġstri kt . assertions . succeeded Ċ Ċ @ Extend With ( Spring Extension :: class ) Ċ @ SpringBootTest ( ĊĠ Ġclasses Ġ= Ġ[ Ke el Application :: class , ĠMock E ureka Configuration :: class , ĠDummy Resource Configuration :: class ], ĊĠ Ġweb Environment Ġ= ĠMOCK Ċ ) Ċ @ Auto Configure MockMvc Ċ internal Ġclass ĠDelivery Config Controller Tests Ġ: ĠJ Unit 5 Min ut ests Ġ{ ĊĊĠ Ġ@ Autowired ĊĠ Ġlateinit Ġvar Ġm vc : ĠMock Mvc ĊĊĠ Ġ@ Autowired ĊĠ Ġlateinit Ġvar Ġdelivery Config Repository : ĠIn Memory Delivery Config Repository ĊĊĠ Ġ@ Autowired ĊĠ Ġlateinit Ġvar Ġresource Repository : ĠIn Memory Resource Repository ĊĊĠ Ġ@ Autowired ĊĠ Ġlateinit Ġvar Ġartifact Repository : ĠIn Memory Artifact Repository ĊĊĠ Ġ@ Autowired ĊĠ Ġlateinit Ġvar Ġresource Pers ister : ĠResource Pers ister ĊĊĠ Ġfun Ġtests () Ġ= Ġroot Context Ġ{ ĊĠĠĠ Ġafter Ġ{ ĊĠĠĠĠĠ Ġdelivery Config Repository . drop All () ĊĠĠĠĠĠ Ġresource Repository . drop All () ĊĠĠĠĠĠ Ġartifact Repository . drop All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcontext (" getting Ġa Ġdelivery Ġconfig Ġmanifest ") Ġ{ ĊĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠ Ġresource Pers ister . upsert ( ĊĠĠĠĠĠĠĠĠĠ ĠSub mitted Delivery Config ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" ke el - manifest ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Ġ= Ġ" ke el ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice Account Ġ= Ġ" ke el @ spin n aker ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifacts Ġ= Ġset Of ( Deb ian Artifact ( name Ġ= Ġ" ke el ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenvironments Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSub mitted Environment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" test ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources Ġ= Ġset Of ( Submitted Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠapiVersion Ġ= Ġ" test .$ SP IN NA KER _ API _ V 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind Ġ= Ġ" wh atever ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspec Ġ= ĠDummy Resource Spec ( data Ġ= Ġ" resource Ġin Ġtest ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSub mitted Environment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" prod ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources Ġ= Ġset Of ( Submitted Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠapiVersion Ġ= Ġ" test .$ SP IN NA KER _ API _ V 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkind Ġ= Ġ" wh atever ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspec Ġ= ĠDummy Resource Spec ( data Ġ= Ġ" resource Ġin Ġprod ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints Ġ= Ġset Of ( Dep ends On Constraint (" test ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġset Of ( APPLICATION _ YAML , ĠAP PLICATION _ JSON ). forEach Ġ{ ĠcontentType Ġ-> ĊĠĠĠĠĠĠĠ Ġderived Context < Result Actions >(" getting Ġa Ġdelivery Ġconfig Ġas Ġ$ contentType ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfixture Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ delivery - configs / ke el - manifest ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( contentType ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġtest (" the Ġrequest Ġis Ġsuccessful ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġtest (" the Ġresponse Ġcontent Ġtype Ġis Ġcorrect ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( content (). contentType Compatible With ( contentType )) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcontext (" submit ting Ġa Ġdelivery Ġconfig Ġmanifest ") Ġ{ ĊĠĠĠĠĠ Ġval Ġyaml Payload Ġ= ĊĠĠĠĠĠĠĠ Ġ""" --- ĊĠĠĠĠĠĠĠ Ġ| name : Ġke el - manifest ĊĠĠĠĠĠĠĠ Ġ| application : Ġke el ĊĠĠĠĠĠĠĠ Ġ| service Account : Ġke el @ spin n aker ĊĠĠĠĠĠĠĠ Ġ| artifacts : ĊĠĠĠĠĠĠĠ Ġ|- Ġname : Ġke el ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġtype : Ġdeb ĊĠĠĠĠĠĠĠ Ġ| environments : ĊĠĠĠĠĠĠĠ Ġ|- Ġname : Ġtest ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġresources : ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ- ĠapiVersion : Ġtest . spin n aker . netflix . com / v 1 ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġkind : Ġwhatever ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġspec : ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġdata : Ġresource Ġin Ġtest ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġapplication : Ġsome app ĊĠĠĠĠĠĠĠ Ġ|- Ġname : Ġprod ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġconstraints : ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ- Ġtype : Ġdepends - on ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġenvironment : Ġtest ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ- Ġtype : Ġallowed - times ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġwindows : ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ- Ġhours : Ġ 6 - 1 8 ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġdays : Ġmon - f ri ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġresources : ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ- ĠapiVersion : Ġtest . spin n aker . netflix . com / v 1 ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġkind : Ġwhatever ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġspec : ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġdata : Ġresource Ġin Ġprod ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġapplication : Ġsome app ĊĠĠĠĠĠĠĠ Ġ| """ ĊĠĠĠĠĠĠĠĠĠ Ġ. trim Margin () ĊĊĠĠĠĠĠ Ġval Ġjson Payload Ġ= ĊĠĠĠĠĠĠĠ Ġ""" { ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ" name ": Ġ" ke el - manifest ", ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ" application ": Ġ" ke el ", ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ" service Account ": Ġ" ke el @ spin n aker ", ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ" artifacts ": Ġ[ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" name ": Ġ" ke el ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" type ": Ġ" deb " ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ], ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ" environments ": Ġ[ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" name ": Ġ" test ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" resources ": Ġ[ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" apiVersion ": Ġ" test . spin n aker . netflix . com / v 1 ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" kind ": Ġ" wh atever ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" spec ": Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ" data ": Ġ" resource Ġin Ġtest ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ" application ": Ġ" some app " ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ] ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" name ": Ġ" prod ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" constraints ": Ġ[ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" type ": Ġ" depends - on ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" environment ": Ġ" test " ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" type ": Ġ" allowed - times ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" windows ": Ġ[ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" hours ": Ġ" 6 - 1 8 ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" days ": Ġ" Monday - Friday ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" tz ": Ġ" America / Los _ An ge les " ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ] ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" type ": Ġ" manual - judge ment " ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ], ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ" resources ": Ġ[ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" apiVersion ": Ġ" test . spin n aker . netflix . com / v 1 ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" kind ": Ġ" wh atever ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ" spec ": Ġ{ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ" data ": Ġ" resource Ġin Ġprod ", ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ" application ": Ġ" some app " ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠ Ġ] ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġ] ĊĠĠĠĠĠĠĠ Ġ| } """ ĊĠĠĠĠĠĠĠĠĠ Ġ. trim Margin () ĊĊĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠ ĠAP PLICATION _ YAML Ġto Ġyaml Payload , ĊĠĠĠĠĠĠĠ ĠAP PLICATION _ JSON Ġto Ġjson Payload ĊĠĠĠĠĠ Ġ). forEach Ġ{ Ġ( contentType , Ġpayload ) Ġ-> ĊĠĠĠĠĠĠĠ Ġderived Context < Result Actions >(" pers isting Ġa Ġdelivery Ġconfig Ġas Ġ$ contentType ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfixture Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ delivery - configs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( payload ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġtest (" the Ġrequest Ġis Ġsuccessful ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġtest (" the Ġmanifest Ġis Ġpersisted ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect Catch ing Ġ{ Ġdelivery Config Repository . get (" ke el - manifest ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. succeeded () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġtest (" each Ġindividual Ġresource Ġis Ġpersisted ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( resource Repository . size ()). isEqualTo ( 2 ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġtest (" prod Ġconstraint Ġis Ġpersisted ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelivery Config Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get (" ke el - manifest ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. environments ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġit . name Ġ== Ġ" prod " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . constraints ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). isNotNull () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġcontext (" no Ġenvironments Ġwith Ġstate ful Ġconstraints Ġhave Ġbeen Ġevaluated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest (" no Ġconstraint Ġstate ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Prod Constraint Response ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠResponse Ġassertions Ġthat Ġaren 't Ġdependent Ġon ĠcontentType Ġor Ġde serialization ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). string ( not ( contains String (" status ")) )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstates Ġ= Ġget Prod Constraint States ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( states ). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġderived Context < Result Actions >(" interact ing Ġwith Ġmanual Ġjudge ment ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconstraint State Yaml Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" --- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| type : Ġmanual - judge ment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| artifact Version : Ġke el - 1 . 0 . 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| status : ĠOVER RIDE _ PASS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconstraint State Json Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" type ": Ġ" manual - judge ment ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" artifact Version ": Ġ" ke el - 1 . 0 . 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ" status ": Ġ" OVERRIDE _ PASS " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixture Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjudge ment Ġ= ĠConstraint State (" ke el - manifest ", Ġ" prod ", Ġ" ke el - 1 . 0 . 2 ", Ġ" manual - judge ment ", ĠP ENDING ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelivery Config Repository . store Constraint State ( judge ment ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Prod Constraint Response ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest (" pending Ġmanual Ġjudge ment ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( content (). string ( contains String (" manual - judge ment "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( content (). string ( contains String (" PENDING "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġderived Context < Result Actions >(" appro ving Ġmanual Ġjudge ment ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfixture Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ delivery - configs / ke el - manifest / environment / prod / constraint ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( when Ġ( contentType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAP PLICATION _ YAML Ġ-> Ġconstraint State Yaml ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġconstraint State Json ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġ" ke el ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest (" judge ment Ġis Ġpersisted ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( status (). is Ok ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjudge ment Ġ= Ġdelivery Config Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Constraint State (" ke el - manifest ", Ġ" prod ", Ġ" ke el - 1 . 0 . 2 ", Ġ" manual - judge ment ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( judge ment ). isNotNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( judge ment !!. status ). isEqualTo ( OVERRIDE _ PASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( judge ment . jud ged By ). isEqualTo (" ke el ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest (" pers isted Ġjudge ment Ġis Ġin Ġrest Ġresponse ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstates Ġ= Ġget Prod Constraint States ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( states ). has Size ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( states . first ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( status ). isEqualTo ( OVERRIDE _ PASS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpect That ( jud ged By ). isEqualTo (" ke el ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġderived Context < Result Actions >(" the Ġsubmitted Ġmanifest Ġis Ġmissing Ġa Ġrequired Ġfield ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfixture Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmapper Ġ= Ġwhen Ġ( contentType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAP PLICATION _ YAML Ġ-> Ġconfigured Yaml Mapper () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġconfigured ObjectMapper () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinvalid Payload Ġ= Ġmapper ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. readValue < Map < String , ĠAny ?> >( payload ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġit Ġ- Ġ" service Account " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let ( mapper :: writeValue AsString ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ delivery - configs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( invalid Payload ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġtest (" the Ġrequest Ġfails ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( status (). is BadRequest ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġderived Context < Result Actions >(" the Ġsubmitted Ġmanifest Ġis Ġun parse able ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfixture Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ delivery - configs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( contentType ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT Ì « Ì º Ì ³ o Ì ¬ Ì ľ ĠÃ ¬ Ì ¬ Í İ Ì ² Ì Ł nv Ì ĸ Ì Ĺ Ì » Ì £ Ì ¹ Ì ķ o Í ĸ Ì Ĺ Ì ł Ì ľ Ì ¤ k Í į Í ļ Ì ¹ Í ĸ Ì ¼ e Ì ¦ Ì Ĺ Ì ª Í į Ì ª Í į Ġ Ì ¬ Í ħ t Ì ķ h Ì ł Í Ļ Ì ® Í ķ Í ĵ e Ì ± Ì ľ Ì Ĺ Í Ļ Ì Ń Ġ Ì ¥ Í Ķ Ì « Í Ļ Ì ª Í į Ì £ Í Ŀ á ¸ ¥ i Ì ¼ Ì ¦ Í Ī Ì ¼ v Ò ī Ì © Ì Ł Í ļ Ì ŀ Í İ e Í Ī Ì Ł Ì » Í Ļ Ì ¦ Ì ¤ - m Ì · Ì ĺ Ì Ŀ Ì ± ÃŃ Í ļ Ì ŀ Ì ¦ Ì ³ n Ì Ŀ Ì ² Ì ¯ Ì Ļ Ì ® Í ŀ d Ì ´ Ì º Ì ¦ Í ķ Ì « Ġ Ì Ĺ Ì Ń Ì ĺ Í İ Í ĸ r Ì ŀ Í İ Ì ľ Ì ľ Í ĸ Í İ Ì « Í ¢ ep Í ĩ r Ì Ŀ Ì ¯ Ì Ŀ Í ĸ Í ī Í İ Ì º e Ì ´ s Ì ¥ e Ì µ Ì ĸ Ì ³ Í ī Í į Ì © Ì Ĺ n Ì ¢ Í ĵ Ì ª Í ķ Ì ľ Ì ° Ì ł Ì ¦ t Ì º Ì ŀ Ì ° i Í Ł n Ò ī Ì ® Ì ¦ Ì ĸ Ì Ł g Ì ® Í į Ì ± Ì » Í į Ì ľ Ì ³ Ġ Ì ³ c Ì ĸ Ì ® Ì Ļ Ì £ Ì ° Ì ł Ì © h Ì · Ì Ĺ Í į Ì ĸ Í Ļ Ì Ń Í ĩ Í Ī a Ì § Í İ Ì ¯ Ì ¹ Ì ² Ì º Ì « Ã³ Ì Ń Ì ŀ Ì ľ Ì £ Ì ¯ Í ķ s Ì ¶ Ì ¤ Ì ® Ì © Ì ĺ . Ì ¨ Ì » Ì ª Ì ĸ Í Ķ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ Ì ³ Ì Ń Ì ¦ Ì Ń Ì Ń Ì ¦ Ì ŀ Ìģ I Ì ł Í į Ì ® n Í ĩ Ì ¹ Ì ª Ì ¬ v Ì ´ Í ĸ Ì Ń Ì Ĺ Ì ĸ o Ì ¸ k Ò ī Ì ¬ Ì ¤ Í ĵ Í ļ Ì ł Í į i Í ľ n Ì Ľ Ì © Ì ¹ Í ī Ì ĺ Ì ¹ g Í Ļ Ġ Ì ł Ì ¥ Í ħ t Ì ° Í ĸ Í ŀ h Ì « Ì ¼ Ì ª e Ì Ł Ì © Ì Ŀ Ġ Ì Ń Ì ł Ì ² Ì « Í Ķ fe Ì ¤ Í ĩ Ì Ŀ Ì ± e Í ĸ Ì ® Ì ł Ì ¹ Ì Ń Í ĸ Í ķ l Í ĸ Ì ² Ì ĺ Í ĸ Ì ł Ì ª i Ì ¢ Ì ĸ Í İ Ì ® Ì Ĺ Ì ¯ Í ĵ Ì © n Ì ¸ Ì ° g Ì Ļ Ì ± Ì ĺ Ì Ĺ Í ļ Ì ¬ Í ħ Ġ Í į o Í į Í į Ì © Ì ® Í ¢ f Ì ĸ Í ĵ Ì ¦ Ì ¥ Ġ Ì ĺ Í ĺ c Ì µ Ì « Ì ± Ì Ĺ Í ļ Í ĵ Ì ¦ h Í Ŀ a Ì Ŀ Í į Í į Ì ³ Ì £ Í ĸ Í ī o Í Ļ Ì Ł s Ì ¤ Ì ŀ . Ì Ļ Ì Ŀ Ì Ń Ì £ Ì ³ Ì ¼ Í Ł ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ Ì ¢ Ì » Í ĸ Í ĵ Ì ¬ Ì ŀ Ì ° Ì ¦ W Ì ® Ì ² Ì Ŀ Ì ¼ Ì © Ì Ŀ Í ĸ i Í ĸ Í ĸ Í ¡ Í ħ t Ì ĺ Ì ¯ Í ĺ h Ì · Ì ¬ Ì ĸ Ì ŀ Ì Ļ Ì ° Ì Ń Ì ³ Ġ Ì Ń Ì ª Ì ķ o Ì ¥ Ì ¤ Ì º Ì Ŀ Ì ¼ Ì ° Ì ¯ Í Ł á¹ ³ Ì ŀ Ì Ń Ì ¤ t Ì ¨ Í ļ Ì ¥ Ì Ĺ Ġ Ì Ł Ì º Ì « Ì © Ì ¤ Ì ³ Ì © o Ì Ł Ì ° Ì © Ì ĸ Í ħ r Ì ŀ Ì ĺ Ì « Ì © Ì ¼ d Ì ¡ Í į Ì ¬ Í İ Ì ª Ì º Í ļ Í Ķ e Í ĵ Í ĸ Ì Ŀ Ì Ļ r Ì ° Í ĸ Ì ² Ì ² Ì » Ì ł . Ì º Ì Ŀ Ì º Ì Ł Í Ī ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ Ì £ Ì Ń T Ì ª Ì © Ì ¼ h Ì ¥ Ì « Ì ª Í Ķ ÌĢ e Ì « Ì ¯ Í ľ Ġ Ì ¨ N Ì Ł e Ò ī Í Ķ Ì ¤ zp Ì ® Ì Ń Í Ī Ì Ł Ã© Í ī Í Ī á¹ Ľ Ì ¹ Ì ľ Ì º Ì Ń Í ķ d Ì º Ì ª Ì ľ Í ĩ Í ĵ i Ì ŀ Ã¡ Í ķ Ì ¹ Ì £ Ì » n Í ī Í ĺ Ġ Ì Ĺ Í Ķ Ì Ń Í ¡ h Ì ² Í ĸ Ì £ Ì º Ì º i Í Ķ Ì £ Ì ĸ Ì ¤ Í İ Ì ¯ v Ì ł Ì ¯ Ì ĺ Í ĸ Ì Ń Ì ± Ì ¯ e Ì ¡ Ì ¥ Í ķ - m Í ĸ Ì Ń Ì £ Ì ¬ Ì ¦ Í Ī i Í ĸ n Ì ŀ Ì © Í ķ Ì Ł Ì ¼ Ì º Í ľ d Ì ĺ Í ī Ġ Ì ¯ o Ì · Í ĩ Ì ¹ Í ķ Ì ¦ f Ì ° Ì ± Ġ Ì Ŀ Í ĵ Í ī Ì ± Ì ª Ì ª c Í Ī Ì ² Ì ľ Ì º h Ì ĺ Í ļ a Ì ŀ Í Ķ Ì Ń Ì ° Ì ¯ Ì Ĺ Ì Ŀ o Ì Ļ Í į s Í į Í ĩ Ì ± Í ĵ . Ì µ Í ķ Ì ° Í Ļ Í Ī Í ħ Ġ Ì ¯ Ì ŀ Í Ī Ì ŀ Ì ± Ì ĸ Z Ì ¯ Ì ® Ì º Ì ¤ Ì ¥ Ì ª Ì ķ a Í ı Ì º Ì Ĺ Ì ¼ Ì ¬ Ì Ĺ á ¸ » g Í ¢ o Ì ¥ Ì ± Ì ¼ . Ì º Ì ľ Í ĩ Í ¡ Í ħ Ġ Ì ´ Í ĵ Í ĸ Ì Ń Ì © Í İ Ì Ĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ Ì § Ì ª Í Ī Ì ± Ì ¹ Ì ³ Í ĸ Í Ļ H Ì µ Ì ° Ì ¤ Ì ° Í ķ Ì ĸ e Ì Ľ Ġ Í ļ Í ī Ì Ĺ Ì ¼ Ì ŀ w Ì ¶ Ì © Ì ¥ Í ī Ì ® h Ì © Ì º Ì ª Ì © Í ĺ Í ħ á»į Í İ Í ī Ì Ł Ġ Ì ľ Ì © Í Ķ Ì ¦ Ì ĺ Í ħ W Ì ª Ì « Ì © Ì £ Ì ² Í Ķ Ì ³ a Í ı Í Ķ Ì ³ Í ĸ i Í ĸ Í ľ t Í ĵ Ì ¤ Ì ł Í ĵ Í Ļ s Ì ĺ Ì ° Ì © Ì ¥ Ì Ļ Ì Ŀ Í ħ Ġ Ì ² Ì ł Ì ¬ Ì ¥ Be Ì ¡ Ì Ļ Ì « Ì ¦ h Ì ° Ì © i Ì Ľ Ì « Í Ļ Í Ķ Ì Ń Ì ¤ Ì Ĺ Ì ² n Ì ³ Í ŀ d Ì ¸ Ġ Í İ Ì » Í ĺ T Ì Ľ Í ĩ Ì Ŀ Ì ² Ì ¹ Ì ł Ì Ĺ Í ħ h Ì « Ì ¦ Ì Ŀ Í ħ e Ì © Ì « Í Ł Ġ Í ĵ Í ĸ Ì ¼ W Í ķ Ì ³ Í İ Í ļ Ì Ļ Ì ¥ Äħ Ì Ļ l Ì ĺ Í ļ Ì º Í Ķ Í ŀ Í ħ l Ì ³ Í į Ì Ļ Ì ¤ Ì ¤ Ì ® Ì ³ . Ì ¢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ Ì Ł Ì º Ì ľ Ì Ļ Í ī Z Ì ¤ Ì ² Ì Ļ Ì Ļ Í İ Ì ¥ Ì Ŀ A Í İ Ì £ Í Ķ Ì Ļ Í ĺ L Ì ¥ Ì » Ì Ĺ Ì ³ Ì » Ì ³ Ì ³ Í ¢ G Í ī Ì ĸ Ì ¯ Í ĵ Ì ŀ Ì © Ì ¦ O Ì ¹ Ì ¹ Ì º ! Ì Ļ Í Ī Í İ Ì ŀ Ì ¬ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġtest (" the Ġrequest Ġfails ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġand Expect ( status (). is BadRequest ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Prod Constraint Response ( contentType : ĠMediaType ) Ġ= ĊĠĠĠ Ġm vc . perform ( ĊĠĠĠĠĠ Ġget ("/ delivery - configs / ke el - manifest / environment / prod / constraints ") ĊĠĠĠĠĠĠĠ Ġ. accept ( contentType ) ĊĠĠĠĠĠĠĠ Ġ. contentType ( contentType ) ĊĠĠĠ Ġ) ĊĊĠ Ġprivate Ġfun Ġget Prod Constraint States ( contentType : ĠMediaType ): ĠList < Constraint State > Ġ= ĊĠĠĠ Ġget Prod Constraint Response ( contentType ) ĊĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠĠĠ Ġ. response ĊĠĠĠĠĠ Ġ. content AsString ĊĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( contentType Ġ== ĠAP PLICATION _ YAML ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġconfigured Yaml Mapper (). readValue ( it ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġconfigured ObjectMapper (). readValue ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} Ċ } Ċ