Files
unity-application/Packages/com.github.homuler.mediapipe/Tests/EditMode/Framework/Port/StatusOrStringTest.cs
2023-03-12 20:34:16 +00:00

88 lines
2.1 KiB
C#

// Copyright (c) 2021 homuler
//
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.
using NUnit.Framework;
namespace Mediapipe.Tests
{
public class StatusOrStringTest
{
#region #status
[Test]
public void Status_ShouldReturnOk_When_StatusIsOk()
{
using (var statusOrString = InitializeSubject(""))
{
Assert.True(statusOrString.Ok());
Assert.AreEqual(Status.StatusCode.Ok, statusOrString.status.Code());
}
}
#endregion
#region #isDisposed
[Test]
public void IsDisposed_ShouldReturnFalse_When_NotDisposedYet()
{
using (var statusOrString = InitializeSubject(""))
{
Assert.False(statusOrString.isDisposed);
}
}
[Test]
public void IsDisposed_ShouldReturnTrue_When_AlreadyDisposed()
{
var statusOrString = InitializeSubject("");
statusOrString.Dispose();
Assert.True(statusOrString.isDisposed);
}
#endregion
#region #Value
[Test]
public void Value_ShouldReturnString_When_StatusIsOk()
{
var bytes = new byte[] { (byte)'a', (byte)'b', 0, (byte)'c' };
using (var statusOrString = InitializeSubject(bytes))
{
Assert.True(statusOrString.Ok());
Assert.AreEqual("ab", statusOrString.Value());
}
}
#endregion
#region #ValueAsByteArray
[Test]
public void ValueAsByteArray_ShouldReturnByteArray_When_StatusIsOk()
{
var bytes = new byte[] { (byte)'a', (byte)'b', 0, (byte)'c' };
using (var statusOrString = InitializeSubject(bytes))
{
Assert.True(statusOrString.Ok());
Assert.AreEqual(bytes, statusOrString.ValueAsByteArray());
}
}
#endregion
private StatusOrString InitializeSubject(string str)
{
using (var packet = new StringPacket(str))
{
return (StatusOrString)packet.Consume();
}
}
private StatusOrString InitializeSubject(byte[] bytes)
{
using (var packet = new StringPacket(bytes))
{
return (StatusOrString)packet.Consume();
}
}
}
}