Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions src/Microsoft.OpenApi.Readers/OpenApiStreamReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,8 @@ public async Task<ReadResult> ReadAsync(Stream input, CancellationToken cancella
bufferedStream.Position = 0;
}

using (var reader = new StreamReader(bufferedStream))
{
return await new OpenApiTextReaderReader(_settings).ReadAsync(reader, cancellationToken);
}
using var reader = new StreamReader(bufferedStream);
return await new OpenApiTextReaderReader(_settings).ReadAsync(reader, cancellationToken);
}

/// <summary>
Expand All @@ -88,10 +86,8 @@ public async Task<ReadResult> ReadAsync(Stream input, CancellationToken cancella
/// <returns>Instance of newly created OpenApiDocument</returns>
public T ReadFragment<T>(Stream input, OpenApiSpecVersion version, out OpenApiDiagnostic diagnostic) where T : IOpenApiReferenceable
{
using (var reader = new StreamReader(input))
{
return new OpenApiTextReaderReader(_settings).ReadFragment<T>(reader, version, out diagnostic);
}
using var reader = new StreamReader(input);
return new OpenApiTextReaderReader(_settings).ReadFragment<T>(reader, version, out diagnostic);
}
}
}
12 changes: 4 additions & 8 deletions src/Microsoft.OpenApi.Readers/OpenApiStringReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,17 @@ public OpenApiStringReader(OpenApiReaderSettings settings = null)
/// </summary>
public OpenApiDocument Read(string input, out OpenApiDiagnostic diagnostic)
{
using (var reader = new StringReader(input))
{
return new OpenApiTextReaderReader(_settings).Read(reader, out diagnostic);
}
using var reader = new StringReader(input);
return new OpenApiTextReaderReader(_settings).Read(reader, out diagnostic);
}

/// <summary>
/// Reads the string input and parses it into an Open API element.
/// </summary>
public T ReadFragment<T>(string input, OpenApiSpecVersion version, out OpenApiDiagnostic diagnostic) where T : IOpenApiElement
{
using (var reader = new StringReader(input))
{
return new OpenApiTextReaderReader(_settings).ReadFragment<T>(reader, version, out diagnostic);
}
using var reader = new StringReader(input);
return new OpenApiTextReaderReader(_settings).ReadFragment<T>(reader, version, out diagnostic);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -179,16 +179,12 @@ public static string Serialize<T>(
throw Error.ArgumentNull(nameof(element));
}

using (var stream = new MemoryStream())
{
element.Serialize(stream, specVersion, format);
stream.Position = 0;
using var stream = new MemoryStream();
element.Serialize(stream, specVersion, format);
stream.Position = 0;

using (var streamReader = new StreamReader(stream))
{
return streamReader.ReadToEnd();
}
}
using var streamReader = new StreamReader(stream);
return streamReader.ReadToEnd();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,21 @@ public class OpenApiDiagnosticTests
[Fact]
public void DetectedSpecificationVersionShouldBeV2_0()
{
using (var stream = Resources.GetStream("V2Tests/Samples/basic.v2.yaml"))
{
new OpenApiStreamReader().Read(stream, out var diagnostic);
using var stream = Resources.GetStream("V2Tests/Samples/basic.v2.yaml");
new OpenApiStreamReader().Read(stream, out var diagnostic);

diagnostic.Should().NotBeNull();
diagnostic.SpecificationVersion.Should().Be(OpenApiSpecVersion.OpenApi2_0);
}
diagnostic.Should().NotBeNull();
diagnostic.SpecificationVersion.Should().Be(OpenApiSpecVersion.OpenApi2_0);
}

[Fact]
public void DetectedSpecificationVersionShouldBeV3_0()
{
using (var stream = Resources.GetStream("V3Tests/Samples/OpenApiDocument/minimalDocument.yaml"))
{
new OpenApiStreamReader().Read(stream, out var diagnostic);
using var stream = Resources.GetStream("V3Tests/Samples/OpenApiDocument/minimalDocument.yaml");
new OpenApiStreamReader().Read(stream, out var diagnostic);

diagnostic.Should().NotBeNull();
diagnostic.SpecificationVersion.Should().Be(OpenApiSpecVersion.OpenApi3_0);
}
diagnostic.Should().NotBeNull();
diagnostic.SpecificationVersion.Should().Be(OpenApiSpecVersion.OpenApi3_0);
}

[Fact]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,19 @@ public class OpenApiStreamReaderTests
[Fact]
public void StreamShouldCloseIfLeaveStreamOpenSettingEqualsFalse()
{
using (var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "petStore.yaml")))
{
var reader = new OpenApiStreamReader(new OpenApiReaderSettings { LeaveStreamOpen = false });
reader.Read(stream, out _);
Assert.False(stream.CanRead);
}
using var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "petStore.yaml"));
var reader = new OpenApiStreamReader(new OpenApiReaderSettings { LeaveStreamOpen = false });
reader.Read(stream, out _);
Assert.False(stream.CanRead);
}

