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.
|