blob: c832a96c146e1dbff905bbabb9d2def9b4642dfa [file] [log] [blame]
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);
}
}
}