Beispiel #1
0
        public void EvaluateUndefinedVariable()
        {
            Context        context = new Context();
            NameExpression expr    = new NameExpression("Foo");

            Assert.IsNull(expr.Evaluate(context));
        }
        public void GetNullOnUndefined()
        {
            Context        context    = new Context();
            NameExpression expression = new NameExpression("foo");

            Assert.IsNull(expression.Evaluate(context));
        }
        public void RaiseIfNameIsUndefined()
        {
            NameExpression expression = new NameExpression("foo");

            BindingEnvironment environment = new BindingEnvironment();

            expression.Evaluate(environment);
        }
Beispiel #4
0
        public void EvaluateDefinedVariable()
        {
            Context context = new Context();

            context.SetValue("One", 1);
            NameExpression expr = new NameExpression("One");

            Assert.AreEqual(1, expr.Evaluate(context));
        }
        public void EvaluateDefinedName()
        {
            NameExpression expr    = new NameExpression("one");
            Context        context = new Context();

            context.SetLocalValue("one", 1);

            Assert.AreEqual(1, expr.Evaluate(context));
        }
Beispiel #6
0
        public void CreateAndEvaluateUnknownNameExpression()
        {
            var ctx = new Context();

            var expr = new NameExpression("Unknown");

            Assert.AreEqual("Unknown", expr.Name);
            Assert.IsNull(expr.Evaluate(ctx));
        }
        public void GetValue()
        {
            Context context = new Context();

            context.SetMember("one", 1);
            NameExpression expression = new NameExpression("one");

            Assert.AreEqual(1, expression.Evaluate(context));
        }
        public void ShouldEvaluateName()
        {
            IExpression      expression  = new NameExpression("foo");
            ValueEnvironment environment = new ValueEnvironment();

            environment.SetValue("foo", "bar");

            Assert.AreEqual("bar", expression.Evaluate(environment));
        }
        public void EvaluateNameExpression()
        {
            NameExpression expression = new NameExpression("foo");

            BindingEnvironment environment = new BindingEnvironment();

            environment.SetValue("foo", "bar");

            Assert.AreEqual("bar", expression.Evaluate(environment));
        }
        public void EvaluateDefinedFunction()
        {
            Machine        machine = new Machine();
            NameExpression expr    = new NameExpression("foo");
            Context        context = machine.RootContext;

            context.Self.Class.SetInstanceMethod("foo", new DefinedFunction(new ConstantExpression(1), new string[0], context));

            Assert.AreEqual(1, expr.Evaluate(context));
        }
        public void EvaluateNameWithNull()
        {
            NameExpression expression = new NameExpression("foo");

            BindingEnvironment environment = new BindingEnvironment();

            environment.SetValue("foo", null);

            Assert.IsNull(expression.Evaluate(environment));
        }
Beispiel #12
0
        public void CreateAndEvaluateNameExpression()
        {
            var ctx = new Context();

            ctx.SetValue("Answer", 42);

            var expr = new NameExpression("Answer");

            Assert.AreEqual("Answer", expr.Name);
            Assert.AreEqual(42, expr.Evaluate(ctx));
        }
        public void EvaluateUndefinedConstant()
        {
            NameExpression expr    = new NameExpression("Foo");
            Context        context = new Context();

            try
            {
                expr.Evaluate(context);
                Assert.Fail();
            }
            catch (Exception ex)
            {
                Assert.IsInstanceOfType(ex, typeof(NameError));
                Assert.AreEqual("unitialized constant Foo", ex.Message);
            }
        }
        public void EvaluateUndefinedName()
        {
            NameExpression expr    = new NameExpression("foo");
            Context        context = new Context();

            try
            {
                expr.Evaluate(context);
                Assert.Fail();
            }
            catch (Exception ex)
            {
                Assert.IsInstanceOfType(ex, typeof(NameError));
                Assert.AreEqual("undefined local variable or method 'foo'", ex.Message);
            }
        }
        public void RaiseIfNameIsUndefined()
        {
            NameExpression expression = new NameExpression("foo");

            BindingEnvironment environment = new BindingEnvironment();

            try
            {
                expression.Evaluate(environment);
                Assert.Fail("Exception expected");
            }
            catch (Exception ex)
            {
                Assert.IsInstanceOfType(ex, typeof(NameError));
                Assert.AreEqual("name 'foo' is not defined", ex.Message);
            }
        }
Beispiel #16
0
        public void EvaluateDefinedMethod()
        {
            Context          context     = new Context();
            IList <ICommand> commandlist = new List <ICommand>();

            commandlist.Add(new SetVariableCommand("a", new ConstantExpression(1)));
            commandlist.Add(new SetVariableCommand("b", new ConstantExpression(2)));
            commandlist.Add(new ExpressionCommand(new NameExpression("b")));

            CompositeCommand commands = new CompositeCommand(commandlist);

            DefinedMethod method = new DefinedMethod(null, commands);

            context.SetValue("foo", method);

            NameExpression expr = new NameExpression("foo");

            object result = expr.Evaluate(context);

            Assert.IsNotNull(result);
            Assert.AreEqual(method, result);
        }