diff --git a/src/Microsoft.OpenApi/Models/OpenApiDocument.cs b/src/Microsoft.OpenApi/Models/OpenApiDocument.cs index 0ac0c1941..62a1afa22 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiDocument.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiDocument.cs @@ -89,6 +89,7 @@ public ISet? Tags { if (value is null) { + _tags = null; return; } _tags = value switch diff --git a/test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs b/test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs index 7a47b8597..f7095bd31 100644 --- a/test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs +++ b/test/Microsoft.OpenApi.Tests/Models/OpenApiDocumentTests.cs @@ -2145,6 +2145,17 @@ public void TagsSupportsCustomComparer() Assert.Equal(2, document.Tags.Count); } + [Fact] + public void TagsCanBeReInitializedToNull() + { + var document = new OpenApiDocument(); + Assert.Null(document.Tags); + document.Tags = new HashSet(); + Assert.NotNull(document.Tags); + document.Tags = null; + Assert.Null(document.Tags); + } + private sealed class CaseInsensitiveOpenApiTagEqualityComparer : IEqualityComparer { public bool Equals(OpenApiTag x, OpenApiTag y)