Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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();
            }
        }
Esempio n. 7
0
        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();
 }
Esempio n. 9
0
 public void TearDown()
 {
     CurrentContext.DisposeUnitOfWork();
 }
Esempio n. 10
0
 public void TestCleanup()
 {
     //Cleanup the top level UnitOfWork
     CurrentContext.DisposeUnitOfWork();
 }