public void SessionContextProviderTest() { using (var tr = new SessionContextProvider(this.SessionFactory.OpenSession)) { INhPagedDAO dao = new EnterprisePagedDAO(tr); var res = dao.FindAll<Salesman>(); Assert.IsTrue(res.Any()); } }
public void SessionCacheProviderTest() { using (var tr = new SessionCacheProvider(this.SessionFactory.OpenSession, false, false)) { Assert.AreEqual(tr.KeyContext, SessionContextProvider.DefaultContext); INhPagedDAO dao = new EnterprisePagedDAO(tr); var res = dao.FindAll<Salesman>(); Assert.IsTrue(res.Any()); } }
public void FailedSessionBinderProviderTest() { this.UnBindSession(); ISessionBinderProvider provider = new SessionBinderProvider(this.SessionFactory.GetCurrentSession, this.LocalBindSession, this.LocalUnBindSession, () => CurrentSessionContext.HasBind( this.SessionFactory)); INhPagedDAO dao = new EnterprisePagedDAO(provider); dao.Load<Salesman>(1L); }
public void SessionContextProviderWorngTest() { var tr = new SessionContextProvider(this.SessionFactory.OpenSession); INhPagedDAO dao; using (tr) { dao = new EnterprisePagedDAO(tr); var res = dao.FindAll<Salesman>(); Assert.IsTrue(res.Any()); } // an error must be thrown .. // 'cause dao.FindAll<Student>(); }
public void Run2(int startIndex, int pageSize, StringBuilder buffer) { using (var sss = new SessionContextProvider(this.SessionFactory.OpenSession)) { INhPagedDAO dao = new EnterprisePagedDAO(sss); var result = dao.GetPagedResult<Salesman>(startIndex, pageSize, salesman => salesman.ID > 0); Assert.IsNotNull(result.Result); lock (buffer) { buffer.AppendLine("Begin writing on buffer"); foreach (var res in result.Result) { buffer.AppendLine(res.ToString()); } } } }
public void SessionCacheProviderWorngTest() { var tr = new SessionCacheProvider(this.SessionFactory.OpenSession, false, false); INhPagedDAO dao; using (tr) { Assert.AreEqual(tr.KeyContext, SessionContextProvider.DefaultContext); dao = new EnterprisePagedDAO(tr); var res = dao.FindAll<Salesman>(); Assert.IsTrue(res.Any()); } // an error must be thrown .. // 'cause dao.FindAll<Student>(); }
public void SessionCacheProviderTest2() { var tr = new SessionCacheProvider(this.SessionFactory.OpenSession, false, false); INhPagedDAO dao; using (null) { Assert.AreEqual(tr.KeyContext, SessionContextProvider.DefaultContext); dao = new EnterprisePagedDAO(tr); var res = dao.FindAll<Salesman>(); Assert.IsTrue(res.Any()); } // you can keep using the dao instance, because the its session provider didn't disposed. var res2 = dao.FindAll<Salesman>(n => n.ID < 10); Assert.IsTrue(res2 != null); }
public void FailedSessionCacheProviderMultiSession() { INhPagedDAO dao; using (ISessionProvider provider = new SessionCacheProvider(this.SessionFactory.OpenSession, true, false)) { dao = new EnterprisePagedDAO(provider); provider.BeginTransaction("first"); var res1 = dao.Load<Salesman>(1L, LockMode.Read); Assert.IsTrue(dao.IsCached(res1)); /* res1 is associated into the current session, so it's cached */ provider.CommitTransaction(); Assert.IsFalse(dao.IsCached(res1)); /* after commit the current session was closed and unreferenced, so res1 is not present in the new / next session to open. */ } dao.FindAll<Salesman>(n => n.ID > 1); /* throws an exception because the ISessionProvider was disposed. */ }
public void SessionCachedWithNewSessionAfterCommitOrRollback() { using (ISessionProvider provider = new SessionCacheProvider(this.SessionFactory.OpenSession, true, true)) { INhPagedDAO dao = new EnterprisePagedDAO(provider); provider.BeginTransaction("first"); var res1 = dao.Load<Salesman>(1L, LockMode.Read); Assert.IsTrue(dao.IsCached(res1)); /* res1 is associated into the current session, so it's cached */ provider.CommitTransaction(); Assert.IsFalse(dao.IsCached(res1)); /* after commit the current session was closed and unreferenced, so res1 is not present in the new / next session to open. */ provider.BeginTransaction("second"); var res2 = dao.Load<Salesman>(1L, LockMode.Read); Assert.IsTrue(dao.IsCached(res2)); Assert.IsFalse(dao.IsCached(res1)); provider.RollbackTransaction(); Assert.IsFalse(dao.IsCached(res2)); provider.BeginTransaction("third"); var res3 = dao.Load<Salesman>(1L, LockMode.Read); Assert.AreNotSame(res1, res2); Assert.AreNotSame(res1, res3); Assert.AreNotSame(res2, res3); Assert.IsTrue(dao.IsCached(res3)); provider.CommitTransaction(); Assert.IsFalse(dao.IsCached(res3)); } }
public void SessionCachedWithSameSessionAfterCommit() { using (ISessionProvider provider = new SessionCacheProvider(this.SessionFactory.OpenSession, false, false)) { INhPagedDAO dao = new EnterprisePagedDAO(provider); provider.BeginTransaction("first"); var res1 = dao.Load<Salesman>(1L, LockMode.Read); Assert.IsTrue(dao.IsCached(res1)); /* res1 is associated into the current session, so it's cached */ provider.CommitTransaction(); Assert.IsTrue(dao.IsCached(res1)); /* after commit the current session was cached, so res1 is present into the same session. */ provider.BeginTransaction("second"); var res2 = dao.Load<Salesman>(1L, LockMode.Read); Assert.AreSame(res1, res2); Assert.IsTrue(dao.IsCached(res2)); provider.CommitTransaction(); Assert.IsTrue(dao.IsCached(res2)); provider.BeginTransaction("third"); var res3 = dao.Load<Salesman>(1L, LockMode.Read); Assert.AreSame(res1, res3); Assert.AreSame(res2, res3); Assert.IsTrue(dao.IsCached(res3)); provider.CommitTransaction(); Assert.IsTrue(dao.IsCached(res3)); } }