| using System; |
| using System.Text; |
| using System.Collections.Generic; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml.FormulaParsing.ExpressionGraph; |
| using OfficeOpenXml.FormulaParsing.Excel.Operators; |
| |
| namespace EPPlusTest.FormulaParsing.ExpressionGraph |
| { |
| [TestClass] |
| public class ExpressionConverterTests |
| { |
| private IExpressionConverter _converter; |
| |
| [TestInitialize] |
| public void Setup() |
| { |
| _converter = new ExpressionConverter(); |
| } |
| |
| [TestMethod] |
| public void ToStringExpressionShouldConvertIntegerExpressionToStringExpression() |
| { |
| var integerExpression = new IntegerExpression("2"); |
| var result = _converter.ToStringExpression(integerExpression); |
| Assert.IsInstanceOfType(result, typeof(StringExpression)); |
| Assert.AreEqual("2", result.Compile().Result); |
| } |
| |
| [TestMethod] |
| public void ToStringExpressionShouldCopyOperatorToStringExpression() |
| { |
| var integerExpression = new IntegerExpression("2"); |
| integerExpression.Operator = Operator.Plus; |
| var result = _converter.ToStringExpression(integerExpression); |
| Assert.AreEqual(integerExpression.Operator, result.Operator); |
| } |
| |
| [TestMethod] |
| public void ToStringExpressionShouldConvertDecimalExpressionToStringExpression() |
| { |
| var decimalExpression = new DecimalExpression("2.5"); |
| var result = _converter.ToStringExpression(decimalExpression); |
| Assert.IsInstanceOfType(result, typeof(StringExpression)); |
| Assert.AreEqual("2,5", result.Compile().Result); |
| } |
| |
| [TestMethod] |
| 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); |
| } |
| |
| [TestMethod] |
| 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); |
| } |
| |
| [TestMethod] |
| public void FromCompileResultShouldCreateDecimalExpressionIfCompileResultIsDecimal() |
| { |
| var compileResult = new CompileResult(2.5d, DataType.Decimal); |
| var result = _converter.FromCompileResult(compileResult); |
| Assert.IsInstanceOfType(result, typeof(DecimalExpression)); |
| Assert.AreEqual(2.5d, result.Compile().Result); |
| } |
| |
| [TestMethod] |
| 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); |
| } |
| } |
| } |