File tree Expand file tree Collapse file tree 2 files changed +67
-0
lines changed Expand file tree Collapse file tree 2 files changed +67
-0
lines changed Original file line number Diff line number Diff line change @@ -186,6 +186,7 @@ extension OpenAPI.Header {
186186
187187 // the following are parsed as part of Schema
188188 case style
189+ case explode
189190 case allowReserved
190191 case example
191192 case examples
@@ -200,6 +201,7 @@ extension OpenAPI.Header {
200201 . content,
201202 . schema,
202203 . style,
204+ . explode,
203205 . allowReserved,
204206 . example,
205207 . examples
@@ -224,6 +226,8 @@ extension OpenAPI.Header {
224226 self = . schema
225227 case " style " :
226228 self = . style
229+ case " explode " :
230+ self = . explode
227231 case " allowReserved " :
228232 self = . allowReserved
229233 case " example " :
@@ -249,6 +253,8 @@ extension OpenAPI.Header {
249253 return " schema "
250254 case . style:
251255 return " style "
256+ case . explode:
257+ return " explode "
252258 case . allowReserved:
253259 return " allowReserved "
254260 case . example:
Original file line number Diff line number Diff line change @@ -547,6 +547,67 @@ extension HeaderTests {
547547 )
548548 }
549549
550+ func test_header_withStyleAndExplode_encode( ) throws {
551+ let header = OpenAPI . Header (
552+ schema: . init(
553+ . array( items: . string) ,
554+ style: . form,
555+ explode: false
556+ ) ,
557+ required: true
558+ )
559+
560+ let encodedHeader = try orderUnstableTestStringFromEncoding ( of: header)
561+
562+ assertJSONEquivalent (
563+ encodedHeader,
564+ """
565+ {
566+ " explode " : false,
567+ " required " : true,
568+ " schema " : {
569+ " items " : {
570+ " type " : " string "
571+ },
572+ " type " : " array "
573+ },
574+ " style " : " form "
575+ }
576+ """
577+ )
578+ }
579+
580+ func test_header_withStyleAndExplode_decode( ) throws {
581+ let headerData =
582+ """
583+ {
584+ " explode " : false,
585+ " required " : true,
586+ " schema " : {
587+ " items " : {
588+ " type " : " string "
589+ },
590+ " type " : " array "
591+ },
592+ " style " : " form "
593+ }
594+ """ . data ( using: . utf8) !
595+
596+ let header = try orderUnstableDecode ( OpenAPI . Header. self, from: headerData)
597+
598+ XCTAssertEqual (
599+ header,
600+ OpenAPI . Header (
601+ schema: . init(
602+ . array( items: . string) ,
603+ style: . form,
604+ explode: false
605+ ) ,
606+ required: true
607+ )
608+ )
609+ }
610+
550611 func test_header_errorForBothContentAndSchema_decode( ) {
551612 let headerData =
552613 """
You can’t perform that action at this time.
0 commit comments