|  | using System; | 
|  | using System.Text; | 
|  | using System.Collections.Generic; | 
|  | using System.Linq; | 
|  | using Microsoft.VisualStudio.TestTools.UnitTesting; | 
|  | using OfficeOpenXml.FormulaParsing; | 
|  | using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; | 
|  | using EPPlusTest.FormulaParsing.TestHelpers; | 
|  | using OfficeOpenXml.FormulaParsing.Exceptions; | 
|  | using OfficeOpenXml; | 
|  |  | 
|  | namespace EPPlusTest.Excel.Functions | 
|  | { | 
|  | [TestClass] | 
|  | public class InformationFunctionsTests | 
|  | { | 
|  | private ParsingContext _context; | 
|  |  | 
|  | [TestInitialize] | 
|  | public void Setup() | 
|  | { | 
|  | _context = ParsingContext.Create(); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsBlankShouldReturnTrueIfFirstArgIsNull() | 
|  | { | 
|  | var func = new IsBlank(); | 
|  | var args = FunctionsHelper.CreateArgs(new object[]{null}); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsBlankShouldReturnTrueIfFirstArgIsEmptyString() | 
|  | { | 
|  | var func = new IsBlank(); | 
|  | var args = FunctionsHelper.CreateArgs(string.Empty); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsNumberShouldReturnTrueWhenArgIsNumeric() | 
|  | { | 
|  | var func = new IsNumber(); | 
|  | var args = FunctionsHelper.CreateArgs(1d); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsNumberShouldReturnfalseWhenArgIsNonNumeric() | 
|  | { | 
|  | var func = new IsNumber(); | 
|  | var args = FunctionsHelper.CreateArgs("1"); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsFalse((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsErrorShouldReturnTrueIfArgIsAnErrorCode() | 
|  | { | 
|  | var args = FunctionsHelper.CreateArgs(ExcelErrorValue.Parse("#DIV/0!")); | 
|  | var func = new IsError(); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsErrorShouldReturnFalseIfArgIsNotAnError() | 
|  | { | 
|  | var args = FunctionsHelper.CreateArgs("A", 1); | 
|  | var func = new IsError(); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsFalse((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsTextShouldReturnTrueWhenFirstArgIsAString() | 
|  | { | 
|  | var args = FunctionsHelper.CreateArgs("1"); | 
|  | var func = new IsText(); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsTextShouldReturnFalseWhenFirstArgIsNotAString() | 
|  | { | 
|  | var args = FunctionsHelper.CreateArgs(1); | 
|  | var func = new IsText(); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsFalse((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsNonTextShouldReturnFalseWhenFirstArgIsAString() | 
|  | { | 
|  | var args = FunctionsHelper.CreateArgs("1"); | 
|  | var func = new IsNonText(); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsFalse((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsNonTextShouldReturnTrueWhenFirstArgIsNotAString() | 
|  | { | 
|  | var args = FunctionsHelper.CreateArgs(1); | 
|  | var func = new IsNonText(); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsOddShouldReturnCorrectResult() | 
|  | { | 
|  | var args = FunctionsHelper.CreateArgs(3.123); | 
|  | var func = new IsOdd(); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsEvenShouldReturnCorrectResult() | 
|  | { | 
|  | var args = FunctionsHelper.CreateArgs(4.123); | 
|  | var func = new IsEven(); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void IsLogicalShouldReturnCorrectResult() | 
|  | { | 
|  | var func = new IsLogical(); | 
|  |  | 
|  | var args = FunctionsHelper.CreateArgs(1); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.IsFalse((bool)result.Result); | 
|  |  | 
|  | args = FunctionsHelper.CreateArgs("true"); | 
|  | result = func.Execute(args, _context); | 
|  | Assert.IsFalse((bool)result.Result); | 
|  |  | 
|  | args = FunctionsHelper.CreateArgs(false); | 
|  | result = func.Execute(args, _context); | 
|  | Assert.IsTrue((bool)result.Result); | 
|  | } | 
|  |  | 
|  | [TestMethod] | 
|  | public void NshouldReturnCorrectResult() | 
|  | { | 
|  | var func = new N(); | 
|  |  | 
|  | var args = FunctionsHelper.CreateArgs(1.2); | 
|  | var result = func.Execute(args, _context); | 
|  | Assert.AreEqual(1.2, result.Result); | 
|  |  | 
|  | args = FunctionsHelper.CreateArgs("abc"); | 
|  | result = func.Execute(args, _context); | 
|  | Assert.AreEqual(0d, result.Result); | 
|  |  | 
|  | args = FunctionsHelper.CreateArgs(true); | 
|  | result = func.Execute(args, _context); | 
|  | Assert.AreEqual(1d, result.Result); | 
|  |  | 
|  | var errorCode = ExcelErrorValue.Create(eErrorType.Value); | 
|  | args = FunctionsHelper.CreateArgs(errorCode); | 
|  | result = func.Execute(args, _context); | 
|  | Assert.AreEqual(errorCode, result.Result); | 
|  | } | 
|  | } | 
|  | } |