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