public void FromCompileResultShouldCreateStringExpressionIfCompileResultIsString()
 {
     var compileResult = new CompileResult("abc", DataType.String);
     var result = _converter.FromCompileResult(compileResult);
     Assert.IsInstanceOfType(result, typeof(StringExpression));
     Assert.AreEqual("abc", result.Compile().Result);
 }
 public void FromCompileResultShouldCreateIntegerExpressionIfCompileResultIsInteger()
 {
     var compileResult = new CompileResult(1, DataType.Integer);
     var result = _converter.FromCompileResult(compileResult);
     Assert.IsInstanceOfType(result, typeof(IntegerExpression));
     Assert.AreEqual(1d, result.Compile().Result);
 }
 public void FromCompileResultShouldCreateDecimalExpressionIfCompileResultIsDecimal()
 {
     var compileResult = new CompileResult("2.5", DataType.Decimal);
     var result = _converter.FromCompileResult(compileResult);
     Assert.IsInstanceOfType(result, typeof(DecimalExpression));
     Assert.AreEqual(2.5d, result.Compile().Result);
 }
 public void FromCompileResultShouldCreateBooleanExpressionIfCompileResultIsBoolean()
 {
     var compileResult = new CompileResult("true", DataType.Boolean);
     var result = _converter.FromCompileResult(compileResult);
     Assert.IsInstanceOfType(result, typeof(BooleanExpression));
     Assert.IsTrue((bool)result.Compile().Result);
 }
 public Expression FromCompileResult(CompileResult compileResult)
 {
     switch (compileResult.DataType)
     {
         case DataType.Integer:
             return new IntegerExpression(compileResult.Result.ToString());
         case DataType.String:
             return new StringExpression(compileResult.Result.ToString());
         case DataType.Decimal:
             return new DecimalExpression(compileResult.Result.ToString());
         case DataType.Boolean:
             return new BooleanExpression(compileResult.Result.ToString());
     }
     return null;
 }
Beispiel #6
0
 public CompileResult Apply(CompileResult left, CompileResult right)
 {
     return _implementation(left, right);
 }