| using System; | |
| using System.IO; | |
| using EPPlusTest.FormulaParsing.TestHelpers; | |
| using Microsoft.VisualStudio.TestTools.UnitTesting; | |
| using OfficeOpenXml; | |
| using OfficeOpenXml.FormulaParsing; | |
| using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; | |
| using OfficeOpenXml.FormulaParsing.Exceptions; | |
| namespace EPPlusTest.FormulaParsing.Excel.Functions.RefAndLookup | |
| { | |
| [TestClass] | |
| public class ChooseTests | |
| { | |
| private ParsingContext _parsingContext; | |
| private ExcelPackage _package; | |
| private ExcelWorksheet _worksheet; | |
| [TestInitialize] | |
| public void Initialize() | |
| { | |
| _parsingContext = ParsingContext.Create(); | |
| _package = new ExcelPackage(new MemoryStream()); | |
| _worksheet = _package.Workbook.Worksheets.Add("test"); | |
| } | |
| [TestCleanup] | |
| public void Cleanup() | |
| { | |
| _package.Dispose(); | |
| } | |
| [TestMethod] | |
| public void ChooseSingleValue() | |
| { | |
| fillChooseOptions(); | |
| _worksheet.Cells["B1"].Formula = "CHOOSE(4, A1, A2, A3, A4, A5)"; | |
| _worksheet.Calculate(); | |
| Assert.AreEqual("5", _worksheet.Cells["B1"].Value); | |
| } | |
| [TestMethod] | |
| public void ChooseSingleFormula() | |
| { | |
| fillChooseOptions(); | |
| _worksheet.Cells["B1"].Formula = "CHOOSE(6, A1, A2, A3, A4, A5, A6)"; | |
| _worksheet.Calculate(); | |
| Assert.AreEqual("12", _worksheet.Cells["B1"].Value); | |
| } | |
| [TestMethod] | |
| public void ChooseMultipleValues() | |
| { | |
| fillChooseOptions(); | |
| _worksheet.Cells["B1"].Formula = "SUM(CHOOSE({1,3,4}, A1, A2, A3, A4, A5))"; | |
| _worksheet.Calculate(); | |
| Assert.AreEqual(9D, _worksheet.Cells["B1"].Value); | |
| } | |
| [TestMethod] | |
| public void ChooseValueAndFormula() | |
| { | |
| fillChooseOptions(); | |
| _worksheet.Cells["B1"].Formula = "SUM(CHOOSE({2,6}, A1, A2, A3, A4, A5, A6))"; | |
| _worksheet.Calculate(); | |
| Assert.AreEqual(14D, _worksheet.Cells["B1"].Value); | |
| } | |
| private void fillChooseOptions() | |
| { | |
| _worksheet.Cells["A1"].Value = 1d; | |
| _worksheet.Cells["A2"].Value = 2d; | |
| _worksheet.Cells["A3"].Value = 3d; | |
| _worksheet.Cells["A4"].Value = 5d; | |
| _worksheet.Cells["A5"].Value = 7d; | |
| _worksheet.Cells["A6"].Formula = "A4 + A5"; | |
| } | |
| } | |
| } |