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