69 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|