From: Michael D. <mik...@us...> - 2004-07-07 05:17:30
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17378/NHibernate.Test Modified Files: FooBarTest.cs Log Message: Implemented more tests. Index: FooBarTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FooBarTest.cs,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** FooBarTest.cs 6 Jul 2004 21:12:49 -0000 1.38 --- FooBarTest.cs 7 Jul 2004 05:17:19 -0000 1.39 *************** *** 1473,1485 **** [Test] - [Ignore("Test not written yet.")] public void PersistentLifecycle() { } [Test] ! [Ignore("Test not written yet.")] public void Iterators() { } --- 1473,1549 ---- [Test] public void PersistentLifecycle() { + ISession s = sessions.OpenSession(); + Qux q = new Qux(); + s.Save(q); + q.Stuff = "foo bar baz qux"; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + q = (Qux)s.Load( typeof(Qux), q.Key ); + Assert.IsTrue( q.Created, "lifecycle create" ); + Assert.IsTrue( q.Loaded, "lifecycle load" ); + Assert.IsNotNull( q.Foo, "lifecycle subobject" ); + s.Delete(q); + Assert.IsTrue( q.Deleted, "lifecyle delete" ); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + Assert.AreEqual(0, s.Find("from foo in class NHibernate.DomainModel.Foo").Count, "subdeletion"); + s.Flush(); + s.Close(); + } [Test] ! //[Ignore("Test not written yet.")] public void Iterators() { + ISession s = sessions.OpenSession(); + for( int i=0; i<10; i++ ) + { + Qux q = new Qux(); + object qid = s.Save(q); + Assert.IsNotNull(q, "q is not null"); + Assert.IsNotNull(qid, "qid is not null"); + } + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + IEnumerator enumer = s.Enumerable("from q in class NHibernate.DomainModel.Qux where q.Stuff is null").GetEnumerator(); + int count = 0; + while( enumer.MoveNext() ) + { + Qux q = (Qux)enumer.Current; + q.Stuff = "foo"; + // can't remove item from IEnumerator in .net + //if (count==0 || count==5) enumer.Remove(); + count++; + } + + Assert.AreEqual(10, count, "found 10 items"); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + + Assert.AreEqual(10, + s.Delete("from q in class NHibernate.DomainModel.Qux where q.Stuff=?", "foo", NHibernate.String), + "delete by query"); + + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + enumer = s.Enumerable("from q in class NHibernate.DomainModel.Qux").GetEnumerator(); + Assert.IsFalse( enumer.MoveNext() , "no items in enumerator" ); + s.Flush(); + s.Close(); + + } |