Example #1
0
        public void It_should_be_possible_to_eval_script_invoking_a_module()
        {
            ScriptService target = new ScriptService();

            ScriptParameterList parameters = new ScriptParameterList();
            parameters.Add(new ScriptParameter("Test", typeof(TestModule), new TestModule()));

            IScriptExpression exp;

            exp = target.Parse("Test.Name", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("Davide", target.Eval(exp, parameters));

            exp = target.Parse("Test[\"k1\"]", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("k1value", target.Eval(exp, parameters));

            exp = target.Parse("Test.Name + \" \" + Test.DateOfBirth.Year.ToString()", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("Davide 1981", target.Eval(exp, parameters));

            exp = target.Parse("Test.SayHello()", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("Hello Davide", target.Eval(exp, parameters));
        }
Example #2
0
        public object Eval(IScriptExpression expression, ScriptParameterList parameters)
        {
            ScriptExpression scriptExpression = (ScriptExpression)expression;

            var args = parameters.Select(p => new DynamicExpresso.Parameter(p.Name, p.Type, p.Value)).ToArray();

            return scriptExpression.ExpressionDefinition.Invoke(args);
        }
Example #3
0
        private object EvalScript(IScriptExpression expression, Dictionary<string, object> modules, ContextParameterList parameters)
        {
            var argParameters = new ScriptParameterList();
            foreach (var m in modules)
                argParameters.Add(new ScriptParameter(m.Key, m.Value.GetType(), m.Value));
            foreach (var p in parameters)
                argParameters.Add(new ScriptParameter(p.Name, p.Type, p.Value));

            return _scriptService.Eval(expression, argParameters);
        }
Example #4
0
        public void It_should_be_possible_to_eval_script_system_method()
        {
            ScriptService target = new ScriptService();

            var parameters = new ScriptParameterList();
            parameters.Add(new ScriptParameter("name", typeof(string), "mondo"));

            IScriptExpression exp;

            exp = target.Parse("string.Format(\"ciao {0}\", name)", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("ciao mondo", target.Eval(exp, parameters));
        }
Example #5
0
        public void It_should_be_possible_to_eval_script_constant()
        {
            ScriptService target = new ScriptService();

            var parameters = new ScriptParameterList();

            IScriptExpression exp;

            exp = target.Parse("\"ciao\"", parameters);
            Assert.AreEqual(typeof(string), exp.ReturnType);
            Assert.AreEqual("ciao", target.Eval(exp, parameters));

            exp = target.Parse("95", parameters);
            Assert.AreEqual(typeof(int), exp.ReturnType);
            Assert.AreEqual(95, target.Eval(exp, parameters));
        }
Example #6
0
        private IScriptExpression ParseScript(string script, Modules.ModuleDefinitionList modules, PageParameterList parameters)
        {
            var argParameters = new ScriptParameterList();
            foreach (var m in modules)
                argParameters.Add(new ScriptParameter(m.Name, m.Component.Type));
            foreach (var p in parameters)
                argParameters.Add(new ScriptParameter(p.Name, p.Value.ValueType));

            return _scriptService.Parse(script, argParameters);
        }
Example #7
0
 public IScriptExpression Parse(string expression, ScriptParameterList parameters)
 {
     return new ScriptExpressionMock(expression, _evalObject != null ? _evalObject.GetType() : typeof(object));
 }
Example #8
0
 public object Eval(IScriptExpression expression, ScriptParameterList parameters)
 {
     return _evalObject;
 }
Example #9
0
        public IScriptExpression Parse(string script, ScriptParameterList parameters)
        {
            var exp = _engine.Parse(script, parameters.Select(p => new DynamicExpresso.Parameter(p.Name, p.Type, p.Value)).ToArray());

            return new ScriptExpression(exp);
        }