diff --git a/src/OpenFeature/Model/ImmutableMetadata.cs b/src/OpenFeature/Model/ImmutableMetadata.cs index 7295d8b5..aec0c541 100644 --- a/src/OpenFeature/Model/ImmutableMetadata.cs +++ b/src/OpenFeature/Model/ImmutableMetadata.cs @@ -11,6 +11,14 @@ public sealed class ImmutableMetadata { private readonly ImmutableDictionary _metadata; + /// + /// Gets a value indicating whether this instance is empty. + /// + /// + /// true if this instance is empty; otherwise, false. + /// + public bool IsEmpty => this._metadata.Count == 0; + /// /// Constructor for the class. /// diff --git a/test/OpenFeature.Tests/ImmutableMetadataTest.cs b/test/OpenFeature.Tests/ImmutableMetadataTest.cs index 7f3cf3b4..673b6dde 100644 --- a/test/OpenFeature.Tests/ImmutableMetadataTest.cs +++ b/test/OpenFeature.Tests/ImmutableMetadataTest.cs @@ -315,4 +315,48 @@ public void Count_ShouldReturnCountOfMetadata() // Assert Assert.Equal(metadata.Count, result); } + + [Fact] + public void IsEmpty_ShouldReturnTrue() + { + // Arrange + var flagMetadata = new ImmutableMetadata(); + + // Act + var result = flagMetadata.IsEmpty; + + // Assert + Assert.True(result); + } + + [Fact] + public void IsEmpty_ShouldReturnFalse() + { + // Arrange + var metadata = new Dictionary + { + { + "wrongKey", new object() + }, + { + "stringKey", "11" + }, + { + "doubleKey", 1.2 + }, + { + "intKey", 1 + }, + { + "boolKey", true + } + }; + var flagMetadata = new ImmutableMetadata(metadata); + + // Act + var result = flagMetadata.IsEmpty; + + // Assert + Assert.False(result); + } }