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)); }
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); }
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); }
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)); }
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)); }
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); }
public IScriptExpression Parse(string expression, ScriptParameterList parameters) { return new ScriptExpressionMock(expression, _evalObject != null ? _evalObject.GetType() : typeof(object)); }
public object Eval(IScriptExpression expression, ScriptParameterList parameters) { return _evalObject; }
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); }