From: Michael D. <mik...@us...> - 2004-06-18 13:48:21
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22528/NHibernate.Test Modified Files: FumTest.cs Log Message: Modified some properties to follow .net naming standards and wrote more test for composite ids. Index: FumTest.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/FumTest.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** FumTest.cs 9 Jun 2004 01:05:46 -0000 1.5 --- FumTest.cs 18 Jun 2004 13:48:11 -0000 1.6 *************** *** 1,3 **** --- 1,4 ---- using System; + using System.Collections; using NHibernate.DomainModel; *************** *** 9,13 **** /// <summary> ! /// Summary description for FumTest. /// </summary> [TestFixture] --- 10,14 ---- /// <summary> ! /// FumTest handles testing Composite Ids. /// </summary> [TestFixture] *************** *** 80,92 **** [Test] - [Ignore("Test not yet written")] public void ListIdentifiers() { } [Test] - [Ignore("Test not yet written")] public void CompositeID() { } --- 81,165 ---- [Test] public void ListIdentifiers() { + ISession s = sessions.OpenSession(); + Fum fum = new Fum( FumTest.FumKey("fum") ); + fum.FumString = "fo fee fi"; + s.Save(fum); + + fum = new Fum( FumTest.FumKey("fi") ); + fum.FumString = "fee fi fo"; + s.Save(fum); + + // not doing a flush because the Find will do an auto flush unless we tell the session a + // different FlushMode + IList list = s.Find("select fum.Id from fum in class NHibernate.DomainModel.Fum where not fum.FumString = 'FRIEND'"); + + Assert.AreEqual(2, list.Count, "List Identifiers"); + + IEnumerator enumerator = s.Enumerable("select fum.Id from fum in class NHibernate.DomainModel.Fum where not fum.FumString='FRIEND'").GetEnumerator(); + int i = 0; + while(enumerator.MoveNext()) + { + Assert.IsTrue(enumerator.Current is FumCompositeID, "Iterating Identifiers"); + i++; + } + + Assert.AreEqual(2, i, "Number of Ids found."); + + // clean up by deleting the 2 Fum objects that were added. + s.Delete( s.Load( typeof(Fum), list[0] ) ); + s.Delete( s.Load( typeof(Fum), list[1] ) ); + s.Flush(); + s.Close(); + + } [Test] public void CompositeID() { + ISession s = sessions.OpenSession(); + Fum fum = new Fum( FumTest.FumKey("fum") ); + fum.FumString = "fee fi fo"; + s.Save(fum); + + Assert.AreSame( fum, s.Load( typeof(Fum), FumTest.FumKey("fum"), LockMode.Upgrade ) ); + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + fum = (Fum) s.Load( typeof(Fum), FumTest.FumKey("fum"), LockMode.Upgrade ); + Assert.IsNotNull(fum, "Load by composite key"); + + Fum fum2 = new Fum( FumTest.FumKey("fi") ); + fum2.FumString = "fee fo fi"; + fum.Fo = fum2; + s.Save(fum2); + + IList list = s.Find("from fum in class NHibernate.DomainModel.Fum where not fum.FumString='FRIEND'"); + Assert.AreEqual(2, list.Count, "Find a List of Composite Keyed objects"); + + IList list2 = s.Find("select fum from fum in class NHibernate.DomainModel.Fum where fum.FumString='fee fi fo'"); + Assert.AreEqual(fum, (Fum)list2[0], "Find one Composite Keyed object"); + + fum.Fo = null; + s.Flush(); + s.Close(); + + s = sessions.OpenSession(); + IEnumerator enumerator = s.Enumerable("from fum in class NHibernate.DomainModel.Fum where not fum.FumString='FRIEND'").GetEnumerator(); + int i = 0; + while(enumerator.MoveNext()) + { + fum = (Fum) enumerator.Current; + s.Delete(fum); + i++; + } + + Assert.AreEqual(2, i, "Iterate on Composite Key"); + s.Flush(); + s.Close(); + } *************** *** 96,100 **** ISession s = sessions.OpenSession(); Fum fum = new Fum( FumKey("fum") ); ! fum.fum = "fee fi fo"; //s.Save(fum); commented out in h2.0.3 Fumm fumm = new Fumm(); --- 169,173 ---- ISession s = sessions.OpenSession(); Fum fum = new Fum( FumKey("fum") ); ! fum.FumString = "fee fi fo"; //s.Save(fum); commented out in h2.0.3 Fumm fumm = new Fumm(); |