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 @@ -170,6 +170,7 @@ extension OpenAPI.Header {
170170
171171 // the following are parsed as part of Schema
172172 case style
173+ case explode
173174 case allowReserved
174175 case example
175176 case examples
@@ -184,6 +185,7 @@ extension OpenAPI.Header {
184185 . content,
185186 . schema,
186187 . style,
188+ . explode,
187189 . allowReserved,
188190 . example,
189191 . examples
@@ -208,6 +210,8 @@ extension OpenAPI.Header {
208210 self = . schema
209211 case " style " :
210212 self = . style
213+ case " explode " :
214+ self = . explode
211215 case " allowReserved " :
212216 self = . allowReserved
213217 case " example " :
@@ -233,6 +237,8 @@ extension OpenAPI.Header {
233237 return " schema "
234238 case . style:
235239 return " style "
240+ case . explode:
241+ return " explode "
236242 case . allowReserved:
237243 return " allowReserved "
238244 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