[Fact]
public void StreamShouldNotCloseIfLeaveStreamOpenSettingEqualsTrue()
{
using (var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "petStore.yaml")))
{
var reader = new OpenApiStreamReader(new OpenApiReaderSettings { LeaveStreamOpen = true});
reader.Read(stream, out _);
Assert.True(stream.CanRead);
}
using var stream = Resources.GetStream(Path.Combine(SampleFolderPath, "petStore.yaml"));
var reader = new OpenApiStreamReader(new OpenApiReaderSettings { LeaveStreamOpen = true});
reader.Read(stream, out _);
Assert.True(stream.CanRead);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,14 @@ public class UnsupportedSpecVersionTests
[Fact]
public void ThrowOpenApiUnsupportedSpecVersionException()
{
using (var stream = Resources.GetStream("OpenApiReaderTests/Samples/unsupported.v1.yaml"))
using var stream = Resources.GetStream("OpenApiReaderTests/Samples/unsupported.v1.yaml");
try
{
try
{
new OpenApiStreamReader().Read(stream, out var diagnostic);
}
catch (OpenApiUnsupportedSpecVersionException exception)
{
exception.SpecificationVersion.Should().Be("1.0.0");
}
new OpenApiStreamReader().Read(stream, out var diagnostic);
}
catch (OpenApiUnsupportedSpecVersionException exception)
{
exception.SpecificationVersion.Should().Be("1.0.0");
}
}
}
Expand Down
8 changes: 3 additions & 5 deletions test/Microsoft.OpenApi.Readers.Tests/Resources.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,9 @@ internal static class Resources
/// <returns>The file contents.</returns>
public static string GetString(string fileName)
{
using (Stream stream = GetStream(fileName))
using (TextReader reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
using Stream stream = GetStream(fileName);
using TextReader reader = new StreamReader(stream);
return reader.ReadToEnd();
}

/// <summary>
Expand Down
14 changes: 6 additions & 8 deletions test/Microsoft.OpenApi.Readers.Tests/V2Tests/ComparisonTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,14 @@ public class ComparisonTests
//[InlineData("definitions")] //Currently broken due to V3 references not behaving the same as V2
public void EquivalentV2AndV3DocumentsShouldProductEquivalentObjects(string fileName)
{
using (var streamV2 = Resources.GetStream(Path.Combine(SampleFolderPath, $"{fileName}.v2.yaml")))
using (var streamV3 = Resources.GetStream(Path.Combine(SampleFolderPath, $"{fileName}.v3.yaml")))
{
var openApiDocV2 = new OpenApiStreamReader().Read(streamV2, out var diagnosticV2);
var openApiDocV3 = new OpenApiStreamReader().Read(streamV3, out var diagnosticV3);
using var streamV2 = Resources.GetStream(Path.Combine(SampleFolderPath, $"{fileName}.v2.yaml"));
using var streamV3 = Resources.GetStream(Path.Combine(SampleFolderPath, $"{fileName}.v3.yaml"));
var openApiDocV2 = new OpenApiStreamReader().Read(streamV2, out var diagnosticV2);
var openApiDocV3 = new OpenApiStreamReader().Read(streamV3, out var diagnosticV3);

openApiDocV3.Should().BeEquivalentTo(openApiDocV2);
openApiDocV3.Should().BeEquivalentTo(openApiDocV2);

diagnosticV2.Errors.Should().BeEquivalentTo(diagnosticV3.Errors);
}
diagnosticV2.Errors.Should().BeEquivalentTo(diagnosticV3.Errors);
}
}
}
Loading