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
5 changes: 5 additions & 0 deletions src/Microsoft.OpenApi/Models/OpenApiConstants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,11 @@
/// </summary>
public const string Identifier = "identifier";

/// <summary>
/// Field: x-oai-license-identifier
/// </summary>
public const string OaiLicenseIdentifier = "x-oai-license-identifier";

/// <summary>
/// Field: Namespace
/// </summary>
Expand Down Expand Up @@ -818,17 +823,17 @@
/// <summary>
/// Field: V3 JsonSchema Reference Uri
/// </summary>
public const string V3ReferenceUri = "https://registry/components/schemas/";

Check warning on line 826 in src/Microsoft.OpenApi/Models/OpenApiConstants.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor your code not to use hardcoded absolute paths or URIs.

Check warning on line 826 in src/Microsoft.OpenApi/Models/OpenApiConstants.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor your code not to use hardcoded absolute paths or URIs.

Check warning on line 826 in src/Microsoft.OpenApi/Models/OpenApiConstants.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor your code not to use hardcoded absolute paths or URIs.

/// <summary>
/// Field: V2 JsonSchema Reference Uri
/// </summary>
public const string V2ReferenceUri = "https://registry/definitions/";

Check warning on line 831 in src/Microsoft.OpenApi/Models/OpenApiConstants.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor your code not to use hardcoded absolute paths or URIs.

Check warning on line 831 in src/Microsoft.OpenApi/Models/OpenApiConstants.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor your code not to use hardcoded absolute paths or URIs.

Check warning on line 831 in src/Microsoft.OpenApi/Models/OpenApiConstants.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor your code not to use hardcoded absolute paths or URIs.

/// <summary>
/// The default registry uri for OpenApi documents and workspaces
/// </summary>
public const string BaseRegistryUri = "https://openapi.net/";

Check warning on line 836 in src/Microsoft.OpenApi/Models/OpenApiConstants.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor your code not to use hardcoded absolute paths or URIs.

Check warning on line 836 in src/Microsoft.OpenApi/Models/OpenApiConstants.cs

View workflow job for this annotation

GitHub Actions / Build

Refactor your code not to use hardcoded absolute paths or URIs.

/// <summary>
/// The components path segment in a $ref value.
Expand Down
2 changes: 2 additions & 0 deletions src/Microsoft.OpenApi/Models/OpenApiLicense.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public virtual void SerializeAsV31(IOpenApiWriter writer)
public virtual void SerializeAsV3(IOpenApiWriter writer)
{
WriteInternal(writer, OpenApiSpecVersion.OpenApi3_0);
writer.WriteProperty(OpenApiConstants.OaiLicenseIdentifier, Identifier);
writer.WriteEndObject();
}

Expand All @@ -82,6 +83,7 @@ public virtual void SerializeAsV3(IOpenApiWriter writer)
public virtual void SerializeAsV2(IOpenApiWriter writer)
{
WriteInternal(writer, OpenApiSpecVersion.OpenApi2_0);
writer.WriteProperty(OpenApiConstants.OaiLicenseIdentifier, Identifier);
writer.WriteEndObject();
}

Expand Down
1 change: 1 addition & 0 deletions src/Microsoft.OpenApi/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#nullable enable
const Microsoft.OpenApi.OpenApiConstants.OaiLicenseIdentifier = "x-oai-license-identifier" -> string!
35 changes: 35 additions & 0 deletions test/Microsoft.OpenApi.Tests/Models/OpenApiLicenseTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,25 @@ public async Task SerializeLicenseWithIdentifierAsJsonWorks()
Assert.Equal(expected.MakeLineBreaksEnvironmentNeutral(), actual.MakeLineBreaksEnvironmentNeutral());
}

[Theory]
[InlineData(OpenApiSpecVersion.OpenApi3_0)]
[InlineData(OpenApiSpecVersion.OpenApi2_0)]
public async Task SerializeLicenseWithIdentifierAsJsonWorksForV3AndV2(OpenApiSpecVersion version)
{
// Arrange
var expected =
@"{
""name"": ""Apache 2.0"",
""x-oai-license-identifier"": ""Apache-2.0""
}";

// Act
var actual = await LicenseWithIdentifier.SerializeAsJsonAsync(version);

// Assert
Assert.Equal(expected.MakeLineBreaksEnvironmentNeutral(), actual.MakeLineBreaksEnvironmentNeutral());
}

[Fact]
public async Task SerializeLicenseWithIdentifierAsYamlWorks()
{
Expand All @@ -161,5 +180,21 @@ public async Task SerializeLicenseWithIdentifierAsYamlWorks()
// Assert
Assert.Equal(expected.MakeLineBreaksEnvironmentNeutral(), actual.MakeLineBreaksEnvironmentNeutral());
}

[Theory]
[InlineData(OpenApiSpecVersion.OpenApi3_0)]
[InlineData(OpenApiSpecVersion.OpenApi2_0)]
public async Task SerializeLicenseWithIdentifierAsYamlWorksForV3AndV2(OpenApiSpecVersion version)
{
// Arrange
var expected = @"name: Apache 2.0
x-oai-license-identifier: Apache-2.0";

// Act
var actual = await LicenseWithIdentifier.SerializeAsYamlAsync(version);

// Assert
Assert.Equal(expected.MakeLineBreaksEnvironmentNeutral(), actual.MakeLineBreaksEnvironmentNeutral());
}
}
}
Loading