mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-01 17:47:24 +02:00
Robust.UnitTesting was both ALL tests for RT, and also API surface for content tests. Tests are now split into separate projects as appropriate, and the API side has also been split off.
77 lines
2.2 KiB
C#
77 lines
2.2 KiB
C#
using Linguini.Syntax.Parser.Error;
|
|
using NUnit.Framework;
|
|
using Robust.Shared.Localization;
|
|
|
|
namespace Robust.Shared.Tests.Localization;
|
|
|
|
[TestFixture]
|
|
[Parallelizable]
|
|
internal sealed class TestFormatErrors
|
|
{
|
|
// Error spans a single line
|
|
private const string ResSingle = "err1 = $user)";
|
|
|
|
private const string ExpectSingle1Wide1 = """
|
|
1 |err1 = $user)
|
|
^ Unbalanced closing brace
|
|
""";
|
|
|
|
private const string Expect2Wide1 = """
|
|
1 |err1 = $user)
|
|
^ Unbalanced closing brace
|
|
""";
|
|
|
|
private const string Expect1Wide4 = """
|
|
1 |err1 = $user)
|
|
^^^^ Expected a message field for "x"
|
|
""";
|
|
|
|
private const string Expect2Wide4 = """
|
|
1 |err1 = $user)
|
|
^^^^ Expected a message field for "x"
|
|
""";
|
|
|
|
// Error spans multiple lines
|
|
private const string ResMulti = """
|
|
a = b {{
|
|
err = x
|
|
""";
|
|
|
|
private const string ExpectMulti1Wide1 = """
|
|
1 |a = b {{
|
|
2 | err = x
|
|
^ Unbalanced closing brace
|
|
""";
|
|
|
|
private const string ExpectMulti1Wide3 = """
|
|
1 |a = b {{
|
|
2 | err = x
|
|
^^^ Expected a message field for "x"
|
|
""";
|
|
|
|
[Test]
|
|
[TestCase(ExpectSingle1Wide1, ResSingle, 7)]
|
|
[TestCase(Expect2Wide1, ResSingle, 0)]
|
|
[TestCase(Expect1Wide4, ResSingle, 8, 12)]
|
|
[TestCase(Expect2Wide4, ResSingle, 0, 4)]
|
|
[TestCase(ExpectMulti1Wide1, ResMulti, 11)]
|
|
[TestCase(ExpectMulti1Wide3, ResMulti, 11, 14)]
|
|
[TestCase(ExpectMulti1Wide1, ResMulti, 11)]
|
|
[TestCase(ExpectMulti1Wide3, ResMulti, 11, 14)]
|
|
public void TestSingleLineTestLf(string expected, string resource, int start, int? end = null)
|
|
{
|
|
expected = expected.ReplaceLineEndings("\n");
|
|
resource = resource.ReplaceLineEndings("\n");
|
|
|
|
var err = ParseError.UnbalancedClosingBrace(start, 99);
|
|
if (end != null)
|
|
{
|
|
err = ParseError.ExpectedMessageField("x".AsMemory(), start, end.Value, 99);
|
|
}
|
|
|
|
err.Slice = new Range(0, resource.Length);
|
|
var actual = err.FormatCompileErrors(resource.AsMemory(), "\n");
|
|
Assert.That(actual, Is.EqualTo(expected));
|
|
}
|
|
}
|