Tests, finished for extensions
This commit is contained in:
64
BackendTests/Utils/ExtensionsTests.cs
Normal file
64
BackendTests/Utils/ExtensionsTests.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using System.Text.Json;
|
||||
using pacMan.Utils;
|
||||
|
||||
namespace BackendTests.Utils;
|
||||
|
||||
public class ExtensionsTests
|
||||
{
|
||||
#region ToArraySegment(this object obj)
|
||||
|
||||
[Test]
|
||||
public void ToArraySegmentValidObject()
|
||||
{
|
||||
var obj = new { Test = "test" };
|
||||
var segment = obj.ToArraySegment();
|
||||
|
||||
Assert.That(JsonSerializer.Serialize(obj), Has.Length.EqualTo(segment.Count));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ToArraySegmentNullableObject()
|
||||
{
|
||||
string? s = null;
|
||||
var segment = s!.ToArraySegment(); // Segment contains: null
|
||||
Assert.That(segment, Has.Count.EqualTo(4));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region GetString(this byte[] bytes, int length)
|
||||
|
||||
private byte[] _bytes = null!;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_bytes = "Hello World!"u8.ToArray();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetString_ValidByteArray()
|
||||
{
|
||||
Assert.That(_bytes.GetString(_bytes.Length), Is.EqualTo("Hello World!"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetString_EmptyByteArray()
|
||||
{
|
||||
Assert.That(new byte[] { }.GetString(0), Is.EqualTo(""));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetString_NegativeLength()
|
||||
{
|
||||
Assert.Throws(typeof(ArgumentOutOfRangeException), () => _bytes.GetString(-1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetString_LengthGreaterThanByteArrayLength()
|
||||
{
|
||||
Assert.Throws(typeof(ArgumentOutOfRangeException), () => _bytes.GetString(_bytes.Length + 1));
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
Reference in New Issue
Block a user