Skip to content

Commit 374fe98

Browse files
committed
Fix failing tests
1 parent 487b1f9 commit 374fe98

29 files changed

+277
-299
lines changed

test/Microsoft.OpenApi.Hidi.Tests/Services/OpenApiServiceTests.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
using Microsoft.OpenApi.Hidi.Utilities;
1212
using Microsoft.OpenApi.Models;
1313
using Microsoft.OpenApi.OData;
14-
using Microsoft.OpenApi.Services;
14+
using Microsoft.OpenApi.Reader;
15+
using Microsoft.OpenApi.Readers;
1516
using Xunit;
1617

1718
namespace Microsoft.OpenApi.Hidi.Tests
@@ -24,8 +25,11 @@ public sealed class OpenApiServiceTests : IDisposable
2425
public OpenApiServiceTests()
2526
{
2627
_logger = new Logger<OpenApiServiceTests>(_loggerFactory);
28+
OpenApiReaderRegistry.RegisterReader(OpenApiConstants.Yml, new OpenApiYamlReader());
29+
OpenApiReaderRegistry.RegisterReader(OpenApiConstants.Yaml, new OpenApiYamlReader());
30+
2731
}
28-
32+
2933
[Theory]
3034
[InlineData("UtilityFiles/appsettingstest.json")]
3135
[InlineData(null)]

test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/OpenApiDiagnosticTests.cs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,42 +17,43 @@ namespace Microsoft.OpenApi.Readers.Tests.OpenApiReaderTests
1717
[Collection("DefaultSettings")]
1818
public class OpenApiDiagnosticTests
1919
{
20+
public OpenApiDiagnosticTests()
21+
{
22+
OpenApiReaderRegistry.RegisterReader(OpenApiConstants.Yaml, new OpenApiYamlReader());
23+
}
24+
2025
[Fact]
2126
public void DetectedSpecificationVersionShouldBeV2_0()
2227
{
23-
using var stream = Resources.GetStream("V2Tests/Samples/basic.v2.yaml");
24-
new OpenApiStreamReader().Read(stream, out var diagnostic);
28+
var actual = OpenApiDocument.Load("V2Tests/Samples/basic.v2.yaml");
2529

26-
diagnostic.Should().NotBeNull();
27-
diagnostic.SpecificationVersion.Should().Be(OpenApiSpecVersion.OpenApi2_0);
30+
actual.OpenApiDiagnostic.Should().NotBeNull();
31+
actual.OpenApiDiagnostic.SpecificationVersion.Should().Be(OpenApiSpecVersion.OpenApi2_0);
2832
}
2933

3034
[Fact]
3135
public void DetectedSpecificationVersionShouldBeV3_0()
3236
{
33-
using var stream = Resources.GetStream("V3Tests/Samples/OpenApiDocument/minimalDocument.yaml");
34-
new OpenApiStreamReader().Read(stream, out var diagnostic);
37+
var actual = OpenApiDocument.Load("V3Tests/Samples/OpenApiDocument/minimalDocument.yaml");
3538

36-
diagnostic.Should().NotBeNull();
37-
diagnostic.SpecificationVersion.Should().Be(OpenApiSpecVersion.OpenApi3_0);
39+
actual.OpenApiDiagnostic.Should().NotBeNull();
40+
actual.OpenApiDiagnostic.SpecificationVersion.Should().Be(OpenApiSpecVersion.OpenApi3_0);
3841
}
3942

4043
[Fact]
4144
public async Task DiagnosticReportMergedForExternalReference()
4245
{
4346
// Create a reader that will resolve all references
44-
var reader = new OpenApiStreamReader(new()
47+
var settings = new OpenApiReaderSettings
4548
{
4649
LoadExternalRefs = true,
4750
CustomExternalLoader = new ResourceLoader(),
4851
BaseUrl = new("fie://c:\\")
49-
});
52+
};
5053

5154
ReadResult result;
52-
using (var stream = Resources.GetStream("OpenApiReaderTests/Samples/OpenApiDiagnosticReportMerged/TodoMain.yaml"))
53-
{
54-
result = await reader.ReadAsync(stream);
55-
}
55+
result = await OpenApiDocument.LoadAsync("OpenApiReaderTests/Samples/OpenApiDiagnosticReportMerged/TodoMain.yaml", settings);
56+
5657

5758
Assert.NotNull(result);
5859
Assert.NotNull(result.OpenApiDocument.Workspace);

test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/OpenApiStreamReaderTests.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// Licensed under the MIT license.
33

44
using System.IO;
5+
using Microsoft.OpenApi.Models;
6+
using Microsoft.OpenApi.Reader;
57
using Xunit;
68

79
namespace Microsoft.OpenApi.Readers.Tests.OpenApiReaderTests
@@ -10,21 +12,26 @@ public class OpenApiStreamReaderTests
1012
{
1113
private const string SampleFolderPath = "V3Tests/Samples/OpenApiDocument/";
1214

15+
public OpenApiStreamReaderTests()
16+
{
17+
OpenApiReaderRegistry.RegisterReader("yaml", new OpenApiYamlReader());
18+
}
19+
1320
[Fact]
1421
public void StreamShouldCloseIfLeaveStreamOpenSettingEqualsFalse()
1522
{
1623
using var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "petStore.yaml"));
17-
var reader = new OpenApiStreamReader(new() { LeaveStreamOpen = false });
18-
reader.Read(stream, out _);
24+
var settings = new OpenApiReaderSettings { LeaveStreamOpen = false };
25+
_ = OpenApiDocument.Load(stream, "yaml", settings);
1926
Assert.False(stream.CanRead);
2027
}
2128

