60 lines
1.5 KiB
C#
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!));
|
|
}
|
|
}
|