@@ -57,6 +57,59 @@ public class OpenApiParameterTests
5757 }
5858 } ;
5959
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+
60113 private readonly ITestOutputHelper _output ;
61114
62115 public OpenApiParameterTests ( ITestOutputHelper output )
@@ -203,5 +256,57 @@ public void SerializeReferencedParameterAsV2JsonWithoutReferenceWorks()
203256 expected = expected . MakeLineBreaksEnvironmentNeutral ( ) ;
204257 actual . Should ( ) . Be ( expected ) ;
205258 }
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+ }
206311 }
207312}
0 commit comments