public void Get() { User gavin = null; User turin = null; Group g = null; using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { gavin = new User("gavin", "secret"); turin = new User("turin", "tiger"); g = new Group("developers"); g.Users.Add("gavin", gavin); g.Users.Add("turin", turin); s.Persist(g); gavin.Session.Add("foo", new SessionAttribute("foo", "foo bar baz")); gavin.Session.Add("bar", new SessionAttribute("bar", "foo bar baz 2")); t.Commit(); } using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { g = s.Get<Group>("developers"); gavin = (User)g.Users["gavin"]; turin = (User)g.Users["turin"]; Assert.That(gavin, Is.Not.Null); Assert.That(turin, Is.Not.Null); Assert.That(g.Users["emmanuel"], Is.Null); Assert.IsFalse(NHibernateUtil.IsInitialized(g.Users)); Assert.That(gavin.Session["foo"], Is.Not.Null); Assert.That(turin.Session["foo"], Is.Null); Assert.IsFalse(NHibernateUtil.IsInitialized(gavin.Session)); Assert.IsFalse(NHibernateUtil.IsInitialized(turin.Session)); s.Delete(gavin); s.Delete(turin); s.Delete(g); t.Commit(); } }
public void IndexFormulaMap() { User gavin = null; User turin = null; Group g = null; IDictionary smap = null; using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { gavin = new User("gavin", "secret"); turin = new User("turin", "tiger"); g = new Group("developers"); g.Users.Add("gavin", gavin); g.Users.Add("turin", turin); s.Persist(g); gavin.Session.Add("foo", new SessionAttribute("foo", "foo bar baz")); gavin.Session.Add("bar", new SessionAttribute("bar", "foo bar baz 2")); t.Commit(); } using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { g = s.Get<Group>("developers"); Assert.AreEqual(2, g.Users.Count); g.Users.Remove("turin"); smap = ((User)g.Users["gavin"]).Session; Assert.AreEqual(2, smap.Count); smap.Remove("bar"); t.Commit(); } using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { g = s.Get<Group>("developers"); Assert.AreEqual(1, g.Users.Count); smap = ((User)g.Users["gavin"]).Session; Assert.AreEqual(1, smap.Count); gavin = (User)g.Users["gavin"]; // NH: put in JAVA return the previous value g.Users["gavin"] = turin; s.Delete(gavin); Assert.AreEqual(0, s.CreateQuery("select count(*) from SessionAttribute").UniqueResult<long>()); t.Commit(); } using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { g = s.Get<Group>("developers"); Assert.AreEqual(1, g.Users.Count); turin = (User)g.Users["turin"]; smap = turin.Session; Assert.AreEqual(0, smap.Count); Assert.AreEqual(1L, s.CreateQuery("select count(*) from User").UniqueResult<long>()); s.Delete(g); s.Delete(turin); Assert.AreEqual(0, s.CreateQuery("select count(*) from User").UniqueResult<long>()); t.Commit(); } }
public void RemoveClear() { User gavin = null; User turin = null; Group g = null; using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { gavin = new User("gavin", "secret"); turin = new User("turin", "tiger"); g = new Group("developers"); g.Users.Add("gavin", gavin); g.Users.Add("turin", turin); s.Persist(g); gavin.Session.Add("foo", new SessionAttribute("foo", "foo bar baz")); gavin.Session.Add("bar", new SessionAttribute("bar", "foo bar baz 2")); t.Commit(); } using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { g = s.Get<Group>("developers"); gavin = (User)g.Users["gavin"]; turin = (User)g.Users["turin"]; Assert.IsFalse(NHibernateUtil.IsInitialized(g.Users)); g.Users.Clear(); gavin.Session.Remove("foo"); Assert.IsTrue(NHibernateUtil.IsInitialized(g.Users)); Assert.IsTrue(NHibernateUtil.IsInitialized(gavin.Session)); t.Commit(); } using (var s = SessionFactory.OpenSession()) using (var t = s.BeginTransaction()) { g = s.Get<Group>("developers"); //Assert.IsTrue( g.Users.IsEmpty() ); //Assert.IsFalse( NHibernateUtil.IsInitialized( g.getUsers() ) ); gavin = s.Get<User>("gavin"); Assert.IsFalse(gavin.Session.Contains("foo")); Assert.IsFalse(NHibernateUtil.IsInitialized(gavin.Session)); s.Delete(gavin); s.Delete(turin); s.Delete(g); t.Commit(); } }