From: Michael D. <mik...@us...> - 2004-06-29 14:28:14
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30583 Modified Files: FooBarTest.cs Log Message: Implmented more test and made changes because of DomainModel property name changes. Index: FooBarTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FooBarTest.cs,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** FooBarTest.cs 29 Jun 2004 04:30:15 -0000 1.31 --- FooBarTest.cs 29 Jun 2004 14:28:04 -0000 1.32 *************** *** 1,7 **** using System; ! using NUnit.Framework; using NHibernate; using NHibernate.DomainModel; ! using System.Collections; namespace NHibernate.Test --- 1,10 ---- using System; ! using System.Collections; ! using System.Data; ! using NHibernate; using NHibernate.DomainModel; ! ! using NUnit.Framework; namespace NHibernate.Test *************** *** 206,210 **** s.Flush(); ! bar.@string = "changed"; Baz baz = new Baz(); baz.Foo = bar; --- 209,213 ---- s.Flush(); ! bar.String = "changed"; Baz baz = new Baz(); baz.Foo = bar; *************** *** 500,508 **** //TODO: need to add PropertyExpressions to Expression namespace. IList list = s.CreateCriteria(typeof(Foo)) ! .Add( Expression.Expression.Eq( "integer", f.integer ) ) //.Add( Expression.Expression.EqProperty("integer", "integer") ) ! .Add( Expression.Expression.Like( "string", f.@string) ) ! .Add( Expression.Expression.In("boolean", new bool[] {f.boolean, f.boolean} ) ) ! .SetFetchMode("foo", FetchMode.Eager) .SetFetchMode("baz", FetchMode.Lazy) .List(); --- 503,511 ---- //TODO: need to add PropertyExpressions to Expression namespace. IList list = s.CreateCriteria(typeof(Foo)) ! .Add( Expression.Expression.Eq( "Integer", f.Integer ) ) //.Add( Expression.Expression.EqProperty("integer", "integer") ) ! .Add( Expression.Expression.Like( "String", f.String) ) ! .Add( Expression.Expression.In("Boolean", new bool[] {f.Boolean, f.Boolean} ) ) ! .SetFetchMode("TheFoo", FetchMode.Eager) .SetFetchMode("baz", FetchMode.Lazy) .List(); *************** *** 512,520 **** list = s.CreateCriteria( typeof(Foo) ).Add( Expression.Expression.Disjunction() ! .Add( Expression.Expression.Eq( "integer", f.integer ) ) ! .Add( Expression.Expression.Like( "string", f.@string ) ) ! .Add( Expression.Expression.Eq( "boolean", f.boolean ) ) ) ! .Add( Expression.Expression.IsNotNull("boolean") ) .List(); --- 515,523 ---- list = s.CreateCriteria( typeof(Foo) ).Add( Expression.Expression.Disjunction() ! .Add( Expression.Expression.Eq( "Integer", f.Integer ) ) ! .Add( Expression.Expression.Like( "String", f.String ) ) ! .Add( Expression.Expression.Eq( "Boolean", f.Boolean ) ) ) ! .Add( Expression.Expression.IsNotNull("Boolean") ) .List(); *************** *** 524,529 **** Expression.Expression orExpression; ! andExpression = Expression.Expression.And( Expression.Expression.Eq( "integer", f.integer ), Expression.Expression.Like( "string", f.@string ) ); ! orExpression = Expression.Expression.Or( andExpression, Expression.Expression.Eq( "boolean", f.boolean ) ); list = s.CreateCriteria(typeof(Foo)) --- 527,532 ---- Expression.Expression orExpression; ! andExpression = Expression.Expression.And( Expression.Expression.Eq( "Integer", f.Integer ), Expression.Expression.Like( "String", f.String ) ); ! orExpression = Expression.Expression.Or( andExpression, Expression.Expression.Eq( "Boolean", f.Boolean ) ); list = s.CreateCriteria(typeof(Foo)) *************** *** 536,540 **** list = s.CreateCriteria(typeof(Foo)) .SetMaxResults(5) ! .AddOrder(Expression.Order.Asc("date")) .List(); --- 539,543 ---- list = s.CreateCriteria(typeof(Foo)) .SetMaxResults(5) ! .AddOrder(Expression.Order.Asc("Date")) .List(); *************** *** 547,584 **** list = s.CreateCriteria(typeof(Foo)) .SetFirstResult(1) ! .AddOrder( Expression.Order.Asc("date") ) ! .AddOrder( Expression.Order.Desc("string") ) .List(); Assert.AreEqual(0, list.Count); ! f.foo = new Foo(); ! s.Save(f.foo); s.Flush(); s.Close(); //TODO: some HSQLDialect specific code here - // s = sessions.OpenSession(); - // list = s.CreateCriteria(Foo) - // .Add( Expression.Expression.Eq( "integer", f.integer ) ) - // .Add( Expression.Expression.Like( "string", f.@string ) ) - // .Add( Expression.Expression.In( "boolean", new bool[] { f.boolean, f.boolean } ) ) - // .Add( Expression.Expression.IsNotNull("foo") ); - - } [Test] - [Ignore("Test not written yet.")] public void AfterDelete() { } [Test] ! [Ignore("Test not written yet.")] public void CollectionWhere() { } --- 550,645 ---- list = s.CreateCriteria(typeof(Foo)) .SetFirstResult(1) ! .AddOrder( Expression.Order.Asc("Date") ) ! .AddOrder( Expression.Order.Desc("String") ) .List(); Assert.AreEqual(0, list.Count); ! f.TheFoo = new Foo(); ! s.Save(f.TheFoo); s.Flush(); s.Close(); //TODO: some HSQLDialect specific code here + s = sessions.OpenSession(); + list = s.CreateCriteria(typeof(Foo)) + .Add( Expression.Expression.Eq( "Integer", f.Integer ) ) + .Add( Expression.Expression.Like( "String", f.String ) ) + .Add( Expression.Expression.In( "Boolean", new bool[] { f.Boolean, f.Boolean } ) ) + .Add( Expression.Expression.IsNotNull("TheFoo") ) + .SetFetchMode("TheFoo", FetchMode.Eager) + .SetFetchMode("Baz", FetchMode.Lazy) + .SetFetchMode("Component.Glarch", FetchMode.Lazy) + .SetFetchMode("TheFoo.Baz", FetchMode.Lazy) + .SetFetchMode("TheFoo.Component.Glarch", FetchMode.Lazy) + .List(); + + f = (Foo) list[0]; + Assert.IsTrue(NHibernate.IsInitialized(f.TheFoo)); + + //TODO: this is initialized because Proxies are not implemented yet. + //Assert.IsFalse( NHibernate.IsInitialized(f.component.Glarch) ); + s.Delete(f.TheFoo); + s.Delete(f); + s.Flush(); + s.Close(); + } [Test] public void AfterDelete() { + ISession s = sessions.OpenSession(); + Foo foo = new Foo(); + s.Save(foo); + s.Flush(); + s.Delete(foo); + s.Save(foo); + s.Delete(foo); + s.Flush(); + s.Close(); } [Test] ! //[Ignore("Test not written yet.")] public void CollectionWhere() { + Foo foo1 = new Foo(); + Foo foo2 = new Foo(); + Baz baz = new Baz(); + Foo[] arr = new Foo[10]; + arr[0] = foo1; + arr[9] = foo2; + + ISession s = sessions.OpenSession(); + s.Save(foo1); + s.Save(foo2); + baz.FooArray = arr; + s.Save(baz); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + baz = (Baz)s.Load(typeof(Baz), baz.Code); + Assert.AreEqual( 1, baz.FooArray.Length ); + Assert.AreEqual( 1, s.Find("from Baz baz, baz.FooArray foo").Count ); + Assert.AreEqual( 2, s.Find("from Foo foo").Count ); + // TODO: filter is not working because QueryKeyCacheFactor is null + //Assert.AreEqual( 1, s.Filter(baz.FooArray, "").Count ); + + s.Delete("from Foo foo"); + s.Delete(baz); + + IDbCommand deleteCmd = s.Connection.CreateCommand(); + deleteCmd.CommandText = "delete from fooArray where id_='" + baz.Code + "' and i>=8"; + deleteCmd.CommandType = CommandType.Text; + int rows = deleteCmd.ExecuteNonQuery(); + Assert.AreEqual(1, rows); + + s.Flush(); + s.Close(); + } *************** *** 840,844 **** s = sessions.OpenSession(); ! s.Delete( s.Load( typeof(Foo), f.key ) ); s.Flush(); s.Close(); --- 901,905 ---- s = sessions.OpenSession(); ! s.Delete( s.Load( typeof(Foo), f.Key ) ); s.Flush(); s.Close(); |