AjErl.Tests.Compiler.ParserTests.ParseFunExpression C# (CSharp) Method

ParseFunExpression() private method

private ParseFunExpression ( ) : void
return void
        public void ParseFunExpression()
        {
            Parser parser = new Parser("fun(X,Y) -> X+Y end.");

            var expr = parser.ParseExpression();

            Assert.IsNotNull(expr);
            Assert.IsInstanceOfType(expr, typeof(FunExpression));

            var fexpr = (FunExpression)expr;

            Assert.AreEqual(2, fexpr.ParameterExpressions.Count);
            Assert.IsInstanceOfType(fexpr.ParameterExpressions[0], typeof(VariableExpression));
            Assert.AreEqual("X", ((VariableExpression)fexpr.ParameterExpressions[0]).Variable.Name);
            Assert.IsInstanceOfType(fexpr.ParameterExpressions[1], typeof(VariableExpression));
            Assert.AreEqual("Y", ((VariableExpression)fexpr.ParameterExpressions[1]).Variable.Name);

            Assert.IsNotNull(fexpr.Body);
            Assert.IsInstanceOfType(fexpr.Body, typeof(AddExpression));

            Assert.IsNull(parser.ParseExpression());
        }