From: Michael D. <mik...@us...> - 2004-08-13 18:57:33
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23346/nhibernate/src/NHibernate.Test Modified Files: FooBarTest.cs Log Message: Implemented more tests and added better descriptions to [Ignore]s. Index: FooBarTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FooBarTest.cs,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** FooBarTest.cs 13 Aug 2004 13:26:35 -0000 1.55 --- FooBarTest.cs 13 Aug 2004 18:57:24 -0000 1.56 *************** *** 351,355 **** [Test] ! [Ignore("Test not written yet.")] public void ForceOuterJoin() { --- 351,355 ---- [Test] ! [Ignore("Proxies Required - http://jira.nhibernate.org:8080/browse/NH-41")] public void ForceOuterJoin() { *************** *** 434,440 **** [Test] ! [Ignore("Test not written yet.")] public void Limit() { } --- 434,461 ---- [Test] ! [Ignore("IQuery.SetMaxResults() - http://jira.nhibernate.org:8080/browse/NH-93")] public void Limit() { + ISession s = sessions.OpenSession(); + for( int i=0; i<10; i++) + { + s.Save( new Foo() ); + } + + IEnumerable enumerable = s.CreateQuery("from Foo foo") + .SetMaxResults(4) + .SetFirstResult(2) + .Enumerable(); + + int count = 0; + foreach(object obj in enumerable) + { + count++; + } + + Assert.AreEqual( 4, count ); + Assert.AreEqual( 10, s.Delete("from Foo foo") ); + s.Flush(); + s.Close(); } *************** *** 488,497 **** [Test] - [Ignore("Test not written yet.")] - public void Dyna() - { - } - - [Test] [Ignore("SetMaxResults - http://jira.nhibernate.org:8080/browse/NH-87")] public void FindByCriteria() --- 509,512 ---- *************** *** 2049,2053 **** [Test] ! [Ignore("Test not written yet.")] public void ScrollableIterator() { --- 2064,2068 ---- [Test] ! [Ignore("IScrollableResults - http://jira.nhibernate.org:8080/browse/NH-37")] public void ScrollableIterator() { *************** *** 2486,2492 **** [Test] - [Ignore("Test not written yet.")] public void OrderBy() { } --- 2501,2597 ---- [Test] public void OrderBy() { + ISession s = sessions.OpenSession(); + ITransaction t = s.BeginTransaction(); + Foo foo = new Foo(); + s.Save(foo); + IList list = s.Find("select foo from foo in class Foo, fee in class Fee where foo.Dependent = fee order by foo.String desc, foo.Component.Count asc, fee.id"); + Assert.AreEqual( 1, list.Count, "order by"); + Foo foo2 = new Foo(); + s.Save(foo2); + foo.TheFoo = foo2; + list = s.Find("select foo.TheFoo, foo.Dependent from foo in class Foo order by foo.TheFoo.String desc, foo.Component.Count asc, foo.Dependent.id"); + Assert.AreEqual( 1, list.Count, "order by" ); + list = s.Find("select foo from foo in class NHibernate.DomainModel.Foo order by foo.Dependent.id, foo.Dependent.Fi"); + Assert.AreEqual( 2, list.Count, "order by"); + s.Delete(foo); + s.Delete(foo2); + t.Commit(); + s.Close(); + + s = sessions.OpenSession(); + Many manyB = new Many(); + s.Save(manyB); + One oneB = new One(); + s.Save(oneB); + oneB.Value = "b"; + manyB.One = oneB; + Many manyA = new Many(); + s.Save(manyA); + One oneA = new One(); + s.Save(oneA); + oneA.Value = "a"; + manyA.One = oneA; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + IEnumerable enumerable = s.Enumerable("SELECT one FROM one IN CLASS " + typeof(One).Name + " ORDER BY one.Value ASC"); + int count = 0; + foreach(One one in enumerable) + { + switch(count) + { + case 0: + Assert.AreEqual( "a", one.Value, "a - ordering failed" ); + break; + case 1: + Assert.AreEqual( "b", one.Value, "b - ordering failed" ); + break; + default: + Assert.Fail("more than two elements"); + break; + } + count++; + } + + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + enumerable = s.Enumerable("SELECT many.One FROM many IN CLASS " + typeof(Many).Name + " ORDER BY many.One.Value ASC, many.One.id"); + count = 0; + foreach(One one in enumerable) + { + switch(count) + { + case 0: + Assert.AreEqual( "a", one.Value, "'a' should be first element" ); + break; + case 1: + Assert.AreEqual( "b", one.Value, "'b' should be second element" ); + break; + default: + Assert.Fail("more than 2 elements"); + break; + } + count++; + } + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + oneA = (One)s.Load( typeof(One), oneA.Key ); + manyA = (Many)s.Load( typeof(Many), manyA.Key ); + oneB = (One)s.Load( typeof(One), oneB.Key ); + manyB = (Many)s.Load( typeof(Many), manyB.Key ); + s.Delete(manyA); + s.Delete(oneA); + s.Delete(manyB); + s.Delete(oneB); + s.Flush(); + s.Close(); + } *************** *** 2660,2666 **** [Test] - [Ignore("Test not written yet.")] public void SerializableType() { } --- 2765,2786 ---- [Test] public void SerializableType() { + ISession s = sessions.OpenSession(); + Vetoer v = new Vetoer(); + v.Strings = new string[] {"foo", "bar", "baz"}; + s.Save(v); + object id = s.Save(v); + v.Strings[1] = "osama"; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + v = (Vetoer)s.Load( typeof(Vetoer), id ); + Assert.AreEqual( "osama", v.Strings[1], "serializable type" ); + s.Delete(v); + s.Delete(v); + s.Flush(); + s.Close(); } |