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