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