blob: 7a7a049c2bfb3733fee231f3aeee1a4ed966d18f [file] [log] [blame]
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OfficeOpenXml;
namespace EPPlusTest.FormulaParsing.IntegrationTests.BuiltInFunctions.ExcelRanges
{
[TestClass]
public class WorksheetRefsTest
{
private ExcelPackage _package;
private ExcelWorksheet _firstSheet;
private ExcelWorksheet _secondSheet;
[TestInitialize]
public void Init()
{
_package = new ExcelPackage();
_firstSheet = _package.Workbook.Worksheets.Add("sheet1");
_secondSheet = _package.Workbook.Worksheets.Add("sheet2");
_firstSheet.Cells["A1"].Value = 1;
_firstSheet.Cells["A2"].Value = 2;
}
[TestCleanup]
public void Cleanup()
{
_package.Dispose();
}
[TestMethod]
public void ShouldHandleReferenceToOtherSheet()
{
_secondSheet.Cells["A1"].Formula = "SUM('sheet1'!A1:A2)";
_secondSheet.Calculate();
Assert.AreEqual(3d, _secondSheet.Cells["A1"].Value);
}
[TestMethod]
public void ShouldHandleReferenceToOtherSheetWithComplexName()
{
var sheet = _package.Workbook.Worksheets.Add("ab#k..2");
sheet.Cells["A1"].Value = 1;
sheet.Cells["A2"].Value = 2;
_secondSheet.Cells["A1"].Formula = "SUM('ab#k..2'A1:A2)";
_secondSheet.Calculate();
Assert.AreEqual(3d, _secondSheet.Cells["A1"].Value);
}
[TestMethod]
public void ShouldHandleInvalidRef()
{
var sheet = _package.Workbook.Worksheets.Add("ab#k..2");
sheet.Cells["A1"].Value = 1;
sheet.Cells["A2"].Value = 2;
_secondSheet.Cells["A1"].Formula = "SUM('ab#k..2A1:A2')";
_secondSheet.Calculate();
Assert.IsInstanceOfType(_secondSheet.Cells["A1"].Value, typeof(ExcelErrorValue));
}
}
}