/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 - 2 0 2 1 , ĠKon ink lij ke ĠPhil ips ĠN . V ., Ġhttps :// www . phil ips . com Ċ Ġ* ĠSPDX - License - Identifier : ĠMIT Ċ Ġ*/ Ċ package Ġcom . phil ips . h sdp . apis . cdr Ċ Ċ import Ġcom . phil ips . h sdp . apis . cdr . domain . sdk . Delete By Query Request Ċ import Ġcom . phil ips . h sdp . apis . cdr . domain . sdk . Delete Response Ċ import Ġcom . phil ips . h sdp . apis . cdr . domain . sdk . QueryParameter Ċ import Ġcom . phil ips . h sdp . apis . support . HttpException Ċ import Ġio . kot est . assertions . throw ables . should Not Throw Any Ċ import Ġio . kot est . assertions . throw ables . should Throw Exactly Ċ import Ġio . kot est . matchers . maps . should Contain All Ċ import Ġio . kot est . matchers . null s . be Null Ċ import Ġio . kot est . matchers . should Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġokhttp 3 . mock webserver . Mock Response Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ internal Ġclass ĠDelete By Query Test Ġ: ĠC dr TestBase () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbasic Request Ġ= ĠDelete By Query Request (" Patient ", ĠlistOf ( QueryParameter (" name ", Ġ" value "))) ĊĠĠĠ Ġprivate Ġval Ġmock Success Response Ġ= ĠMock Response () ĊĠĠĠĠĠĠĠ Ġ. set Response Code ( 2 0 4 ) ĊĠĠĠĠĠĠĠ Ġ. setHeader (" ET ag ", Ġ""" W /" abc """ ") ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġreturn Ġthe Ġresponse Ġwhen ĠC DR Ġreturns Ġa Ġ 2 0 4 Ġwith Ġthe Ġspecified Ġheaders ` (): ĠUnit Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġserver . enqueue ( mock Success Response ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġc dr . delete ( basic Request ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġserver . take Request () ĊĠĠĠĠĠĠĠ Ġrequest . request Url ?. encoded Path ĠshouldBe Ġ"/ Patient " ĊĠĠĠĠĠĠĠ Ġrequest . request Url ?. encoded Query ĠshouldBe Ġ" name = value " ĊĠĠĠĠĠĠĠ Ġrequest . method ĠshouldBe Ġ" DELETE " ĊĠĠĠĠĠĠĠ Ġrequest . headers . to Multimap () Ġshould Contain All Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" authorization " Ġto ĠlistOf (" Bearer Ġ${ httpClient . token . accessToken } "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" api - version " Ġto ĠlistOf (" 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" accept " Ġto ĠlistOf (" application / fhir + json ; Ġcharset = UTF - 8 ; Ġfhir Version = 3 . 0 "), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult ĠshouldBe ĠDelete Response ( 2 0 4 , Ġ"", Ġ" abc ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġthrow Ġwhen ĠC DR Ġreturns Ġa Ġ 5 0 0 ` (): ĠUnit Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġmocked Response Ġ= ĠMock Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Response Code ( 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Body (""" {" some ":" error "} """) ĊĠĠĠĠĠĠĠ Ġserver . enqueue ( mocked Response ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= Ġshould Throw Exactly < HttpException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc dr . delete ( basic Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġserver . take Request () ĊĠĠĠĠĠĠĠ Ġexception . code ĠshouldBe Ġ 5 0 0 ĊĠĠĠĠĠĠĠ Ġexception . message ĠshouldBe Ġ""" {" some ":" error "} """ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġnot Ġthrow Ġwhen ĠC DR Ġdoes Ġnot Ġinclude Ġan ĠE Tag Ġheader ` (): ĠUnit Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġmocked Response Ġ= ĠMock Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Response Code ( 2 0 4 ) ĊĠĠĠĠĠĠĠ Ġserver . enqueue ( mocked Response ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen / Then ĊĠĠĠĠĠĠĠ Ġshould Not Throw Any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġc dr . delete ( basic Request ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . version Id Ġshould Ġbe Null () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġserver . take Request () ĊĠĠĠ Ġ} Ċ }