|  | 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); | 
|  | } | 
|  | } | 
|  | } |