@@ -57,6 +57,58 @@ public class OpenApiParameterTests
57
57
}
58
58
} ;
59
59
60
+ public static OpenApiParameter AdvancedHeaderParameterWithSchemaReference = new OpenApiParameter
61
+ {
62
+ Name = "name1" ,
63
+ In = ParameterLocation . Header ,
64
+ Description = "description1" ,
65
+ Required = true ,
66
+ Deprecated = false ,
67
+
68
+ Style = ParameterStyle . Simple ,
69
+ Explode = true ,
70
+ Schema = new OpenApiSchema
71
+ {
72
+ Reference = new OpenApiReference
73
+ {
74
+ Type = ReferenceType . Schema ,
75
+ Id = "schemaObject1"
76
+ }
77
+ } ,
78
+ Examples = new List < OpenApiExample >
79
+ {
80
+ new OpenApiExample
81
+ {
82
+ Summary = "summary3" ,
83
+ Description = "description3"
84
+ }
85
+ }
86
+ } ;
87
+
88
+ public static OpenApiParameter AdvancedHeaderParameterWithSchemaTypeObject = new OpenApiParameter
89
+ {
90
+ Name = "name1" ,
91
+ In = ParameterLocation . Header ,
92
+ Description = "description1" ,
93
+ Required = true ,
94
+ Deprecated = false ,
95
+
96
+ Style = ParameterStyle . Simple ,
97
+ Explode = true ,
98
+ Schema = new OpenApiSchema
99
+ {
100
+ Type = "object"
101
+ } ,
102
+ Examples = new List < OpenApiExample >
103
+ {
104
+ new OpenApiExample
105
+ {
106
+ Summary = "summary3" ,
107
+ Description = "description3"
108
+ }
109
+ }
110
+ } ;
111
+
60
112
private readonly ITestOutputHelper _output ;
61
113
62
114
public OpenApiParameterTests ( ITestOutputHelper output )
@@ -203,5 +255,57 @@ public void SerializeReferencedParameterAsV2JsonWithoutReferenceWorks()
203
255
expected = expected . MakeLineBreaksEnvironmentNeutral ( ) ;
204
256
actual . Should ( ) . Be ( expected ) ;
205
257
}
258
+
259
+ [ Fact ]
260
+ public void SerializeParameterWithSchemaReferenceAsV2JsonWorks ( )
261
+ {
262
+ // Arrange
263
+ var outputStringWriter = new StringWriter ( ) ;
264
+ var writer = new OpenApiJsonWriter ( outputStringWriter ) ;
265
+ var expected =
266
+ @"{
267
+ ""in"": ""header"",
268
+ ""name"": ""name1"",
269
+ ""description"": ""description1"",
270
+ ""required"": true,
271
+ ""type"": ""string""
272
+ }" ;
273
+
274
+ // Act
275
+ AdvancedHeaderParameterWithSchemaReference . SerializeAsV2 ( writer ) ;
276
+ writer . Flush ( ) ;
277
+ var actual = outputStringWriter . GetStringBuilder ( ) . ToString ( ) ;
278
+
279
+ // Assert
280
+ actual = actual . MakeLineBreaksEnvironmentNeutral ( ) ;
281
+ expected = expected . MakeLineBreaksEnvironmentNeutral ( ) ;
282
+ actual . Should ( ) . Be ( expected ) ;
283
+ }
284
+
285
+ [ Fact ]
286
+ public void SerializeParameterWithSchemaTypeObjectAsV2JsonWorks ( )
287
+ {
288
+ // Arrange
289
+ var outputStringWriter = new StringWriter ( ) ;
290
+ var writer = new OpenApiJsonWriter ( outputStringWriter ) ;
291
+ var expected =
292
+ @"{
293
+ ""in"": ""header"",
294
+ ""name"": ""name1"",
295
+ ""description"": ""description1"",
296
+ ""required"": true,
297
+ ""type"": ""string""
298
+ }" ;
299
+
300
+ // Act
301
+ AdvancedHeaderParameterWithSchemaTypeObject . SerializeAsV2 ( writer ) ;
302
+ writer . Flush ( ) ;
303
+ var actual = outputStringWriter . GetStringBuilder ( ) . ToString ( ) ;
304
+
305
+ // Assert
306
+ actual = actual . MakeLineBreaksEnvironmentNeutral ( ) ;
307
+ expected = expected . MakeLineBreaksEnvironmentNeutral ( ) ;
308
+ actual . Should ( ) . Be ( expected ) ;
309
+ }
206
310
}
207
311
}
0 commit comments