Files
2026-10-23 18:46:50 +02:00

60 lines
1.5 KiB
C#

using Omika.Core.Observability;
namespace Omika.Tests.Observability;
public class TelemetryMetadataTests
{
[Fact]
public void Create_RetainsValidEntries()
{
TelemetryMetadata metadata = TelemetryMetadata.Create(("count", 42), ("ok", true));
Assert.Equal(2, metadata.Count);
}
[Fact]
public void Create_DropsNullKey()
{
TelemetryMetadata metadata = TelemetryMetadata.Create((null!, 42));
Assert.Equal(0, metadata.Count);
}
[Fact]
public void Create_DropsWhitespaceKey()
{
TelemetryMetadata metadata = TelemetryMetadata.Create((" ", 42));
Assert.Equal(0, metadata.Count);
}
[Fact]
public void Create_DropsInvalidValue()
{
TelemetryMetadata metadata = TelemetryMetadata.Create(("bad", TelemetryValue.Invalid));
Assert.Equal(0, metadata.Count);
}
[Fact]
public void Create_DeduplicatesByKey_FirstWins()
{
TelemetryMetadata metadata = TelemetryMetadata.Create(("k", 1), ("k", 2));
Assert.Equal(1, metadata.Count);
Assert.Equal(1, (int)metadata.Entries[0].Value.Value!);
}
[Fact]
public void Create_Empty_ReturnsEmpty()
{
Assert.Same(TelemetryMetadata.Empty, TelemetryMetadata.Create());
}
[Fact]
public void Create_Null_ReturnsEmpty()
{
Assert.Same(TelemetryMetadata.Empty, TelemetryMetadata.Create((IEnumerable<KeyValuePair<string, TelemetryValue>>)null!));
}
}