Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }