public void TestScene() { string text = "scene TestScene{}"; var root = NSScript.ParseScript(text); var scene = root.Scenes.SingleOrDefault(); Assert.NotNull(scene); Assert.Equal(SyntaxNodeKind.Scene, scene.Kind); Assert.Equal("TestScene", scene.Name.FullName); }
public void TestChapter() { string text = "chapter main{}"; var root = NSScript.ParseScript(text); var chapter = root.MainChapter; Assert.Equal(SyntaxNodeKind.Chapter, chapter.Kind); Assert.Equal("main", chapter.Name.FullName); string toStringResult = Helpers.RemoveNewLineCharacters(chapter.ToString()); Assert.Equal(text, toStringResult); }
public void TestMethod() { string text = "function Test(){}"; var root = NSScript.ParseScript(text); var method = root.Methods[0]; Assert.Equal(SyntaxNodeKind.Method, method.Kind); Assert.Equal("Test", method.Name.FullName); Assert.Equal(0, method.Parameters.Length); string toStringResult = Helpers.RemoveNewLineCharacters(method.ToString()); Assert.Equal(text, toStringResult); }
private void TestStringParameterReferenceWithSigilImpl(string fullName, string simplifiedName, SigilKind sigil) { string text = $"function Test({fullName}) {{ SomeMethod({fullName}); }}"; var root = NSScript.ParseScript(text); var method = root.Methods[0]; var expressionStatement = method.Body.Statements[0] as ExpressionStatement; Assert.NotNull(expressionStatement); var invocation = expressionStatement.Expression as MethodCall; Assert.NotNull(invocation); var arg = invocation.Arguments[0] as ParameterReference; Assert.NotNull(arg); Assert.Equal(SyntaxNodeKind.Parameter, arg.Kind); Assert.Equal(fullName, arg.ParameterName.FullName); Assert.Equal(simplifiedName, arg.ParameterName.SimplifiedName); Assert.Equal(sigil, arg.ParameterName.Sigil); }
public void TestStringParameterReference() { string text = "function Test(\"stringParam\") { SomeMethod(\"stringParam\"); }"; var root = NSScript.ParseScript(text); var method = root.Methods[0]; var expressionStatement = method.Body.Statements[0] as ExpressionStatement; Assert.NotNull(expressionStatement); var invocation = expressionStatement.Expression as MethodCall; Assert.NotNull(invocation); var arg = invocation.Arguments[0] as ParameterReference; Assert.NotNull(arg); Assert.Equal(SyntaxNodeKind.Parameter, arg.Kind); Assert.Equal("\"stringParam\"", arg.ParameterName.FullName); Assert.Equal("stringParam", arg.ParameterName.SimplifiedName); Assert.Equal(SigilKind.None, arg.ParameterName.Sigil); }
public void TestMethodWithStringParameter() { string text = "function Test(\"stringParam\"){}"; var root = NSScript.ParseScript(text); var method = root.Methods[0]; Assert.Equal(SyntaxNodeKind.Method, method.Kind); Assert.Equal("Test", method.Name.FullName); Assert.Equal(1, method.Parameters.Length); var p = method.Parameters[0]; Assert.Equal(SyntaxNodeKind.Parameter, p.Kind); Assert.Equal("\"stringParam\"", p.ParameterName.FullName); Assert.Equal("stringParam", p.ParameterName.SimplifiedName); Assert.Equal(SigilKind.None, p.ParameterName.Sigil); string toStringResult = Helpers.RemoveNewLineCharacters(method.ToString()); Assert.Equal(text, toStringResult); }
private void TestMethodWithStringParameterWithSigilImpl(string fullName, string simplifiedName, SigilKind sigil) { string text = $"function Test({fullName}){{}}"; var root = NSScript.ParseScript(text); var method = root.Methods[0]; Assert.Equal(SyntaxNodeKind.Method, method.Kind); Assert.Equal("Test", method.Name.FullName); Assert.Equal(1, method.Parameters.Length); var p = method.Parameters[0]; Assert.Equal(SyntaxNodeKind.Parameter, p.Kind); Assert.Equal(fullName, p.ParameterName.FullName); Assert.Equal(simplifiedName, p.ParameterName.SimplifiedName); Assert.Equal(sigil, p.ParameterName.Sigil); string toStringResult = Helpers.RemoveNewLineCharacters(method.ToString()); Assert.Equal(text, toStringResult); }