Files
Omika/tests/Omika.Tests/Observability/TelemetryValueTests.cs
T
2026-10-23 18:46:50 +02:00

69 lines
1.6 KiB
C#

using Omika.Core.Observability;
namespace Omika.Tests.Observability;
public class TelemetryValueTests
{
private enum SampleEnum
{
A,
B
}
[Fact]
public void String_IsValid()
{
TelemetryValue value = "hello";
Assert.True(value.IsValid);
Assert.Equal(TelemetryValueKind.String, value.Kind);
Assert.Equal("hello", value.Value);
}
[Fact]
public void NullString_IsInvalid()
{
TelemetryValue value = (string)null!;
Assert.False(value.IsValid);
}
[Theory]
[InlineData(double.NaN)]
[InlineData(double.PositiveInfinity)]
[InlineData(double.NegativeInfinity)]
public void NonFiniteDouble_IsInvalid(double number)
{
TelemetryValue value = number;
Assert.False(value.IsValid);
}
[Fact]
public void SimpleTypes_AreValid()
{
Assert.True(((TelemetryValue)true).IsValid);
Assert.True(((TelemetryValue)42).IsValid);
Assert.True(((TelemetryValue)42L).IsValid);
Assert.True(((TelemetryValue)1.5).IsValid);
Assert.True(((TelemetryValue)Guid.NewGuid()).IsValid);
Assert.True(((TelemetryValue)DateTimeOffset.UtcNow).IsValid);
}
[Fact]
public void FromEnum_IsValid_AndStoresName()
{
TelemetryValue value = TelemetryValue.FromEnum(SampleEnum.B);
Assert.True(value.IsValid);
Assert.Equal(TelemetryValueKind.String, value.Kind);
Assert.Equal("B", value.Value);
}
[Fact]
public void Default_IsInvalid()
{
Assert.False(default(TelemetryValue).IsValid);
}
}