| using System; |
| using System.Text; |
| using System.Collections.Generic; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using Rhino.Mocks; |
| using OfficeOpenXml.FormulaParsing; |
| using OfficeOpenXml.FormulaParsing.LexicalAnalysis; |
| using OfficeOpenXml.FormulaParsing.ExcelUtilities; |
| |
| namespace EPPlusTest.ExcelUtilities |
| { |
| [TestClass] |
| public class CellReferenceProviderTests |
| { |
| private ExcelDataProvider _provider; |
| |
| [TestInitialize] |
| public void Setup() |
| { |
| _provider = MockRepository.GenerateStub<ExcelDataProvider>(); |
| _provider.Stub(x => x.ExcelMaxRows).Return(5000); |
| } |
| |
| [TestMethod] |
| public void ShouldReturnReferencedSingleAddress() |
| { |
| var parsingContext = ParsingContext.Create(); |
| parsingContext.Scopes.NewScope(RangeAddress.Empty); |
| parsingContext.Configuration.SetLexer(new Lexer(parsingContext.Configuration.FunctionRepository, parsingContext.NameValueProvider)); |
| parsingContext.RangeAddressFactory = new RangeAddressFactory(_provider); |
| var provider = new CellReferenceProvider(); |
| var result = provider.GetReferencedAddresses("A1", parsingContext); |
| Assert.AreEqual("A1", result.First()); |
| } |
| |
| [TestMethod] |
| public void ShouldReturnReferencedMultipleAddresses() |
| { |
| var parsingContext = ParsingContext.Create(); |
| parsingContext.Scopes.NewScope(RangeAddress.Empty); |
| parsingContext.Configuration.SetLexer(new Lexer(parsingContext.Configuration.FunctionRepository, parsingContext.NameValueProvider)); |
| parsingContext.RangeAddressFactory = new RangeAddressFactory(_provider); |
| var provider = new CellReferenceProvider(); |
| var result = provider.GetReferencedAddresses("A1:A2", parsingContext); |
| Assert.AreEqual("A1", result.First()); |
| Assert.AreEqual("A2", result.Last()); |
| } |
| } |
| } |