From: <fab...@us...> - 2010-12-19 16:52:10
|
Revision: 5331 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5331&view=rev Author: fabiomaulo Date: 2010-12-19 16:52:03 +0000 (Sun, 19 Dec 2010) Log Message: ----------- Test for NH-2056 (work with MsSQL have to check Oracle) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Fixture.cs 2010-12-19 16:52:03 UTC (rev 5331) @@ -0,0 +1,69 @@ +using System.Collections; +using System.Collections.Generic; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2056 +{ + public class Fixture:BugTestCase + { + [Test] + public void CanUpdateInheritedClass() + { + object savedId; + using (ISession session = sessions.OpenSession()) + { + using (ITransaction t = session.BeginTransaction()) + { + IDictionary address = new Dictionary<string, object>(); + address["BaseF1"] = "base1"; + address["BaseF2"] = "base2"; + address["AddressF1"] = "addressF1"; + address["AddressF2"] = "addressF2"; + savedId = session.Save("Address", address); + t.Commit(); + } + } + + using (ISession session = sessions.OpenSession()) + { + using (ITransaction t = session.BeginTransaction()) + { + + IQuery query = session.CreateQuery("Update Address address set address.AddressF1 = :val1, address.AddressF2 = :val2 where ID=:theID"); + + // The following works properly + //IQuery query = session.CreateQuery("Update Address address set address.AddressF1 = :val1, address.BaseF1 = :val2 where ID=:theID"); + query.SetParameter("val1", "foo"); + query.SetParameter("val2", "bar"); + query.SetParameter("theID", savedId); + query.ExecuteUpdate(); + + t.Commit(); + } + } + using (ISession session = sessions.OpenSession()) + { + using (ITransaction t = session.BeginTransaction()) + { + + var updated = (IDictionary)session.Get("Address", savedId); + updated["BaseF1"].Should().Be("base1"); + updated["BaseF2"].Should().Be("base2"); + updated["AddressF1"].Should().Be("foo"); + updated["AddressF2"].Should().Be("bar"); + + t.Commit(); + } + } + using (ISession session = sessions.OpenSession()) + { + using (ITransaction t = session.BeginTransaction()) + { + session.CreateQuery("delete from Base").ExecuteUpdate(); + t.Commit(); + } + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2056/Mappings.hbm.xml 2010-12-19 16:52:03 UTC (rev 5331) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2056"> + + <class entity-name="Base" table="tbl_base"> + <id name="ID" type="long"> + <generator class="hilo" /> + </id> + <property name="BaseF1" type="string"/> + <property name="BaseF2" type="string"/> + </class> + <joined-subclass entity-name="Address" extends="Base"> + <key column="ID2"/> + <property name="AddressF1" type="string"/> + <property name="AddressF2" type="string"/> + </joined-subclass> + +</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-19 14:41:59 UTC (rev 5330) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-12-19 16:52:03 UTC (rev 5331) @@ -480,6 +480,7 @@ <Compile Include="NHSpecificTest\NH2037\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2043\Domain.cs" /> <Compile Include="NHSpecificTest\NH2043\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2056\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2111\A.cs" /> <Compile Include="NHSpecificTest\NH2111\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2112\Fixture.cs" /> @@ -2362,6 +2363,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2056\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2043\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2037\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2118\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |