modernuo/Projects/Server.Tests/Tests/Buffers/ValueStringBuilderTests.cs
2023-11-19 10:11:04 -08:00

49 lines
1.3 KiB
C#

using Server.Text;
using Xunit;
namespace Server.Tests.Buffers;
[Collection("Sequential Tests")]
public class ValueStringBuilderTests
{
[Theory]
[InlineData("Admin Kamron", "Kamron", 0, 6)]
[InlineData("Admin Kamron", "Admin ron", 6, 3)]
[InlineData("Admin Kamron", "Admin", 5, 7)]
public void TestRemove(string original, string removed, int startIndex, int length)
{
using var sb = new ValueStringBuilder(stackalloc char[64]);
sb.Append(original);
sb.Remove(startIndex, length);
Assert.Equal(removed, sb.ToString());
}
[Theory]
[InlineData(8)]
[InlineData(9876)]
[InlineData(-5)]
[InlineData(-130984209)]
public void TestAppendInt32(int value)
{
using var sb = new ValueStringBuilder(stackalloc char[64]);
sb.Append(value);
Assert.Equal(value.ToString(), sb.ToString());
}
[Theory]
[InlineData("Kamron")]
[InlineData("")]
[InlineData(5)]
[InlineData(-30.6)]
public void TestAppendInterpolation(object value)
{
var sb = ValueStringBuilder.Create();
sb.Append( $"Hi, this is {value}.");
sb.Append(" I am a string.");
Assert.Equal($"Hi, this is {value}. I am a string.", sb.ToString());
sb.Dispose();
}
}