| 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 RangeAddressFactoryTests | |
| { | |
| private RangeAddressFactory _factory; | |
| private const int ExcelMaxRows = 1048576; | |
| [TestInitialize] | |
| public void Setup() | |
| { | |
| var provider = MockRepository.GenerateStub<ExcelDataProvider>(); | |
| provider.Stub(x => x.ExcelMaxRows).Return(ExcelMaxRows); | |
| _factory = new RangeAddressFactory(provider); | |
| } | |
| [TestMethod, ExpectedException(typeof(ArgumentException))] | |
| public void CreateShouldThrowIfSuppliedAddressIsNull() | |
| { | |
| _factory.Create(null); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnAndInstanceWithColPropertiesSet() | |
| { | |
| var address = _factory.Create("A2"); | |
| Assert.AreEqual(1, address.FromCol, "FromCol was not 1"); | |
| Assert.AreEqual(1, address.ToCol, "ToCol was not 1"); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnAndInstanceWithRowPropertiesSet() | |
| { | |
| var address = _factory.Create("A2"); | |
| Assert.AreEqual(2, address.FromRow, "FromRow was not 2"); | |
| Assert.AreEqual(2, address.ToRow, "ToRow was not 2"); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnAnInstanceWithFromAndToColSetWhenARangeAddressIsSupplied() | |
| { | |
| var address = _factory.Create("A1:B2"); | |
| Assert.AreEqual(1, address.FromCol); | |
| Assert.AreEqual(2, address.ToCol); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnAnInstanceWithFromAndToRowSetWhenARangeAddressIsSupplied() | |
| { | |
| var address = _factory.Create("A1:B3"); | |
| Assert.AreEqual(1, address.FromRow); | |
| Assert.AreEqual(3, address.ToRow); | |
| } | |
| [TestMethod] | |
| public void CreateShouldSetWorksheetNameIfSuppliedInAddress() | |
| { | |
| var address = _factory.Create("Ws!A1"); | |
| Assert.AreEqual("Ws", address.Worksheet); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnAnInstanceWithStringAddressSet() | |
| { | |
| var address = _factory.Create(1, 1); | |
| Assert.AreEqual("A1", address.ToString()); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnAnInstanceWithFromAndToColSet() | |
| { | |
| var address = _factory.Create(1, 0); | |
| Assert.AreEqual(1, address.FromCol); | |
| Assert.AreEqual(1, address.ToCol); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnAnInstanceWithFromAndToRowSet() | |
| { | |
| var address = _factory.Create(0, 1); | |
| Assert.AreEqual(1, address.FromRow); | |
| Assert.AreEqual(1, address.ToRow); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnAnInstanceWithWorksheetSetToEmptyString() | |
| { | |
| var address = _factory.Create(0, 1); | |
| Assert.AreEqual(string.Empty, address.Worksheet); | |
| } | |
| [TestMethod] | |
| public void CreateShouldReturnEntireColumnRangeWhenNoRowsAreSpecified() | |
| { | |
| var address = _factory.Create("A:B"); | |
| Assert.AreEqual(1, address.FromCol); | |
| Assert.AreEqual(2, address.ToCol); | |
| Assert.AreEqual(1, address.FromRow); | |
| Assert.AreEqual(ExcelMaxRows, address.ToRow); | |
| } | |
| } | |
| } |