feat: bootstrap suitelink tag client codecs
This commit is contained in:
76
tests/SuiteLink.Client.Tests/SuiteLinkValueTests.cs
Normal file
76
tests/SuiteLink.Client.Tests/SuiteLinkValueTests.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
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!));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user