package Ġorg . ev om aster . core . output . or acles Ċ Ċ import Ġorg . ev om aster . core . output . Lines Ċ import Ġorg . ev om aster . core . output . Output Format Ċ import Ġorg . ev om aster . core . output . Object Generator Ċ import Ġorg . ev om aster . core . problem . rest . Http Verb Ċ import Ġorg . ev om aster . core . problem . rest . Rest Call Action Ċ import Ġorg . ev om aster . core . problem . rest . Rest Call Result Ċ import Ġorg . ev om aster . core . problem . rest . Rest Individual Ċ import Ġorg . ev om aster . core . search . Evalu ated Action Ċ import Ġorg . ev om aster . core . search . Evalu ated Individual Ċ Ċ /** Ċ Ġ* ĠThe Ġ[ Supported Code Oracle ] Ġclass Ġgenerates Ġan Ġexpectation Ġand Ġwrites Ġit Ġto Ġthe Ġcode . Ċ Ġ* Ċ Ġ* ĠA Ġcomparison Ġis Ġmade Ġbetween Ġthe Ġstatus Ġcode Ġof Ġthe Ġ[ Rest Call Result ] Ġand Ġthe Ġsupported Ġreturn Ġcodes Ġas Ġdefined Ċ Ġ* Ġby Ġthe Ġschema . ĠIf Ġthe Ġactual Ġcode Ġis Ġnot Ġsupported Ġby Ġthe Ġschema , Ġthe Ġrelevant Ġexpectation Ġis Ġgenerated Ġand Ġadded Ċ Ġ* Ġto Ġthe Ġcode . Ċ Ġ*/ Ċ Ċ class ĠSupported Code Oracle Ġ: ĠImplemented Oracle () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġvariable Name Ġ= Ġ" sco " ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġobject Generator : ĠObject Generator ĊĊĠĠĠ Ġoverride Ġfun Ġvariable Declaration ( lines : ĠLines , Ġformat : ĠOutput Format ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlines . add (" /** ") ĊĠĠĠĠĠĠĠ Ġlines . add ("* Ġ$ variable Name Ġ- Ġsupported Ġcode Ġoracle Ġ- Ġchecking Ġthat Ġthe Ġresponse Ġstatus Ġcode Ġis Ġamong Ġthose Ġsupported Ġaccording Ġto Ġthe Ġschema ") ĊĠĠĠĠĠĠĠ Ġlines . add (" */ ") ĊĠĠĠĠĠĠĠ Ġwhen { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat . is Java () Ġ-> Ġlines . add (" private Ġstatic Ġboolean Ġ$ variable Name Ġ= Ġfalse ; ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat . is Kotlin () Ġ-> Ġlines . add (" private Ġval Ġ$ variable Name Ġ= Ġfalse ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġformat . is JavaScript () Ġ-> Ġlines . add (" const Ġ$ variable Name Ġ= Ġfalse ; ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Expectations ( call : ĠRest Call Action , Ġlines : ĠLines , Ġres : ĠRest Call Result , Ġname : ĠString , Ġformat : ĠOutput Format ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif (! supported Code ( call , Ġres )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġcode Ġis Ġnot Ġamong Ġsupported Ġcodes , Ġso Ġan Ġexpectation Ġwill Ġbe Ġgenerated ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// val Ġactual Code Ġ= Ġres . getStatusCode () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// lines . add (". that ($ oracle Name , ĠArrays . asList (${ get Supported Code ( call )} ). contains ($ actual Code )) ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsupported Code Ġ= Ġget Supported Code ( call ). join ToString (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( supported Code . equals (" default ", Ġignore Case Ġ= Ġtrue )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlines . add (" /* ĠNote : Ġthis Ġcall Ġis Ġhandled Ġvia Ġa Ġdefault Ġcode . ĠIf Ġthis Ġis Ġintended Ġbehaviour , Ġignore Ġthis Ġcomment Ġ*/ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġlines . add (". that ($ variable Name , ĠArrays . asList ($ supported Code ). contains ($ name . extract (). statusCode ())) ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġsupported Code ( call : ĠRest Call Action , Ġres : ĠRest Call Result ): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġres . getStatusCode (). toString () ĊĠĠĠĠĠĠĠ Ġval Ġvalid Codes Ġ= Ġget Supported Code ( call ) ĊĠĠĠĠĠĠĠ Ġreturn Ġvalid Codes . contains ( code ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Supported Code ( call : ĠRest Call Action ): ĠMutable Set < String >{ ĊĠĠĠĠĠĠĠ Ġval Ġverb Ġ= Ġcall . verb ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġobject Generator . get Swagger (). paths . get ( call . path . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġwhen Ġ( verb ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Verb . GET Ġ-> Ġpath ?. get ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Verb . POST Ġ-> Ġpath ?. post ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Verb . PUT Ġ-> Ġpath ?. put ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Verb . DELETE Ġ-> Ġpath ?. delete ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Verb . PATCH Ġ-> Ġpath ?. patch ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Verb . HEAD Ġ-> Ġpath ?. head ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Verb . OPTIONS Ġ-> Ġpath ?. options ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Verb . TRACE Ġ-> Ġpath ?. trace ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ?. responses ?. keys Ġ?: Ġmutable Set Of () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Object Generator ( gen : ĠObject Generator ){ ĊĠĠĠĠĠĠĠ Ġobject Generator Ġ= Ġgen ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerates Expectation ( call : ĠRest Call Action , Ġlines : ĠLines , Ġres : ĠRest Call Result , Ġname : ĠString , Ġformat : ĠOutput Format ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ! supported Code ( call , Ġres ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġselect For Cluster ing ( action : ĠEvalu ated Action ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( action . result Ġis ĠRest Call Result Ġ&& Ġaction . action Ġis ĠRest Call Action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! supported Code ( action . action , Ġaction . result ) ĊĠĠĠĠĠĠĠ Ġelse Ġfalse ĊĠĠĠ Ġ} Ċ }