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
114
114
if ( pointer != null )
115
115
{
116
116
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 ;
118
120
}
119
121
120
122
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