File tree Expand file tree Collapse file tree 4 files changed +134
-0
lines changed Expand file tree Collapse file tree 4 files changed +134
-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 @@ -172,6 +172,7 @@ extension OpenAPI.Header {
172172
173173 // the following are parsed as part of Schema
174174 case style
175+ case explode
175176 case allowReserved
176177 case example
177178 case examples
@@ -186,6 +187,7 @@ extension OpenAPI.Header {
186187 . content,
187188 . schema,
188189 . style,
190+ . explode,
189191 . allowReserved,
190192 . example,
191193 . examples
@@ -210,6 +212,8 @@ extension OpenAPI.Header {
210212 self = . schema
211213 case " style " :
212214 self = . style
215+ case " explode " :
216+ self = . explode
213217 case " allowReserved " :
214218 self = . allowReserved
215219 case " example " :
@@ -235,6 +239,8 @@ extension OpenAPI.Header {
235239 return " schema "
236240 case . style:
237241 return " style "
242+ case . explode:
243+ return " explode "
238244 case . allowReserved:
239245 return " allowReserved "
240246 case . example:
Original file line number Diff line number Diff line change @@ -511,6 +511,67 @@ extension HeaderTests {
511511 )
512512 }
513513
514+ func test_header_withStyleAndExplode_encode( ) throws {
515+ let header = OpenAPI . Header (
516+ schema: . init(
517+ . array( items: . string) ,
518+ style: . form,
519+ explode: false
520+ ) ,
521+ required: true
522+ )
523+
524+ let encodedHeader = try orderUnstableTestStringFromEncoding ( of: header)
525+
526+ assertJSONEquivalent (
527+ encodedHeader,
528+ """
529+ {
530+ " explode " : false,
531+ " required " : true,
532+ " schema " : {
533+ " items " : {
534+ " type " : " string "
535+ },
536+ " type " : " array "
537+ },
538+ " style " : " form "
539+ }
540+ """
541+ )
542+ }
543+
544+ func test_header_withStyleAndExplode_decode( ) throws {
545+ let headerData =
546+ """
547+ {
548+ " explode " : false,
549+ " required " : true,
550+ " schema " : {
551+ " items " : {
552+ " type " : " string "
553+ },
554+ " type " : " array "
555+ },
556+ " style " : " form "
557+ }
558+ """ . data ( using: . utf8) !
559+
560+ let header = try orderUnstableDecode ( OpenAPI . Header. self, from: headerData)
561+
562+ XCTAssertEqual (
563+ header,
564+ OpenAPI . Header (
565+ schema: . init(
566+ . array( items: . string) ,
567+ style: . form,
568+ explode: false
569+ ) ,
570+ required: true
571+ )
572+ )
573+ }
574+
514575 func test_header_errorForBothContentAndSchema_decode( ) {
515576 let headerData =
516577 """
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