Skip to content
Prev Previous commit
Next Next commit
Pass the Diagnostic object to the class instances
  • Loading branch information
MaggieKimani1 committed Feb 15, 2022
commit a7b1e1e37175a7702ee3d772b72c6398f25ceea7
8 changes: 4 additions & 4 deletions src/Microsoft.OpenApi.Readers/ParsingContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,13 @@ internal OpenApiDocument Parse(YamlDocument yamlDocument)
switch (inputVersion)
{
case string version when version == "2.0":
VersionService = new OpenApiV2VersionService();
VersionService = new OpenApiV2VersionService(Diagnostic);
doc = VersionService.LoadDocument(RootNode);
this.Diagnostic.SpecificationVersion = OpenApiSpecVersion.OpenApi2_0;
break;

case string version when version.StartsWith("3.0"):
VersionService = new OpenApiV3VersionService();
VersionService = new OpenApiV3VersionService(Diagnostic);
doc = VersionService.LoadDocument(RootNode);
this.Diagnostic.SpecificationVersion = OpenApiSpecVersion.OpenApi3_0;
break;
Expand All @@ -93,12 +93,12 @@ internal T ParseFragment<T>(YamlDocument yamlDocument, OpenApiSpecVersion versio
switch (version)
{
case OpenApiSpecVersion.OpenApi2_0:
VersionService = new OpenApiV2VersionService();
VersionService = new OpenApiV2VersionService(Diagnostic);
element = this.VersionService.LoadElement<T>(node);
break;

case OpenApiSpecVersion.OpenApi3_0:
this.VersionService = new OpenApiV3VersionService();
this.VersionService = new OpenApiV3VersionService(Diagnostic);
element = this.VersionService.LoadElement<T>(node);
break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,18 @@ namespace Microsoft.OpenApi.Readers.Tests
{
public class ConvertToOpenApiReferenceV2Tests
{
public OpenApiDiagnostic Diagnostic{get;}

public ConvertToOpenApiReferenceV2Tests()
{
Diagnostic = new OpenApiDiagnostic();
}

[Fact]
public void ParseExternalReference()
{
// Arrange
var versionService = new OpenApiV2VersionService();
var versionService = new OpenApiV2VersionService(Diagnostic);
var externalResource = "externalSchema.json";
var id = "externalPathSegment1/externalPathSegment2/externalPathSegment3";
var input = $"{externalResource}#/{id}";
Expand All @@ -33,7 +39,7 @@ public void ParseExternalReference()
public void ParseLocalParameterReference()
{
// Arrange
var versionService = new OpenApiV2VersionService();
var versionService = new OpenApiV2VersionService(Diagnostic);
var referenceType = ReferenceType.Parameter;
var id = "parameterId";
var input = $"#/parameters/{id}";
Expand All @@ -51,7 +57,7 @@ public void ParseLocalParameterReference()
public void ParseLocalSchemaReference()
{
// Arrange
var versionService = new OpenApiV2VersionService();
var versionService = new OpenApiV2VersionService(Diagnostic);
var referenceType = ReferenceType.Schema;
var id = "parameterId";
var input = $"#/definitions/{id}";
Expand All @@ -69,7 +75,7 @@ public void ParseLocalSchemaReference()
public void ParseTagReference()
{
// Arrange
var versionService = new OpenApiV2VersionService();
var versionService = new OpenApiV2VersionService(Diagnostic);
var referenceType = ReferenceType.Tag;
var id = "tagId";
var input = $"{id}";
Expand All @@ -87,7 +93,7 @@ public void ParseTagReference()
public void ParseSecuritySchemeReference()
{
// Arrange
var versionService = new OpenApiV2VersionService();
var versionService = new OpenApiV2VersionService(Diagnostic);
var referenceType = ReferenceType.SecurityScheme;
var id = "securitySchemeId";
var input = $"{id}";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,20 @@ namespace Microsoft.OpenApi.Readers.Tests
{
public class ConvertToOpenApiReferenceV3Tests
{
public OpenApiDiagnostic Diagnostic { get; }

public ConvertToOpenApiReferenceV3Tests()
{
Diagnostic = new OpenApiDiagnostic();
}



[Fact]
public void ParseExternalReference()
{
// Arrange
var versionService = new OpenApiV3VersionService();
var versionService = new OpenApiV3VersionService(Diagnostic);
var externalResource = "externalSchema.json";
var id = "/externalPathSegment1/externalPathSegment2/externalPathSegment3";
var input = $"{externalResource}#{id}";
Expand All @@ -33,7 +41,7 @@ public void ParseExternalReference()
public void ParseLocalParameterReference()
{
// Arrange
var versionService = new OpenApiV3VersionService();
var versionService = new OpenApiV3VersionService(Diagnostic);
var referenceType = ReferenceType.Parameter;
var id = "parameterId";
var input = $"#/components/parameters/{id}";
Expand All @@ -51,7 +59,7 @@ public void ParseLocalParameterReference()
public void ParseLocalSchemaReference()
{
// Arrange
var versionService = new OpenApiV3VersionService();
var versionService = new OpenApiV3VersionService(Diagnostic);
var referenceType = ReferenceType.Schema;
var id = "schemaId";
var input = $"#/components/schemas/{id}";
Expand All @@ -69,7 +77,7 @@ public void ParseLocalSchemaReference()
public void ParseTagReference()
{
// Arrange
var versionService = new OpenApiV3VersionService();
var versionService = new OpenApiV3VersionService(Diagnostic);
var referenceType = ReferenceType.Tag;
var id = "tagId";
var input = $"{id}";
Expand All @@ -87,7 +95,7 @@ public void ParseTagReference()
public void ParseSecuritySchemeReference()
{
// Arrange
var versionService = new OpenApiV3VersionService();
var versionService = new OpenApiV3VersionService(Diagnostic);
var referenceType = ReferenceType.SecurityScheme;
var id = "securitySchemeId";
var input = $"{id}";
Expand Down