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