fix: Fixes string interpolation in value string builder (#1339)

This commit is contained in:
Kamron Batman 2023-02-13 23:09:50 -08:00 • committed by GitHub
parent b46544d752
commit f24c6a08dd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 87 additions and 242 deletions

View file

@ -1,34 +1,48 @@
using Server.Buffers;
using Xunit;
namespace Server.Tests.Buffers
namespace Server.Tests.Buffers;
public class ValueStringBuilderTests
{
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)
{
[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);
using var sb = new ValueStringBuilder(stackalloc char[64]);
sb.Append(original);
sb.Remove(startIndex, length);
Assert.Equal(removed, sb.ToString());
}
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);
[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());
}
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();
}
}