77 lines
2.5 KiB
C#
77 lines
2.5 KiB
C#
using SuiteLink.Client;
|
|
|
|
namespace SuiteLink.Client.Tests;
|
|
|
|
public sealed class SuiteLinkValueTests
|
|
{
|
|
[Fact]
|
|
public void Default_ValueIsNone_AndTryGetMethodsReturnFalse()
|
|
{
|
|
var value = default(SuiteLinkValue);
|
|
|
|
Assert.Equal(SuiteLinkValueKind.None, value.Kind);
|
|
Assert.False(value.TryGetBoolean(out _));
|
|
Assert.False(value.TryGetInt32(out _));
|
|
Assert.False(value.TryGetFloat32(out _));
|
|
Assert.False(value.TryGetString(out _));
|
|
}
|
|
|
|
[Fact]
|
|
public void FromBoolean_CreatesBooleanValue_AndTryGetBooleanSucceeds()
|
|
{
|
|
var value = SuiteLinkValue.FromBoolean(true);
|
|
|
|
Assert.Equal(SuiteLinkValueKind.Boolean, value.Kind);
|
|
Assert.True(value.TryGetBoolean(out var boolValue));
|
|
Assert.True(boolValue);
|
|
Assert.False(value.TryGetInt32(out _));
|
|
Assert.False(value.TryGetFloat32(out _));
|
|
Assert.False(value.TryGetString(out _));
|
|
}
|
|
|
|
[Fact]
|
|
public void FromInt32_CreatesInt32Value_AndTryGetInt32Succeeds()
|
|
{
|
|
var value = SuiteLinkValue.FromInt32(42);
|
|
|
|
Assert.Equal(SuiteLinkValueKind.Int32, value.Kind);
|
|
Assert.True(value.TryGetInt32(out var intValue));
|
|
Assert.Equal(42, intValue);
|
|
Assert.False(value.TryGetBoolean(out _));
|
|
Assert.False(value.TryGetFloat32(out _));
|
|
Assert.False(value.TryGetString(out _));
|
|
}
|
|
|
|
[Fact]
|
|
public void FromFloat32_CreatesFloat32Value_AndTryGetFloat32Succeeds()
|
|
{
|
|
var value = SuiteLinkValue.FromFloat32(12.5f);
|
|
|
|
Assert.Equal(SuiteLinkValueKind.Float32, value.Kind);
|
|
Assert.True(value.TryGetFloat32(out var floatValue));
|
|
Assert.Equal(12.5f, floatValue);
|
|
Assert.False(value.TryGetBoolean(out _));
|
|
Assert.False(value.TryGetInt32(out _));
|
|
Assert.False(value.TryGetString(out _));
|
|
}
|
|
|
|
[Fact]
|
|
public void FromString_CreatesStringValue_AndTryGetStringSucceeds()
|
|
{
|
|
var value = SuiteLinkValue.FromString("tag-value");
|
|
|
|
Assert.Equal(SuiteLinkValueKind.String, value.Kind);
|
|
Assert.True(value.TryGetString(out var stringValue));
|
|
Assert.Equal("tag-value", stringValue);
|
|
Assert.False(value.TryGetBoolean(out _));
|
|
Assert.False(value.TryGetInt32(out _));
|
|
Assert.False(value.TryGetFloat32(out _));
|
|
}
|
|
|
|
[Fact]
|
|
public void FromString_NullValue_ThrowsArgumentNullException()
|
|
{
|
|
Assert.Throws<ArgumentNullException>(() => SuiteLinkValue.FromString(null!));
|
|
}
|
|
}
|