| 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); | |
| } | |
| } | |
| } |