2229
[Fact]
2330
public void StreamShouldNotCloseIfLeaveStreamOpenSettingEqualsTrue()
2431
{
2532
using var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "petStore.yaml"));
26-
var reader = new OpenApiStreamReader(new() { LeaveStreamOpen = true});
27-
reader.Read(stream, out _);
33+
var settings = new OpenApiReaderSettings { LeaveStreamOpen = true };
34+
_ = OpenApiDocument.Load(stream, "yaml", settings);
2835
Assert.True(stream.CanRead);
2936
}
3037
}

test/Microsoft.OpenApi.Readers.Tests/OpenApiReaderTests/UnsupportedSpecVersionTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using FluentAssertions;
55
using Microsoft.OpenApi.Exceptions;
6+
using Microsoft.OpenApi.Models;
67
using Xunit;
78

89
namespace Microsoft.OpenApi.Readers.Tests.OpenApiReaderTests
@@ -13,10 +14,9 @@ public class UnsupportedSpecVersionTests
1314
[Fact]
1415
public void ThrowOpenApiUnsupportedSpecVersionException()
1516
{
16-
using var stream = Resources.GetStream("OpenApiReaderTests/Samples/unsupported.v1.yaml");
1717
try
1818
{
19-
new OpenApiStreamReader().Read(stream, out var diagnostic);
19+
_ = OpenApiDocument.Load("OpenApiReaderTests/Samples/unsupported.v1.yaml");
2020
}
2121
catch (OpenApiUnsupportedSpecVersionException exception)
2222
{

test/Microsoft.OpenApi.Readers.Tests/OpenApiWorkspaceTests/OpenApiWorkspaceStreamTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,15 @@ public async Task LoadingDocumentWithResolveAllReferencesShouldLoadDocumentIntoW
5555
public async Task LoadDocumentWithExternalReferenceShouldLoadBothDocumentsIntoWorkspace()
5656
{
5757
// Create a reader that will resolve all references
58-
var reader = new OpenApiStreamReader(new()
58+
var settings = new OpenApiReaderSettings
5959
{
6060
LoadExternalRefs = true,
6161
CustomExternalLoader = new ResourceLoader(),
6262
BaseUrl = new("fie://c:\\")
63-
});
63+
};
6464

6565
ReadResult result;
66-
using var stream = Resources.GetStream("V3Tests/Samples/OpenApiWorkspace/TodoMain.yaml");
67-
result = await reader.ReadAsync(stream);
66+
result = await OpenApiDocument.LoadAsync("V3Tests/Samples/OpenApiWorkspace/TodoMain.yaml", settings);
6867

6968
Assert.NotNull(result.OpenApiDocument.Workspace);
7069
Assert.True(result.OpenApiDocument.Workspace.Contains("TodoComponents.yaml"));

test/Microsoft.OpenApi.Readers.Tests/ParseNodeTests.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,19 @@
55
using FluentAssertions;
66
using Microsoft.OpenApi.Exceptions;
77
using Microsoft.OpenApi.Models;
8+
using Microsoft.OpenApi.Reader;
89
using Microsoft.OpenApi.Readers;
910
using Xunit;
1011

1112
namespace Microsoft.OpenApi.Tests
1213
{
1314
public class ParseNodeTests
1415
{
16+
public ParseNodeTests()
17+
{
18+
OpenApiReaderRegistry.RegisterReader("yaml", new OpenApiYamlReader());
19+
}
20+
1521
[Fact]
1622
public void BrokenSimpleList()
1723
{
@@ -25,10 +31,9 @@ public void BrokenSimpleList()
2531
paths: { }
2632
""";
2733

28-
var reader = new OpenApiStringReader();
29-
reader.Read(input, out var diagnostic);
34+
var result = OpenApiDocument.Parse(input, "yaml");
3035

31-
diagnostic.Errors.Should().BeEquivalentTo(new List<OpenApiError>() {
36+
result.OpenApiDiagnostic.Errors.Should().BeEquivalentTo(new List<OpenApiError>() {
3237
new OpenApiError(new OpenApiReaderException("Expected a value.")),
3338
new OpenApiError("", "Paths is a REQUIRED field at #/")
3439
});
@@ -53,10 +58,9 @@ public void BadSchema()
5358
schema: asdasd
5459
""";
5560

56-
var reader = new OpenApiStringReader();
57-
reader.Read(input, out var diagnostic);
61+
var res= OpenApiDocument.Parse(input, "yaml");
5862

59-
diagnostic.Errors.Should().BeEquivalentTo(new List<OpenApiError>
63+
res.OpenApiDiagnostic.Errors.Should().BeEquivalentTo(new List<OpenApiError>
6064
{
6165
new(new OpenApiReaderException("schema must be a map/object") {
6266
Pointer = "#/paths/~1foo/get/responses/200/content/application~1json/schema"

test/Microsoft.OpenApi.Readers.Tests/ReferenceService/TryLoadReferenceV2Tests.cs

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,7 @@ public class TryLoadReferenceV2Tests
1919
public void LoadParameterReference()
2020
{
2121
// Arrange
22-
OpenApiDocument document;
23-
24-
using (var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "multipleReferences.v2.yaml")))
25-
{
26-
document = new OpenApiStreamReader().Read(stream, out var diagnostic);
27-
}
22+
var result = OpenApiDocument.Load(Path.Combine(SampleFolderPath, "multipleReferences.v2.yaml"));
2823

2924
var reference = new OpenApiReference
3025
{
@@ -33,7 +28,7 @@ public void LoadParameterReference()
3328
};
3429

3530
// Act
36-
var referencedObject = document.ResolveReferenceTo<OpenApiParameter>(reference);
31+
var referencedObject = result.OpenApiDocument.ResolveReferenceTo<OpenApiParameter>(reference);
3732

3833
// Assert
3934
referencedObject.Should().BeEquivalentTo(
@@ -58,13 +53,7 @@ public void LoadParameterReference()
5853
[Fact]
5954
public void LoadSecuritySchemeReference()
6055
{
61-
// Arrange
62-
OpenApiDocument document;
63-
64-
using (var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "multipleReferences.v2.yaml")))
65-
{
66-
document = new OpenApiStreamReader().Read(stream, out var diagnostic);
67-
}
56+
var result = OpenApiDocument.Load(Path.Combine(SampleFolderPath, "multipleReferences.v2.yaml"));
6857

6958
var reference = new OpenApiReference
7059
{
@@ -73,7 +62,7 @@ public void LoadSecuritySchemeReference()
7362
};
7463

7564
// Act
76-
var referencedObject = document.ResolveReferenceTo<OpenApiSecurityScheme>(reference);
65+
var referencedObject = result.OpenApiDocument.ResolveReferenceTo<OpenApiSecurityScheme>(reference);
7766

7867
// Assert
7968
referencedObject.Should().BeEquivalentTo(
@@ -94,13 +83,7 @@ public void LoadSecuritySchemeReference()
9483
[Fact]
9584
public void LoadResponseReference()
9685
{
97-
// Arrange
98-
OpenApiDocument document;
99-
100-
using (var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "multipleReferences.v2.yaml")))
101-
{
102-
document = new OpenApiStreamReader().Read(stream, out var diagnostic);
103-
}
86+
var result = OpenApiDocument.Load(Path.Combine(SampleFolderPath, "multipleReferences.v2.yaml"));
10487

10588
var reference = new OpenApiReference
10689
{
@@ -109,7 +92,7 @@ public void LoadResponseReference()
10992
};
11093

11194
// Act
112-
var referencedObject = document.ResolveReferenceTo<OpenApiResponse>(reference);
95+
var referencedObject = result.OpenApiDocument.ResolveReferenceTo<OpenApiResponse>(reference);
11396

11497
// Assert
11598
referencedObject.Should().BeEquivalentTo(
@@ -132,13 +115,8 @@ public void LoadResponseReference()
132115
[Fact]
133116
public void LoadResponseAndSchemaReference()
134117
{
135-
// Arrange
136-
OpenApiDocument document;
118+
var result = OpenApiDocument.Load(Path.Combine(SampleFolderPath, "multipleReferences.v2.yaml"));
137119

138-
using (var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "multipleReferences.v2.yaml")))
139-
{
140-
document = new OpenApiStreamReader().Read(stream, out var diagnostic);
141-
}
142120

143121
var reference = new OpenApiReference
144122
{
@@ -147,7 +125,7 @@ public void LoadResponseAndSchemaReference()
147125
};
148126

149127
// Act
150-
var referencedObject = document.ResolveReferenceTo<OpenApiResponse>(reference);
128+
var referencedObject = result.OpenApiDocument.ResolveReferenceTo<OpenApiResponse>(reference);
151129

152130
// Assert
153131
referencedObject.Should().BeEquivalentTo(

test/Microsoft.OpenApi.Readers.Tests/TestCustomExtension.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Text.Json.Nodes;
55
using FluentAssertions;
66
using Microsoft.OpenApi.Interfaces;
7+
using Microsoft.OpenApi.Models;
78
using Microsoft.OpenApi.Reader;
89
using Microsoft.OpenApi.Writers;
910
using Xunit;
@@ -37,13 +38,11 @@ public void ParseCustomExtension()
3738
} } }
3839
};
3940

40-
var reader = new OpenApiStringReader(settings);
41-
41+
OpenApiReaderRegistry.RegisterReader("yaml", new OpenApiYamlReader());
4242
var diag = new OpenApiDiagnostic();
43-
var doc = reader.Read(description, out diag);
43+
var actual = OpenApiDocument.Parse(description, "yaml", settings: settings);
4444

45-
var fooExtension = doc.Info.Extensions["x-foo"] as FooExtension;
46-
//var fooExtension = JsonSerializer.Deserialize<FooExtension>(fooExtensionNode);
45+
var fooExtension = actual.OpenApiDocument.Info.Extensions["x-foo"] as FooExtension;
4746

4847
fooExtension.Should().NotBeNull();
4948
fooExtension.Bar.Should().Be("hey");

test/Microsoft.OpenApi.Readers.Tests/V2Tests/ComparisonTests.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System.IO;
55
using FluentAssertions;
6+
using Microsoft.OpenApi.Models;
67
using Xunit;
78

89
namespace Microsoft.OpenApi.Readers.Tests.V2Tests
@@ -20,12 +21,12 @@ public void EquivalentV2AndV3DocumentsShouldProductEquivalentObjects(string file
2021
{
2122
using var streamV2 = Resources.GetStream(Path.Combine(SampleFolderPath, $"{fileName}.v2.yaml"));
2223
using var streamV3 = Resources.GetStream(Path.Combine(SampleFolderPath, $"{fileName}.v3.yaml"));
23-
var openApiDocV2 = new OpenApiStreamReader().Read(streamV2, out var diagnosticV2);
24-
var openApiDocV3 = new OpenApiStreamReader().Read(streamV3, out var diagnosticV3);
24+
var result1 = OpenApiDocument.Load(Path.Combine(SampleFolderPath, $"{fileName}.v2.yaml"));
25+
var result2 = OpenApiDocument.Load(Path.Combine(SampleFolderPath, $"{fileName}.v3.yaml"));
2526

26-
openApiDocV3.Should().BeEquivalentTo(openApiDocV2);
27+
result2.OpenApiDocument.Should().BeEquivalentTo(result1.OpenApiDocument);
2728

28-
diagnosticV2.Errors.Should().BeEquivalentTo(diagnosticV3.Errors);
29+
result1.OpenApiDiagnostic.Errors.Should().BeEquivalentTo(result2.OpenApiDiagnostic.Errors);
2930
}
3031
}
3132
}

test/Microsoft.OpenApi.Readers.Tests/V2Tests/OpenApiContactTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,9 @@ public void ParseStringContactFragmentShouldSucceed()
2121
"email": "[email protected]"
2222
}
2323
""";
24-
var reader = new OpenApiStringReader();
2524

2625
// Act
27-
var contact = reader.ReadFragment<OpenApiContact>(input, OpenApiSpecVersion.OpenApi2_0, out var diagnostic);
26+
var contact = OpenApiModelFactory.Parse<OpenApiContact>(input, OpenApiSpecVersion.OpenApi2_0, out var diagnostic);
2827

2928
// Assert
3029
diagnostic.Should().BeEquivalentTo(new OpenApiDiagnostic());

0 commit comments

Comments
 (0)