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