From: <fab...@us...> - 2008-10-10 04:33:35
|
Revision: 3827 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3827&view=rev Author: fabiomaulo Date: 2008-10-10 04:33:22 +0000 (Fri, 10 Oct 2008) Log Message: ----------- another initial test to support Xml entityMode Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/AB.hbm.xml trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Account.hbm.xml trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Employer.hbm.xml trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/XmlFixture.cs Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/AB.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/AB.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/AB.hbm.xml 2008-10-10 04:33:22 UTC (rev 3827) @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> + + <class entity-name="A" table="AX" node="a"> + <id name="aId" type="int" column="aId" node="@id"/> + <property name="x" type="string"/> + <set name="bs" node="." embed-xml="true" cascade="all" inverse="true"> + <key column="aId"/> + <one-to-many class="B"/> + </set> + </class> + + + <class entity-name="B" table="BX" node="b"> + <composite-id> + <key-property name="bId" column="bId" type="int" node="@bId"/> + <key-property name="aId" column="aId" type="int" node="@aId"/> + </composite-id> + <property name="y" type="string" node="."/> + </class> + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Account.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Account.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Account.hbm.xml 2008-10-10 04:33:22 UTC (rev 3827) @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> + + <class entity-name="Customer" node="customer"> + <id name="customerId" type="string" node="@id"/> + <component name="name"> + <property name="first" type="string"/> + <property name="last" type="string"/> + </component> + <property name="address" type="string" node="address"/> + <map name="stuff"> + <key column="customerId"/> + <map-key type="string" column="bar" node="@bar"/> + <element type="string" node="foo" column="foo"/> + </map> + <bag name="morestuff" node="."> + <key column="customerId"/> + <element type="integer" node="amount" column="amount"/> + </bag> + <list name="accounts" cascade="all"> + <key column="customerId2"/> + <list-index column="acctno" base="1"/> + <one-to-many entity-name="Account" node="account"/> + </list> + <many-to-one name="location" node="location/@id" entity-name="Location" embed-xml="false"/> + <property name="description" node="." type="string"/> + <set name="unembedded" embed-xml="false"> + <key column="x"/> + <element type="string" column="y" not-null="true"/> + </set> + </class> + + <class entity-name="Account" node="account"> + <id name="accountId" type="string" node="@id"/> + <many-to-one name="customer" column="customerId" entity-name="Customer" cascade="all" embed-xml="true" /> + <!--not-null="true"--> + <property name="balance" type="big_decimal" node="balance" precision="10" scale="0" /> + </class> + + <class entity-name="Location" node="location"> + <id name="id" node="@id" type="long"> + <generator class="increment"/> + </id> + <property name="address" type="string"/> + </class> + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Employer.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Employer.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Employer.hbm.xml 2008-10-10 04:33:22 UTC (rev 3827) @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> + + <class entity-name="Employer" node="employer"> + <id name="id" node="@id" type="long"> + <generator class="increment"/> + </id> + <property name="name" node="@name" type="string"/> + <set name="employees" node="." cascade="all,delete-orphan" fetch="join" lazy="false"> + <key not-null="true" column="employerId"/> + <one-to-many entity-name="Employee" /> + </set> + </class> + + <class entity-name="Employee" node="employee"> + <id name="id" node="@id" type="long"> + <generator class="increment"/> + </id> + <discriminator column="role" type="string" length="10"/> + <property name="name" node="@name" type="string"/> + <subclass entity-name="Techie" node="techie" /> + <subclass entity-name="Salesdude" node="sales-dude"/> + </class> + + <class entity-name="Department" node="department"> + <id name="id" node="@id" type="long"> + <generator class="increment"/> + </id> + <property name="name" node="@name" type="string"/> + <many-to-one name="manager" entity-name="Employee" cascade="all" fetch="join" lazy="false" embed-xml="true" node="manager" /> + </class> + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/XmlFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/XmlFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/XmlFixture.cs 2008-10-10 04:33:22 UTC (rev 3827) @@ -0,0 +1,69 @@ +using System.Collections; +using System.Xml; +using NHibernate.Cfg; +using NUnit.Framework; + +namespace NHibernate.Test.EntityModeTest.Xml.Basic +{ + [TestFixture, Ignore("Not supported yet.")] + public class XmlFixture : TestCase + { + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + #region Overrides of TestCase + + protected override IList Mappings + { + get + { + return new[] + { + "EntityModeTest.Xml.Basic.Account.hbm.xml", "EntityModeTest.Xml.Basic.AB.hbm.xml", + "EntityModeTest.Xml.Basic.Employer.hbm.xml" + }; + } + } + + #endregion + + protected override void Configure(Configuration configuration) + { + cfg.SetProperty(Environment.DefaultEntityMode, EntityModeHelper.ToString(EntityMode.Xml)); + } + + [Test] + public void CompositeId() + { + const string xml = +@"<a id='1'> + <x>foo bar</x> + <b bId='1' aId='1>foo foo</b> + <b bId='2' aId='1>bar bar</b> +</a>"; + + XmlElement a=null; + ISession s = OpenSession(); + ITransaction t = s.BeginTransaction(); + s.Persist("A", a); + t.Commit(); + s.Close(); + + s = OpenSession(); + t = s.BeginTransaction(); + //a = (XmlElement)s.CreateCriteria("A").UniqueResult(); + Assert.AreEqual(a.GetElementsByTagName("b").Count, 2); + Print(a); + //s.Delete("A", a); + t.Commit(); + s.Close(); + } + + public static void Print(XmlElement elt) + { + //XMLHelper.dump( elt ); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-10 00:13:56 UTC (rev 3826) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-10 04:33:22 UTC (rev 3827) @@ -161,6 +161,7 @@ <Compile Include="EngineTest\TypedValueFixture.cs" /> <Compile Include="EntityModeTest\Map\Basic\DynamicClassFixture.cs" /> <Compile Include="EntityModeTest\Xml\Accessors\XmlAccessorFixture.cs" /> + <Compile Include="EntityModeTest\Xml\Basic\XmlFixture.cs" /> <Compile Include="Events\Collections\AbstractCollectionEventFixture.cs" /> <Compile Include="Events\Collections\AbstractParentWithCollection.cs" /> <Compile Include="Events\Collections\Association\AbstractAssociationCollectionEventFixture.cs" /> @@ -1488,6 +1489,9 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="EntityModeTest\Xml\Basic\AB.hbm.xml" /> + <EmbeddedResource Include="EntityModeTest\Xml\Basic\Account.hbm.xml" /> + <EmbeddedResource Include="EntityModeTest\Xml\Basic\Employer.hbm.xml" /> <EmbeddedResource Include="SqlTest\MSSQLIdentityInsertWithStoredProcs.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1508\Mappings.hbm.xml" /> <EmbeddedResource Include="GenericTest\OrderedSetGeneric\OrderedSetFixture.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |