88 lines
2.1 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|