File tree Expand file tree Collapse file tree 2 files changed +42
-1
lines changed
src/Microsoft.OpenApi/Reader/V31
test/Microsoft.OpenApi.Readers.Tests/V31Tests Expand file tree Collapse file tree 2 files changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -114,7 +114,9 @@ public static IOpenApiHeader LoadHeader(ParseNode node, OpenApiDocument hostDocu
114114 if ( pointer != null )
115115 {
116116 var reference = GetReferenceIdAndExternalResource ( pointer ) ;
117- return new OpenApiHeaderReference ( reference . Item1 , hostDocument , reference . Item2 ) ;
117+ var headerReference = new OpenApiHeaderReference ( reference . Item1 , hostDocument , reference . Item2 ) ;
118+ headerReference . Reference . SetMetadataFromMapNode ( mapNode ) ;
119+ return headerReference ;
118120 }
119121
120122 var header = new OpenApiHeader ( ) ;
Original file line number Diff line number Diff line change 1+
2+ using System . Text . Json . Nodes ;
3+ using Microsoft . OpenApi . Reader ;
4+ using Microsoft . OpenApi . Reader . V31 ;
5+ using Xunit ;
6+
7+ namespace Microsoft . OpenApi . Readers . Tests . V31Tests ;
8+
9+ public class OpenApiHeaderReferenceDeserializerTests
10+ {
11+ [ Fact ]
12+ public void ShouldDeserializeReferenceAnnotations ( )
13+ {
14+ var json =
15+ """
16+ {
17+ "$ref": "#/components/headers/MyHeader",
18+ "description": "This is a header reference"
19+ }
20+ """ ;
21+
22+ var hostDocument = new OpenApiDocument ( ) ;
23+ hostDocument . AddComponent ( "MyHeader" , new OpenApiHeader
24+ {
25+ Description = "This is a header"
26+ } ) ;
27+ var jsonNode = JsonNode . Parse ( json ) ;
28+ var parseNode = ParseNode . Create ( new ParsingContext ( new ( ) ) , jsonNode ) ;
29+
30+ var result = OpenApiV31Deserializer . LoadHeader ( parseNode , hostDocument ) ;
31+
32+ Assert . NotNull ( result ) ;
33+ var resultReference = Assert . IsType < OpenApiHeaderReference > ( result ) ;
34+
35+ Assert . Equal ( "MyHeader" , resultReference . Reference . Id ) ;
36+ Assert . Equal ( "This is a header reference" , resultReference . Description ) ;
37+ Assert . NotNull ( resultReference . Target ) ;
38+ }
39+ }
You can’t perform that action at this time.
0 commit comments