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 @@ -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 """
You can’t perform that action at this time.
0 commit comments