Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e36fc95

Browse filesBrowse files
committed
fix(schema): always serialize additionalProperties: false
* Updates serialization logic to emit `additionalProperties: false` for all OpenAPI versions when `AdditionalPropertiesAllowed` is false. * Refactors related test to a theory and verifies behavior for both OpenAPI 3.0 and 3.1. * Ensures consistent schema output across OpenAPI versions.
1 parent 61cfb91 commit e36fc95
Copy full SHA for e36fc95

2 files changed

+7-6Lines changed: 7 additions & 6 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎src/Microsoft.OpenApi/Models/OpenApiSchema.cs‎

Copy file name to clipboardExpand all lines: src/Microsoft.OpenApi/Models/OpenApiSchema.cs
+2-3Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -489,9 +489,8 @@ private void SerializeInternal(IOpenApiWriter writer, OpenApiSpecVersion version
489489
AdditionalProperties,
490490
callback);
491491
}
492-
// true is the default in earlier versions 3, no need to write it out
493-
// boolean value is only supported for version 3 and earlier (version 2 is implemented in the other serialize method, the condition is a failsafe)
494-
else if (!AdditionalPropertiesAllowed && version <= OpenApiSpecVersion.OpenApi3_0)
492+
// true is the default, no need to write it out
493+
else if (!AdditionalPropertiesAllowed)
495494
{
496495
writer.WriteProperty(OpenApiConstants.AdditionalProperties, AdditionalPropertiesAllowed);
497496
}
Collapse file

‎test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs‎

Copy file name to clipboardExpand all lines: test/Microsoft.OpenApi.Tests/Models/OpenApiSchemaTests.cs
+5-3Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -754,8 +754,10 @@ public async Task SerializeAdditionalPropertiesAllowedAsV3PlusDefaultDoesNotEmit
754754
Assert.True(JsonNode.DeepEquals(JsonNode.Parse(expected), JsonNode.Parse(actual)));
755755
}
756756

757-
[Fact]
758-
public async Task SerializeAdditionalPropertiesAllowedAsV3FalseEmits()
757+
[Theory]
758+
[InlineData(OpenApiSpecVersion.OpenApi3_0)]
759+
[InlineData(OpenApiSpecVersion.OpenApi3_1)]
760+
public async Task SerializeAdditionalPropertiesAllowedAsV3PlusFalseEmits(OpenApiSpecVersion version)
759761
{
760762
var expected = @"{ ""additionalProperties"": false }";
761763
// Given
@@ -765,7 +767,7 @@ public async Task SerializeAdditionalPropertiesAllowedAsV3FalseEmits()
765767
};
766768

767769
// When
768-
var actual = await schema.SerializeAsJsonAsync(OpenApiSpecVersion.OpenApi3_0);
770+
var actual = await schema.SerializeAsJsonAsync(version);
769771

770772
// Then
771773
Assert.True(JsonNode.DeepEquals(JsonNode.Parse(expected), JsonNode.Parse(actual)));

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.