public void CanGetFutureEntities() { FutureValue <Parent> futureParent = Repository <Parent> .FutureGet(Guid.NewGuid()); FutureValue <Child> futureChild = Repository <Child> .FutureGet(Guid.NewGuid()); Assert.IsNull(futureChild.Value); //This also kills the database, because we use an in // memory one ,so we ensure that the code is not // executing a second query CurrentContext.DisposeUnitOfWork(); Assert.IsNull(futureParent.Value); }
public void CanExecuteQueryBatch() { FutureQueryOf <Parent> futureQueryOfParents = new FutureQueryOf <Parent>(DetachedCriteria.For <Parent>()); FutureQueryOf <Child> futureQueryOfChildren = new FutureQueryOf <Child>(DetachedCriteria.For <Child>()); Assert.AreEqual(0, futureQueryOfParents.Results.Count); //This also kills the database, because we use an in // memory one ,so we ensure that the code is not // executing a second query CurrentContext.DisposeUnitOfWork(); Assert.AreEqual(0, futureQueryOfChildren.Results.Count); }
public void NotifiedOnUnitOfWorkStart() { IoC.Container.AddComponent("IUnitOfWorkAware", typeof(IUnitOfWorkAware), typeof(UnitOfWorkAwareImplementor)); CurrentContext.CreateUnitOfWork(); UnitOfWorkAwareImplementor resolve = (UnitOfWorkAwareImplementor)IoC.Resolve <IUnitOfWorkAware>(); Assert.AreEqual(1, resolve.StartedCalled); Assert.AreEqual(0, resolve.DisposingCalled); Assert.AreEqual(0, resolve.DisposedCalled); CurrentContext.DisposeUnitOfWork(); Assert.AreEqual(1, resolve.StartedCalled); Assert.AreEqual(1, resolve.DisposingCalled); Assert.AreEqual(1, resolve.DisposedCalled); }
protected void VerifyCanCreateUseAndDisposeNestedUnitOfWork() { Assert.AreEqual(-1, CurrentContext.UnitOfWorkNestingLevel, "level before starting UoW = -1"); CurrentContext.CreateUnitOfWork(); Assert.AreEqual(0, CurrentContext.UnitOfWorkNestingLevel, "level after starting UoW = 0"); CurrentContext.CreateNestedUnitOfWork(); Assert.AreEqual(1, CurrentContext.UnitOfWorkNestingLevel, "level after starting nested UoW = 1"); UnitOfWork.CurrentSession.Save(new AREntity()); UnitOfWork.CurrentSession.Flush(); CurrentContext.DisposeUnitOfWork(); //this is happening in the original UoW UnitOfWork.CurrentSession.Save(new AREntity()); UnitOfWork.CurrentSession.Flush(); CurrentContext.DisposeUnitOfWork(); }
protected void VerifyCanCreateUseAndDisposeNestedUnitOfWork() { Assert.AreEqual(-1, CurrentContext.UnitOfWorkNestingLevel, "level before starting UnitOfWork = -1"); CurrentContext.CreateUnitOfWork(); Assert.AreEqual(0, CurrentContext.UnitOfWorkNestingLevel, "level before starting UnitOfWork = 0"); CurrentContext.CreateNestedUnitOfWork(); Assert.AreEqual(1, CurrentContext.UnitOfWorkNestingLevel, "level after staring Nested UnitOfWork = 1"); // in nested unit-of-work UnitOfWork.CurrentSession.Save(new GuidEntityForTesting()); UnitOfWork.CurrentSession.Flush(); CurrentContext.DisposeUnitOfWork(); // in original unit-of-work UnitOfWork.CurrentSession.Save(new GuidEntityForTesting()); UnitOfWork.CurrentSession.Flush(); CurrentContext.DisposeUnitOfWork(); }
protected void VerifyCanCreateUseAndDisposeSession() { ISession session = null; try { if (IoC.IsNotInitialized) { IoC.Initialize(); } CurrentContext.CreateUnitOfWork(); session = CurrentContext.CreateSession(); Assert.IsNotNull(session); session.Save(new GuidEntityForTesting()); session.Flush(); } finally { CurrentContext.DisposeSession(session); CurrentContext.DisposeUnitOfWork(); } }
public virtual void CallingCreateUnitOfWorkMoreThanOnceIsNotAllowed() { InitializeNHibernateAndIoC(WindsorFilePath, DatabaseEngine.SQLite, ""); CurrentContext.CreateUnitOfWork(); try { CurrentContext.CreateUnitOfWork(); Assert.Fail("Exception was expected"); } catch (InvalidOperationException e) { string message = "Cannot create a nested UnitOfWork with this method. Use CreateNestedUnitOfWork() instead"; Assert.AreEqual(message, e.Message); } finally { CurrentContext.DisposeUnitOfWork(); } }
public void TestCleanup() { CurrentContext.DisposeUnitOfWork(); }
public void TearDown() { CurrentContext.DisposeUnitOfWork(); }
public void TestCleanup() { //Cleanup the top level UnitOfWork CurrentContext.DisposeUnitOfWork(); }