| 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.FormulaParsing |
| { |
| [TestClass] |
| public class ParsingScopeTests |
| { |
| private IParsingLifetimeEventHandler _lifeTimeEventHandler; |
| private ParsingScopes _parsingScopes; |
| private RangeAddressFactory _factory; |
| |
| [TestInitialize] |
| public void Setup() |
| { |
| var provider = MockRepository.GenerateStub<ExcelDataProvider>(); |
| _factory = new RangeAddressFactory(provider); |
| _lifeTimeEventHandler = MockRepository.GenerateStub<IParsingLifetimeEventHandler>(); |
| _parsingScopes = MockRepository.GenerateStub<ParsingScopes>(_lifeTimeEventHandler); |
| } |
| |
| [TestMethod] |
| public void ConstructorShouldSetAddress() |
| { |
| var expectedAddress = _factory.Create("A1"); |
| var scope = new ParsingScope(_parsingScopes, expectedAddress); |
| Assert.AreEqual(expectedAddress, scope.Address); |
| } |
| |
| [TestMethod] |
| public void ConstructorShouldSetParent() |
| { |
| var parent = new ParsingScope(_parsingScopes, _factory.Create("A1")); |
| var scope = new ParsingScope(_parsingScopes, parent, _factory.Create("A2")); |
| Assert.AreEqual(parent, scope.Parent); |
| } |
| |
| [TestMethod] |
| public void ScopeShouldCallKillScopeOnDispose() |
| { |
| var scope = new ParsingScope(_parsingScopes, _factory.Create("A1")); |
| ((IDisposable)scope).Dispose(); |
| _parsingScopes.AssertWasCalled(x => x.KillScope(scope)); |
| } |
| } |
| } |