package Ġcom . netflix . spin n aker . ke el . rest Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ 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 . api . constraints . Constraint Status . OVERRIDE _ PASS Ċ import Ġcom . netflix . spin n aker . ke el . api . constraints . Updated Constraint Status Ċ import Ġcom . netflix . spin n aker . ke el . core . api . Environment Artifact Pin Ċ import Ġcom . netflix . spin n aker . ke el . core . api . Environment Artifact Veto Ċ import Ġcom . netflix . spin n aker . ke el . pause . Act uation Pa user Ċ import Ġcom . netflix . spin n aker . ke el . rest . Authorization Support . Action . READ Ċ import Ġcom . netflix . spin n aker . ke el . rest . Authorization Support . Action . WRITE Ċ import Ġcom . netflix . spin n aker . ke el . rest . Authorization Support . Target Entity . APPLICATION Ċ import Ġcom . netflix . spin n aker . ke el . services . Application Service Ċ import Ġcom . netflix . spin n aker . ke el . spring . test . Mock E ureka Configuration Ċ import Ġcom . nin jas quad . spring mock k . Mock k Bean Ċ import Ġdev . min ut est . junit . JUnit 5 Min ut ests Ċ import Ġdev . min ut est . root Context Ċ import Ġio . mock k . clear All Mocks Ċ import Ġio . mock k . every Ċ 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 . APPLICATION _ JSON _ VALUE Ċ import Ġorg . springframework . test . context . junit . jupiter . Spring Extension Ċ import Ġorg . springframework . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders . delete Ċ 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 That Ċ import Ġstri kt . assertions . contains Exactly Ċ Ċ @ Extend With ( Spring Extension :: class ) Ċ @ SpringBootTest ( ĊĠ Ġclasses Ġ= Ġ[ Ke el Application :: class , ĠMock E ureka Configuration :: class ], ĊĠ Ġweb Environment Ġ= ĠMOCK Ċ ) Ċ @ Auto Configure MockMvc Ċ internal Ġclass ĠApplication Controller Tests Ġ: ĠJ Unit 5 Min ut ests Ġ{ ĊĠ Ġ@ Mock k Bean ĊĠ Ġlateinit Ġvar Ġauthorization Support : ĠAuthorization Support ĊĊĠ Ġ@ Autowired ĊĠ Ġlateinit Ġvar Ġm vc : ĠMock Mvc ĊĊĠ Ġ@ Mock k Bean ĊĠ Ġlateinit Ġvar Ġapplication Service : ĠApplication Service ĊĊĠ Ġ@ Mock k Bean ĊĠ Ġlateinit Ġvar Ġact uation Pa user : ĠAct uation Pa user ĊĊĠ Ġ@ Autowired ĊĠ Ġlateinit Ġvar Ġjson Mapper : ĠObjectMapper ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval Ġapplication Ġ= Ġ" fn ord " ĊĠĠĠ Ġconst Ġval Ġuser Ġ= Ġ" ke el @ ke el . io " ĊĠ Ġ} ĊĊĠ Ġfun Ġtests () Ġ= Ġroot Context Ġ{ ĊĠĠĠ Ġafter Ġ{ ĊĠĠĠĠĠ Ġclear All Mocks () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcontext (" application Ġwith Ġdelivery Ġconfig Ġexists ") Ġ{ ĊĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠ Ġauthorization Support . allow All () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Service . has Managed Resources ( application ) Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Service . get Constraint States For ( application ) Ġ} Ġreturns Ġempty List () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Service . getResource Sum maries For ( application ) Ġ} Ġreturns Ġempty List () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Service . get Environment Sum maries For ( application ) Ġ} Ġreturns Ġempty List () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Service . get Artifact Sum maries For ( application ) Ġ} Ġreturns Ġempty List () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġcontext (" with Ġun - paused Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġact uation Pa user . application Is Paused ( application ) Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" can Ġget Ġbasic Ġsummary Ġby Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application /$ application ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠ Ġm vc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" application Paused ": false , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" has Managed Resources ": true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" returns Ġbad Ġrequest Ġfor Ġunknown Ġentities ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application /$ application ? entities = ban an as ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is BadRequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" can Ġget Ġmultiple Ġtypes Ġof Ġsummar ies Ġby Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application /$ application ? entities = resources & entities = environments & entities = artifacts ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġm vc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do Ġ{ Ġprintln ( it . response . content AsString ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġjson Mapper . readValue < Map < String , ĠAny >>( result . response . content AsString ) ĊĠĠĠĠĠĠĠĠĠ Ġexpect That ( response . keys ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" application Paused ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" has Managed Resources ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" current Environment Constraints ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" resources ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" environments ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" artifacts " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" can Ġget Ġmultiple Ġtypes Ġof Ġsummar ies Ġby Ġapplication Ġwith Ġcomma - separate Ġlist Ġof Ġentities ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application /$ application ? entities = resources , environments , artifacts ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġm vc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do Ġ{ Ġprintln ( it . response . content AsString ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġjson Mapper . readValue < Map < String , ĠAny >>( result . response . content AsString ) ĊĠĠĠĠĠĠĠĠĠ Ġexpect That ( response . keys ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" application Paused ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" has Managed Resources ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" current Environment Constraints ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" resources ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" environments ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" artifacts " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" is Ġbackwards - compatible Ġwith Ġolder Ġversion Ġof Ġthe ĠAPI ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġget ("/ application /$ application ? include Details = false ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġm vc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do Ġ{ Ġprint ( it . response . content AsString ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠĠĠĠĠĠĠ Ġvar Ġresponse Ġ= Ġjson Mapper . readValue < Map < String , ĠAny >>( result . response . content AsString ) ĊĠĠĠĠĠĠĠĠĠ Ġexpect That ( response . keys ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" application Paused ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" has Managed Resources ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" current Environment Constraints " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġget ("/ application /$ application ? include Details = true ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġm vc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do Ġ{ Ġprint ( it . response . content AsString ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġjson Mapper . readValue ( result . response . content AsString ) ĊĠĠĠĠĠĠĠĠĠ Ġexpect That ( response . keys ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" application Paused ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" has Managed Resources ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" current Environment Constraints ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" resources " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġcontext (" with Ġpaused Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġact uation Pa user . application Is Paused ( application ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest (" reflect s Ġapplication Ġpaused Ġstatus Ġin Ġbasic Ġsummary ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application /$ application ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠ Ġm vc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" application Paused ": true , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" has Managed Resources ": true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcontext (" application Ġis Ġnot Ġmanaged ") Ġ{ ĊĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Service . has Managed Resources ( any ()) Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Service . get Constraint States For ( any ()) Ġ} Ġreturns Ġempty List () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġact uation Pa user . application Is Paused ( any ()) Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġauthorization Support . allow All () ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġtest (" API Ġreturns Ġgrace fully ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application / ban an as ") ĊĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠ Ġm vc ĊĠĠĠĠĠĠĠĠĠ Ġ. perform ( request ) ĊĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" has Managed Resources ": false ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcontext (" API Ġpermission Ġchecks ") Ġ{ ĊĠĠĠĠĠ Ġcontext (" GET Ġ/ application / fn ord ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠREAD Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( READ , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow Cloud Account Access ( READ , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application / fn ord ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠREAD Ġaccess Ġto Ġcloud Ġaccount ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Cloud Account Access ( READ , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow Application Access ( READ , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application / fn ord ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcontext (" GET Ġ/ application / fn ord / environment / prod / constraints ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠREAD Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( READ , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application / fn ord / environment / prod / constraints ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcontext (" POST Ġ/ application / fn ord / environment / prod / constraint ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠWRITE Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ application / fn ord / environment / prod / constraint "). addData ( json Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpdated Constraint Status (" manual - judge ment ", Ġ" prod ", ĠOVER RIDE _ PASS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno Ġaccess Ġto Ġservice Ġaccount ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ application / fn ord / environment / prod / constraint "). addData ( json Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpdated Constraint Status (" manual - judge ment ", Ġ" prod ", ĠOVER RIDE _ PASS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcontext (" POST Ġ/ application / fn ord / pause ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠWRITE Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ application / fn ord / pause ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcontext (" DELETE Ġ/ application / fn ord / pause ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠWRITE Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġdelete ("/ application / fn ord / pause ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno Ġaccess Ġto Ġservice Ġaccount ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġdelete ("/ application / fn ord / pause ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġcontext (" POST Ġ/ application / fn ord / pin ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠWRITE Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ application / fn ord / pin "). addData ( json Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment Artifact Pin (" test ", Ġ" ref ", Ġ" deb ", Ġ" 0 . 0 . 1 ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno Ġaccess Ġto Ġservice Ġaccount ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ application / fn ord / pin "). addData ( json Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment Artifact Pin (" test ", Ġ" ref ", Ġ" deb ", Ġ" 0 . 0 . 1 ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcontext (" DELETE Ġ/ application / fn ord / pin / test ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠWRITE Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġdelete ("/ application / fn ord / pin / test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno Ġaccess Ġto Ġservice Ġaccount ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġdelete ("/ application / fn ord / pin / test ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġcontext (" POST Ġ/ application / fn ord / vet o ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠWRITE Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ application / fn ord / vet o "). addData ( json Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment Artifact Veto (" test ", Ġ" ref ", Ġ" 0 . 0 . 1 ", Ġ" me ", Ġ" o ops ie ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno Ġaccess Ġto Ġservice Ġaccount ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġpost ("/ application / fn ord / vet o "). addData ( json Mapper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment Artifact Veto (" test ", Ġ" ref ", Ġ" 0 . 0 . 1 ", Ġ" me ", Ġ" o ops ie ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcontext (" DELETE Ġ/ application / fn ord / vet o / test / ref / 0 . 0 . 1 ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠWRITE Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġdelete ("/ application / fn ord / vet o / test / ref / 0 . 0 . 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno Ġaccess Ġto Ġservice Ġaccount ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny ServiceAccount Access () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . allow Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġdelete ("/ application / fn ord / vet o / test / ref / 0 . 0 . 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcontext (" GET Ġ/ application / fn ord / config ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠREAD Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( READ , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget ("/ application / fn ord / config ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġuser ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġcontext (" DELETE Ġ/ application / fn ord / config ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext (" with Ġno ĠWRITE Ġaccess Ġto Ġapplication ") Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġbefore Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Support . deny Application Access ( WRITE , ĠAP PLICATION ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġtest (" request Ġis Ġforbidden ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġdelete ("/ application / fn ord / config ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. accept ( APPLICATION _ JSON _ VALUE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" X - SP IN NA KER - USER ", Ġ" ke el @ ke el . io ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġm vc . perform ( request ). andExpect ( status (). is Forbidden ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