diff --git a/src/Microsoft.OpenApi/Models/OpenApiDocument.cs b/src/Microsoft.OpenApi/Models/OpenApiDocument.cs index d4fee9a96..a6571967b 100644 --- a/src/Microsoft.OpenApi/Models/OpenApiDocument.cs +++ b/src/Microsoft.OpenApi/Models/OpenApiDocument.cs @@ -84,6 +84,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 10b1f6016..b4cfe2543 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)