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; }
public CompileResult Apply(CompileResult left, CompileResult right) { return _implementation(left, right); }