Skip to content

Commit 6651c36

Browse files
authored
Merge pull request #2652 from codijk/fix/2646_additional_properties
fix(schema): always serialize `additionalProperties: false`
2 parents 61cfb91 + e36fc95 commit 6651c36

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/Microsoft.OpenApi/Models/OpenApiSchema.cs

Lines 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
}

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

Lines 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)