| using System; |
| using System.Text; |
| using System.Collections.Generic; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using OfficeOpenXml.FormulaParsing; |
| using Rhino.Mocks; |
| |
| namespace EPPlusTest.FormulaParsing.IntegrationTests.BuiltInFunctions |
| { |
| [TestClass] |
| public class LogicalFunctionsTests : FormulaParserTestBase |
| { |
| [TestInitialize] |
| public void Setup() |
| { |
| var excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>(); |
| _parser = new FormulaParser(excelDataProvider); |
| } |
| |
| [TestMethod] |
| public void IfShouldReturnCorrectResult() |
| { |
| var result = _parser.Parse("If(2 < 3, 1, 2)"); |
| Assert.AreEqual(1d, result); |
| } |
| |
| [TestMethod] |
| public void IIfShouldReturnCorrectResultWhenInnerFunctionExists() |
| { |
| var result = _parser.Parse("If(NOT(Or(true, FALSE)), 1, 2)"); |
| Assert.AreEqual(2d, result); |
| } |
| |
| [TestMethod] |
| public void NotShouldReturnCorrectResult() |
| { |
| var result = _parser.Parse("not(true)"); |
| Assert.IsFalse((bool)result); |
| |
| result = _parser.Parse("NOT(false)"); |
| Assert.IsTrue((bool)result); |
| } |
| |
| [TestMethod] |
| public void AndShouldReturnCorrectResult() |
| { |
| var result = _parser.Parse("And(true, 1)"); |
| Assert.IsTrue((bool)result); |
| |
| result = _parser.Parse("AND(true, true, 1, false)"); |
| Assert.IsFalse((bool)result); |
| } |
| |
| [TestMethod] |
| public void OrShouldReturnCorrectResult() |
| { |
| var result = _parser.Parse("Or(FALSE, 0)"); |
| Assert.IsFalse((bool)result); |
| |
| result = _parser.Parse("OR(true, true, 1, false)"); |
| Assert.IsTrue((bool)result); |
| } |
| |
| [TestMethod] |
| public void TrueShouldReturnCorrectResult() |
| { |
| var result = _parser.Parse("True()"); |
| Assert.IsTrue((bool)result); |
| } |
| |
| [TestMethod] |
| public void FalseShouldReturnCorrectResult() |
| { |
| var result = _parser.Parse("False()"); |
| Assert.IsFalse((bool)result); |
| } |
| } |
| } |