From: <fab...@us...> - 2008-10-20 16:48:13
|
Revision: 3869 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3869&view=rev Author: fabiomaulo Date: 2008-10-20 16:48:06 +0000 (Mon, 20 Oct 2008) Log Message: ----------- Test for NH-1535 (as another example of generic usage) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/A.cs trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/Fixture.cs trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/A.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/A.cs 2008-10-20 15:43:09 UTC (rev 3868) +++ trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/A.cs 2008-10-20 16:48:06 UTC (rev 3869) @@ -14,4 +14,11 @@ public virtual IList<T> Collection { get; set; } } + + public class B + { + public virtual int? Id { get; set; } + + public virtual int Prop { get; set; } + } } Modified: trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/Fixture.cs 2008-10-20 15:43:09 UTC (rev 3868) +++ trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/Fixture.cs 2008-10-20 16:48:06 UTC (rev 3869) @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; @@ -21,21 +22,48 @@ [Test] public void CRUD() { - var entity = new A<int> {Property = 10, Collection = new List<int> {20}}; + var entity = new A<int> { Property = 10, Collection = new List<int> { 20 } }; - using( ISession session = OpenSession() ) - using( ITransaction transaction = session.BeginTransaction() ) + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) { session.Save("AInt", entity); transaction.Commit(); } - using( ISession session = OpenSession() ) - using( ITransaction transaction = session.BeginTransaction() ) + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) { session.Delete("AInt", entity); transaction.Commit(); } } + + [Test] + public void CRUDAB() + { + var entity = new A<B> + { + Property = new B { Prop = 2 }, + Collection = new List<B> { new B { Prop = 3 } } + }; + + Console.WriteLine(entity.GetType().FullName); + + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + session.Save("AB", entity); + transaction.Commit(); + } + + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + session.Delete("AB", entity); + transaction.Commit(); + } + } } + } Modified: trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/Mappings.hbm.xml 2008-10-20 15:43:09 UTC (rev 3868) +++ trunk/nhibernate/src/NHibernate.Test/GenericTest/Overall/Mappings.hbm.xml 2008-10-20 16:48:06 UTC (rev 3869) @@ -20,4 +20,35 @@ </class> + <class name="A`1[[B]]" table="AB" entity-name="AB"> + + <id name="Id"> + <generator class="native" /> + + </id> + + <list name="Collection" table="CollectionList" lazy="false" cascade="all"> + <key column="CollectionId"/> + <index column="CollectionOrder"/> + + <many-to-any meta-type="string" id-type="int"> + <column name="CollectionType" /> + <column name="CollectionValue" /> + + </many-to-any> + + </list> + + </class> + + <class name="B" table="BTable"> + + <id name="Id"> + <generator class="native" /> + + </id> + + <property name="Prop" column="property" type="int"/> + </class> + </hibernate-mapping> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |