2
2
// Licensed under the MIT license.
3
3
4
4
using System . Collections . Generic ;
5
- using System . IO ;
6
- using System . Linq ;
7
5
using System . Text . Json . Nodes ;
8
6
using FluentAssertions ;
9
7
using FluentAssertions . Equivalency ;
10
8
using Microsoft . OpenApi . Any ;
11
9
using Microsoft . OpenApi . Models ;
12
10
using Microsoft . OpenApi . Reader ;
13
- using Microsoft . OpenApi . Reader . ParseNodes ;
14
- using Microsoft . OpenApi . Reader . V31 ;
15
- using SharpYaml . Serialization ;
16
11
using Xunit ;
17
12
18
13
namespace Microsoft . OpenApi . Readers . Tests . V31Tests
@@ -21,6 +16,11 @@ public class OpenApiSchemaTests
21
16
{
22
17
private const string SampleFolderPath = "V31Tests/Samples/OpenApiSchema/" ;
23
18
19
+ public OpenApiSchemaTests ( )
20
+ {
21
+ OpenApiReaderRegistry . RegisterReader ( "yaml" , new OpenApiYamlReader ( ) ) ;
22
+ }
23
+
24
24
[ Fact ]
25
25
public void ParseBasicV31SchemaShouldSucceed ( )
26
26
{
@@ -74,7 +74,7 @@ public void ParseBasicV31SchemaShouldSucceed()
74
74
75
75
// Act
76
76
var schema = OpenApiModelFactory . Load < OpenApiSchema > (
77
- Path . Combine ( SampleFolderPath , "jsonSchema.json" ) , OpenApiSpecVersion . OpenApi3_1 , out _ ) ;
77
+ System . IO . Path . Combine ( SampleFolderPath , "jsonSchema.json" ) , OpenApiSpecVersion . OpenApi3_1 , out _ ) ;
78
78
79
79
// Assert
80
80
schema . Should ( ) . BeEquivalentTo ( expectedObject ) ;
@@ -144,19 +144,10 @@ public void TestSchemaCopyConstructorWithTypeArrayWorks()
144
144
[ Fact ]
145
145
public void ParseV31SchemaShouldSucceed ( )
146
146
{
147
- using var stream = Resources . GetStream ( Path . Combine ( SampleFolderPath , "schema.yaml" ) ) ;
148
- var yamlStream = new YamlStream ( ) ;
149
- yamlStream . Load ( new StreamReader ( stream ) ) ;
150
- var yamlNode = yamlStream . Documents . First ( ) . RootNode ;
151
-
152
- var diagnostic = new OpenApiDiagnostic ( ) ;
153
- var context = new ParsingContext ( diagnostic ) ;
154
-
155
- var asJsonNode = yamlNode . ToJsonNode ( ) ;
156
- var node = new MapNode ( context , asJsonNode ) ;
147
+ var path = System . IO . Path . Combine ( SampleFolderPath , "schema.yaml" ) ;
157
148
158
149
// Act
159
- var schema = OpenApiV31Deserializer . LoadSchema ( node ) ;
150
+ var schema = OpenApiModelFactory . Load < OpenApiSchema > ( path , OpenApiSpecVersion . OpenApi3_1 , out _ ) ;
160
151
var expectedSchema = new OpenApiSchema
161
152
{
162
153
Type = "object" ,
@@ -177,19 +168,9 @@ public void ParseV31SchemaShouldSucceed()
177
168
[ Fact ]
178
169
public void ParseAdvancedV31SchemaShouldSucceed ( )
179
170
{
180
- using var stream = Resources . GetStream ( Path . Combine ( SampleFolderPath , "advancedSchema.yaml" ) ) ;
181
- var yamlStream = new YamlStream ( ) ;
182
- yamlStream . Load ( new StreamReader ( stream ) ) ;
183
- var yamlNode = yamlStream . Documents . First ( ) . RootNode ;
184
-
185
- var diagnostic = new OpenApiDiagnostic ( ) ;
186
- var context = new ParsingContext ( diagnostic ) ;
187
-
188
- var asJsonNode = yamlNode . ToJsonNode ( ) ;
189
- var node = new MapNode ( context , asJsonNode ) ;
190
-
191
- // Act
192
- var schema = OpenApiV31Deserializer . LoadSchema ( node ) ;
171
+ // Arrange and Act
172
+ var path = System . IO . Path . Combine ( SampleFolderPath , "advancedSchema.yaml" ) ;
173
+ var schema = OpenApiModelFactory . Load < OpenApiSchema > ( path , OpenApiSpecVersion . OpenApi3_1 , out _ ) ;
193
174
194
175
var expectedSchema = new OpenApiSchema
195
176
{
@@ -268,5 +249,22 @@ public void ParseAdvancedV31SchemaShouldSucceed()
268
249
. Excluding ( ( IMemberInfo memberInfo ) =>
269
250
memberInfo . Path . EndsWith ( "Parent" ) ) ) ;
270
251
}
252
+
253
+ [ Fact ]
254
+ public void ParseSchemaWithExamplesShouldSucceed ( )
255
+ {
256
+ // Arrange
257
+ var input = @"
258
+ type: string
259
+ examples:
260
+ - fedora
261
+ - ubuntu
262
+ " ;
263
+ // Act
264
+ var schema = OpenApiModelFactory . Parse < OpenApiSchema > ( input , OpenApiSpecVersion . OpenApi3_1 , out _ , "yaml" ) ;
265
+
266
+ // Assert
267
+ schema . Examples . Should ( ) . HaveCount ( 2 ) ;
268
+ }
271
269
}
272
270
}
0 commit comments