6
6
using System . Linq ;
7
7
using FluentAssertions ;
8
8
using Microsoft . OpenApi . Any ;
9
+ using Microsoft . OpenApi . Exceptions ;
9
10
using Microsoft . OpenApi . Models ;
11
+ using Microsoft . OpenApi . Readers . Exceptions ;
10
12
using Microsoft . OpenApi . Readers . ParseNodes ;
11
13
using Microsoft . OpenApi . Readers . V3 ;
12
14
using SharpYaml . Serialization ;
@@ -324,22 +326,28 @@ public void ParseBasicSchemaWithExampleShouldSucceed()
324
326
[ Fact ]
325
327
public void ParseBasicSchemaWithReferenceShouldSucceed ( )
326
328
{
327
- using ( var stream = Resources . GetStream ( Path . Combine ( SampleFolderPath , "basicSchemaWithReference.yaml" ) ) )
328
- {
329
- // Act
330
- var openApiDoc = new OpenApiStreamReader ( ) . Read ( stream , out var diagnostic ) ;
329
+ using var stream = Resources . GetStream ( Path . Combine ( SampleFolderPath , "basicSchemaWithReference.yaml" ) ) ;
330
+ // Act
331
+ var openApiDoc = new OpenApiStreamReader ( ) . Read ( stream , out var diagnostic ) ;
331
332
332
- // Assert
333
- var components = openApiDoc . Components ;
333
+ // Assert
334
+ var components = openApiDoc . Components ;
334
335
335
- diagnostic . Should ( ) . BeEquivalentTo (
336
- new OpenApiDiagnostic ( ) { SpecificationVersion = OpenApiSpecVersion . OpenApi3_0 } ) ;
336
+ diagnostic . Should ( ) . BeEquivalentTo (
337
+ new OpenApiDiagnostic ( )
338
+ {
339
+ SpecificationVersion = OpenApiSpecVersion . OpenApi3_0 ,
340
+ Errors = new List < OpenApiError > ( )
341
+ {
342
+ new OpenApiError ( "" , "Paths is a REQUIRED field at #/" )
343
+ }
344
+ } ) ;
337
345
338
- components . Should ( ) . BeEquivalentTo (
339
- new OpenApiComponents
346
+ components . Should ( ) . BeEquivalentTo (
347
+ new OpenApiComponents
348
+ {
349
+ Schemas =
340
350
{
341
- Schemas =
342
- {
343
351
[ "ErrorModel" ] = new OpenApiSchema
344
352
{
345
353
Type = "object" ,
@@ -422,30 +430,35 @@ public void ParseBasicSchemaWithReferenceShouldSucceed()
422
430
}
423
431
}
424
432
}
425
- }
426
- } , options => options . Excluding ( m => m . Name == "HostDocument" ) ) ;
427
- }
433
+ }
434
+ } , options => options . Excluding ( m => m . Name == "HostDocument" ) ) ;
428
435
}
429
436
430
437
[ Fact ]
431
438
public void ParseAdvancedSchemaWithReferenceShouldSucceed ( )
432
439
{
433
- using ( var stream = Resources . GetStream ( Path . Combine ( SampleFolderPath , "advancedSchemaWithReference.yaml" ) ) )
434
- {
435
- // Act
436
- var openApiDoc = new OpenApiStreamReader ( ) . Read ( stream , out var diagnostic ) ;
440
+ using var stream = Resources . GetStream ( Path . Combine ( SampleFolderPath , "advancedSchemaWithReference.yaml" ) ) ;
441
+ // Act
442
+ var openApiDoc = new OpenApiStreamReader ( ) . Read ( stream , out var diagnostic ) ;
437
443
438
- // Assert
439
- var components = openApiDoc . Components ;
444
+ // Assert
445
+ var components = openApiDoc . Components ;
440
446
441
- diagnostic . Should ( ) . BeEquivalentTo (
442
- new OpenApiDiagnostic ( ) { SpecificationVersion = OpenApiSpecVersion . OpenApi3_0 } ) ;
447
+ diagnostic . Should ( ) . BeEquivalentTo (
448
+ new OpenApiDiagnostic ( )
449
+ {
450
+ SpecificationVersion = OpenApiSpecVersion . OpenApi3_0 ,
451
+ Errors = new List < OpenApiError > ( )
452
+ {
453
+ new OpenApiError ( "" , "Paths is a REQUIRED field at #/" )
454
+ }
455
+ } ) ;
443
456
444
- components . Should ( ) . BeEquivalentTo (
445
- new OpenApiComponents
457
+ components . Should ( ) . BeEquivalentTo (
458
+ new OpenApiComponents
459
+ {
460
+ Schemas =
446
461
{
447
- Schemas =
448
- {
449
462
[ "Pet" ] = new OpenApiSchema
450
463
{
451
464
Type = "object" ,
@@ -602,29 +615,34 @@ public void ParseAdvancedSchemaWithReferenceShouldSucceed()
602
615
HostDocument = openApiDoc
603
616
}
604
617
}
605
- }
606
- } , options => options . Excluding ( m => m . Name == "HostDocument" ) ) ;
607
- }
618
+ }
619
+ } , options => options . Excluding ( m => m . Name == "HostDocument" ) ) ;
608
620
}
609
621
610
622
611
623
[ Fact ]
612
624
public void ParseSelfReferencingSchemaShouldNotStackOverflow ( )
613
625
{
614
- using ( var stream = Resources . GetStream ( Path . Combine ( SampleFolderPath , "selfReferencingSchema.yaml" ) ) )
615
- {
616
- // Act
617
- var openApiDoc = new OpenApiStreamReader ( ) . Read ( stream , out var diagnostic ) ;
626
+ using var stream = Resources . GetStream ( Path . Combine ( SampleFolderPath , "selfReferencingSchema.yaml" ) ) ;
627
+ // Act
628
+ var openApiDoc = new OpenApiStreamReader ( ) . Read ( stream , out var diagnostic ) ;
618
629
619
- // Assert
620
- var components = openApiDoc . Components ;
630
+ // Assert
631
+ var components = openApiDoc . Components ;
621
632
622
- diagnostic . Should ( ) . BeEquivalentTo (
623
- new OpenApiDiagnostic ( ) { SpecificationVersion = OpenApiSpecVersion . OpenApi3_0 } ) ;
633
+ diagnostic . Should ( ) . BeEquivalentTo (
634
+ new OpenApiDiagnostic ( )
635
+ {
636
+ SpecificationVersion = OpenApiSpecVersion . OpenApi3_0 ,
637
+ Errors = new List < OpenApiError > ( )
638
+ {
639
+ new OpenApiError ( "" , "Paths is a REQUIRED field at #/" )
640
+ }
641
+ } ) ;
624
642
625
- var schemaExtension = new OpenApiSchema ( )
626
- {
627
- AllOf = { new OpenApiSchema ( )
643
+ var schemaExtension = new OpenApiSchema ( )
644
+ {
645
+ AllOf = { new OpenApiSchema ( )
628
646
{
629
647
Title = "schemaExtension" ,
630
648
Type = "object" ,
@@ -642,17 +660,16 @@ public void ParseSelfReferencingSchemaShouldNotStackOverflow()
642
660
}
643
661
}
644
662
} ,
645
- Reference = new OpenApiReference ( )
646
- {
647
- Type = ReferenceType . Schema ,
648
- Id = "microsoft.graph.schemaExtension"
649
- }
650
- } ;
663
+ Reference = new OpenApiReference ( )
664
+ {
665
+ Type = ReferenceType . Schema ,
666
+ Id = "microsoft.graph.schemaExtension"
667
+ }
668
+ } ;
651
669
652
- schemaExtension . AllOf [ 0 ] . Properties [ "child" ] = schemaExtension ;
670
+ schemaExtension . AllOf [ 0 ] . Properties [ "child" ] = schemaExtension ;
653
671
654
- components . Schemas [ "microsoft.graph.schemaExtension" ] . Should ( ) . BeEquivalentTo ( components . Schemas [ "microsoft.graph.schemaExtension" ] . AllOf [ 0 ] . Properties [ "child" ] ) ;
655
- }
672
+ components . Schemas [ "microsoft.graph.schemaExtension" ] . Should ( ) . BeEquivalentTo ( components . Schemas [ "microsoft.graph.schemaExtension" ] . AllOf [ 0 ] . Properties [ "child" ] ) ;
656
673
}
657
674
}
658
675
}
0 commit comments