Spaces:
Running
Running
File size: 2,713 Bytes
1ae2e8e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
namespace RobloxCS.Tests
{
public class DebugTransformer_Should
{
private const string _testFileName = "TestFile.client.cs";
[Theory]
[InlineData("print(\"hello baby\")")]
[InlineData("warn(\"hello baby\")")]
public void FileInfo_PrependsArgument(string input)
{
var cleanTree = TranspilerUtility.ParseTree(input);
var transformedTree = TranspilerUtility.TransformTree(cleanTree, [BuiltInTransformers.Main(), BuiltInTransformers.Get("Debug")]);
var cleanRoot = cleanTree.GetRoot();
var cleanInvocation = cleanRoot.DescendantNodes().OfType<InvocationExpressionSyntax>().First();
var transformedRoot = transformedTree.GetRoot();
var transformedInvocation = transformedRoot.DescendantNodes().OfType<InvocationExpressionSyntax>().First();
var cleanArgs = cleanInvocation.ArgumentList.Arguments;
var transformedArgs = transformedInvocation.ArgumentList.Arguments;
var fileInfoArg = transformedArgs.FirstOrDefault();
Assert.True(cleanArgs.Count == 1);
Assert.True(transformedArgs.Count == 2);
Assert.NotNull(fileInfoArg);
var fileInfoLiteral = (LiteralExpressionSyntax)fileInfoArg.Expression;
Assert.Equal($"[{_testFileName}:1:51]:", fileInfoLiteral.Token.ValueText);
}
[Theory]
[InlineData("error(\"hello baby\")")]
public void FileInfo_ConcatenatesLiteral(string input)
{
var cleanTree = TranspilerUtility.ParseTree(input);
var transformedTree = TranspilerUtility.TransformTree(cleanTree, [BuiltInTransformers.Main(), BuiltInTransformers.Get("Debug")]);
var cleanRoot = cleanTree.GetRoot();
var cleanInvocation = cleanRoot.DescendantNodes().OfType<InvocationExpressionSyntax>().First();
var transformedRoot = transformedTree.GetRoot();
var transformedInvocation = transformedRoot.DescendantNodes().OfType<InvocationExpressionSyntax>().First();
var cleanArgs = cleanInvocation.ArgumentList.Arguments;
var transformedArgs = transformedInvocation.ArgumentList.Arguments;
var fullMessageArg = transformedArgs.FirstOrDefault();
Assert.True(cleanArgs.Count == 1);
Assert.True(transformedArgs.Count == 1);
Assert.NotNull(fullMessageArg);
var fullMessageBinary= (BinaryExpressionSyntax)fullMessageArg.Expression;
var fileInfoLiteral = (LiteralExpressionSyntax)fullMessageBinary.Left;
Assert.Equal($"[{_testFileName}:1:51]: ", fileInfoLiteral.Token.ValueText);
}
}
} |