| 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.ExcelUtilities; |
| |
| namespace EPPlusTest.ExcelUtilities |
| { |
| [TestClass] |
| public class IndexToAddressTranslatorTests |
| { |
| private ExcelDataProvider _excelDataProvider; |
| private IndexToAddressTranslator _indexToAddressTranslator; |
| |
| [TestInitialize] |
| public void Setup() |
| { |
| SetupTranslator(12345, ExcelReferenceType.RelativeRowAndColumn); |
| } |
| |
| private void SetupTranslator(int maxRows, ExcelReferenceType refType) |
| { |
| _excelDataProvider = MockRepository.GenerateStub<ExcelDataProvider>(); |
| _excelDataProvider.Stub(x => x.ExcelMaxRows).Return(maxRows); |
| _indexToAddressTranslator = new IndexToAddressTranslator(_excelDataProvider, refType); |
| } |
| |
| [TestMethod, ExpectedException(typeof(ArgumentNullException))] |
| public void ShouldThrowIfExcelDataProviderIsNull() |
| { |
| new IndexToAddressTranslator(null); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslate1And1ToA1() |
| { |
| var result = _indexToAddressTranslator.ToAddress(1, 1); |
| Assert.AreEqual("A1", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslate27And1ToAA1() |
| { |
| var result = _indexToAddressTranslator.ToAddress(27, 1); |
| Assert.AreEqual("AA1", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslate53And1ToBA1() |
| { |
| var result = _indexToAddressTranslator.ToAddress(53, 1); |
| Assert.AreEqual("BA1", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslate702And1ToZZ1() |
| { |
| var result = _indexToAddressTranslator.ToAddress(702, 1); |
| Assert.AreEqual("ZZ1", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslate703ToAAA4() |
| { |
| var result = _indexToAddressTranslator.ToAddress(703, 4); |
| Assert.AreEqual("AAA4", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateToEntireColumnWhenRowIsEqualToMaxRows() |
| { |
| _excelDataProvider.Stub(x => x.ExcelMaxRows).Return(123456); |
| var result = _indexToAddressTranslator.ToAddress(1, 123456); |
| Assert.AreEqual("A", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateToAbsoluteAddress() |
| { |
| SetupTranslator(123456, ExcelReferenceType.AbsoluteRowAndColumn); |
| var result = _indexToAddressTranslator.ToAddress(1, 1); |
| Assert.AreEqual("$A$1", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateToAbsoluteRowAndRelativeCol() |
| { |
| SetupTranslator(123456, ExcelReferenceType.AbsoluteRowRelativeColumn); |
| var result = _indexToAddressTranslator.ToAddress(1, 1); |
| Assert.AreEqual("A$1", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateToRelativeRowAndAbsoluteCol() |
| { |
| SetupTranslator(123456, ExcelReferenceType.RelativeRowAbsolutColumn); |
| var result = _indexToAddressTranslator.ToAddress(1, 1); |
| Assert.AreEqual("$A1", result); |
| } |
| |
| [TestMethod] |
| public void ShouldTranslateToRelativeRowAndCol() |
| { |
| SetupTranslator(123456, ExcelReferenceType.RelativeRowAndColumn); |
| var result = _indexToAddressTranslator.ToAddress(1, 1); |
| Assert.AreEqual("A1", result); |
| } |
| } |
| } |