| using System; |
| using System.Text; |
| using System.Collections.Generic; |
| using System.Linq; |
| using Microsoft.VisualStudio.TestTools.UnitTesting; |
| using Rhino.Mocks; |
| using OfficeOpenXml.FormulaParsing.ExcelUtilities; |
| using OfficeOpenXml.FormulaParsing; |
| |
| namespace EPPlusTest.ExcelUtilities |
| { |
| [TestClass] |
| public class AddressTranslatorTests |
| { |
| private AddressTranslator _addressTranslator; |
| private ExcelDataProvider _excelDataProvider; |
| private const int ExcelMaxRows = 1356; |
| |
| [TestInitialize] |
| public void Setup() |
| { |
| _excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>(); |
| _excelDataProvider.Stub(x => x.ExcelMaxRows).Return(ExcelMaxRows); |
| _addressTranslator = new AddressTranslator(_excelDataProvider); |
| } |
| |
| [TestMethod, ExpectedException(typeof(ArgumentNullException))] |
| public void ConstructorShouldThrowIfProviderIsNull() |
| { |
| new AddressTranslator(null); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateRowNumber() |
| { |
| int col, row; |
| _addressTranslator.ToColAndRow("A2", out col, out row); |
| Assert.AreEqual(2, row); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateLettersToColumnIndex() |
| { |
| int col, row; |
| _addressTranslator.ToColAndRow("C1", out col, out row); |
| Assert.AreEqual(3, col); |
| _addressTranslator.ToColAndRow("AA2", out col, out row); |
| Assert.AreEqual(27, col); |
| _addressTranslator.ToColAndRow("BC1", out col, out row); |
| Assert.AreEqual(55, col); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateLetterAddressUsingMaxRowsFromProviderLower() |
| { |
| int col, row; |
| _addressTranslator.ToColAndRow("A", out col, out row); |
| Assert.AreEqual(1, row); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateLetterAddressUsingMaxRowsFromProviderUpper() |
| { |
| int col, row; |
| _addressTranslator.ToColAndRow("A", out col, out row, AddressTranslator.RangeCalculationBehaviour.LastPart); |
| Assert.AreEqual(ExcelMaxRows, row); |
| } |
| } |
| } |