public ExpressionEvaluatorFacade()
		{
			compiler = new ReportingLanguageCompiler();
			this.context = new ExpressionContext(null);
			context.ResolveUnknownVariable += VariableStore;
			context.ResolveMissingFunction += FunctionStore;
		}
Пример #2
0
        public void Can_Compile_Uknown_Variable()
        {
            const string expression = "varName";
            var compiler = new ReportingLanguageCompiler();
            IExpression compiled = compiler.CompileExpression<string>(expression);

            var context = new ExpressionContext(null);
            context.ResolveUnknownVariable += (sender, args) =>
                                                  {
                                                      Assert.That(args.VariableName, Is.EqualTo("varName"));
                                                      args.VariableValue = 123.456;
                                                  };
            Assert.That(compiled.Evaluate(context), Is.EqualTo("123,456"));

        }
Пример #3
0
 public void Can_Compile_Qualified_Name()
 {
 	const string expression = "hello.goodbye.darlin.boy";
 	
 	var compiler = new ReportingLanguageCompiler();
 	IExpression expr = compiler.CompileExpression<string>(expression);
 	var context = new ExpressionContext(null);
 	context.ResolveUnknownQualifiedName += (sender, args) =>
 	{
 		Assert.That(args.QualifiedName.Length, Is.EqualTo(4));
 		Assert.That(args.QualifiedName[0], Is.EqualTo("hello"));
 		Assert.That(args.QualifiedName[1], Is.EqualTo("goodbye"));
 		Assert.That(args.QualifiedName[2], Is.EqualTo("darlin"));
 		Assert.That(args.QualifiedName[3], Is.EqualTo("boy"));
 		args.Value = "GitErDone";
 	};
 	Assert.That(expr.Evaluate(context), Is.EqualTo("GitErDone"));
 }