From: Michael D. <mik...@us...> - 2004-08-14 14:57:57
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26350/nhibernate/src/NHibernate.Test Modified Files: FumTest.cs MasterDetailTest.cs Log Message: Implemented more tests. These tests still contain some probs with Filter. Index: MasterDetailTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/MasterDetailTest.cs,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** MasterDetailTest.cs 9 Aug 2004 03:40:41 -0000 1.9 --- MasterDetailTest.cs 14 Aug 2004 14:57:48 -0000 1.10 *************** *** 20,24 **** ExportSchema(new string[] { "MasterDetail.hbm.xml", ! //"Custom.hbm.xml", "Category.hbm.xml", "INameable.hbm.xml", --- 20,24 ---- ExportSchema(new string[] { "MasterDetail.hbm.xml", ! "Custom.hbm.xml", "Category.hbm.xml", "INameable.hbm.xml", *************** *** 191,195 **** //http://jira.nhibernate.org:8080/browse/NH-79 ! /* s = sessions.OpenSession(); t = s.BeginTransaction(); --- 191,195 ---- //http://jira.nhibernate.org:8080/browse/NH-79 ! /* s = sessions.OpenSession(); t = s.BeginTransaction(); *************** *** 206,214 **** // rest of the test depends on ISession.Filter() working } [Test] - [Ignore("FilterKeyFactory is null so code for test is not complete. http://jira.nhibernate.org:8080/browse/NH-80")] public void IncomingOutgoing() { --- 206,249 ---- // rest of the test depends on ISession.Filter() working + s = sessions.OpenSession(); + t = s.BeginTransaction(); + Detail dd = (Detail)s.Load( typeof(Detail), did ); + master = dd.Master; + Assert.IsTrue( master.Details.Contains(dd), "detail-master" ); + Assert.AreEqual( 2, s.Filter( master.Details, "order by this.I desc").Count ); + Assert.AreEqual( 2, s.Filter( master.Details, "select this where this.id > -1").Count ); + /* + * TODO: Filter is not working well... + IQuery q = s.CreateFilter( master.Details, "where this.id > :id" ); + q.SetInt32("id", -1); + Assert.AreEqual( 2, q.List().Count ); + + q = s.CreateFilter( master.Details, "where this.id > :id1 and this.id < :id2" ); + q.SetInt32("id1", -1); + q.SetInt32("id2", 99999999); + Assert.AreEqual( 2, q.List().Count ); + q.SetInt32("id2", -1); + Assert.AreEqual( 0, q.List().Count ); + + q = s.CreateFilter( master.Details, "where this.id in (:ids)" ); + list = new ArrayList(); + list.Add(did); + list.Add( (long)-1 ); + q.SetParameterList("ids", list); + + Assert.AreEqual( 1, q.List().Count ); + Assert.IsTrue( q.Enumerable().GetEnumerator().MoveNext() ); + */ + Assert.AreEqual( 2, s.Filter( master.Details, "where this.id > -1").Count ); + Assert.AreEqual( 2, s.Filter( master.Details, "select this.Master where this.id > -1").Count ); + Assert.AreEqual( 2, s.Filter( master.Details, "select m from m in class Master where this.id > -1 and this.Master=m").Count ); + Assert.AreEqual( 0, s.Filter( master.Incoming.Keys, "where this.id > -1 and this.Name is not null").Count ); + + + } [Test] public void IncomingOutgoing() { *************** *** 228,236 **** object m1id = s.GetIdentifier(master1); - //TODO: Filter's are not working because FilterKeyFactory is null. Assert.AreEqual( 2, s.Filter(master1.Incoming, "where this.id > 0 and this.Name is not null").Count ); s.Flush(); s.Close(); } --- 263,285 ---- object m1id = s.GetIdentifier(master1); Assert.AreEqual( 2, s.Filter(master1.Incoming, "where this.id > 0 and this.Name is not null").Count ); s.Flush(); s.Close(); + s = sessions.OpenSession(); + master1 = (Master)s.Load( typeof(Master), m1id ); + int i = 0; + foreach( Master m in master1.Incoming.Keys ) + { + Assert.AreEqual( 1, m.Outgoing.Count, "outgoing" ); + Assert.IsTrue( m.Outgoing.Contains(master1), "outgoing" ); + s.Delete(m); + i++; + } + + Assert.AreEqual( 2, i, "incoming-outgoing" ); + s.Delete(master1); + s.Flush(); + s.Close(); } *************** *** 619,625 **** [Test] - [Ignore("Test not written yet.")] public void CustomPersister() { } --- 668,709 ---- [Test] public void CustomPersister() { + ISession s = sessions.OpenSession(); + Custom c = new Custom(); + c.Name = "foo"; + c.Id = 100; + long id = (long)s.Save(c); + Assert.AreSame( c, s.Load( typeof(Custom), id ) ); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + c = (Custom)s.Load( typeof(Custom), id ); + Assert.AreEqual( "foo", c.Name ); + c.Name = "bar"; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + c = (Custom)s.Load( typeof(Custom), id ); + Assert.AreEqual( "bar", c.Name ); + s.Delete(c); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + bool none = false; + try + { + s.Load( typeof(Custom), id ); + } + catch(ObjectNotFoundException onfe) + { + none = true; + } + + Assert.IsTrue(none); + s.Close(); } Index: FumTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FumTest.cs,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** FumTest.cs 1 Aug 2004 22:12:45 -0000 1.11 --- FumTest.cs 14 Aug 2004 14:57:48 -0000 1.12 *************** *** 193,197 **** [Test] ! [Ignore("ISession.Filter() not implemented. Everything else passes. http://jira.nhibernate.org:8080/browse/NH-80")] public void CompositeIDQuery() { --- 193,197 ---- [Test] ! [Ignore("Filter() and multi-column Types. Everything else passes. http://jira.nhibernate.org:8080/browse/NH-96")] public void CompositeIDQuery() { *************** *** 256,260 **** Assert.AreEqual( 8, j, "iterate on composite key" ); ! //TODO: testing code for Filter() here enumer = s.Enumerable("from fum in class NHibernate.DomainModel.Fum where not fum.FumString='FRIEND'").GetEnumerator(); --- 256,266 ---- Assert.AreEqual( 8, j, "iterate on composite key" ); ! fum = (Fum)s.Load( typeof(Fum), fum.Id ); ! //TODO: http://jira.nhibernate.org:8080/browse/NH-96 bug is here ! s.Filter( fum.QuxArray, "where this.Foo is null" ); ! s.Filter( fum.QuxArray, "where this.Foo.id = ?", "fooid", NHibernate.String ); ! IQuery f = s.CreateFilter( fum.QuxArray, "where this.Foo.id = :fooId" ); ! f.SetString("fooId", "abc"); ! Assert.IsFalse( f.Enumerable().GetEnumerator().MoveNext() ); enumer = s.Enumerable("from fum in class NHibernate.DomainModel.Fum where not fum.FumString='FRIEND'").GetEnumerator(); |