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