Revision: 4103
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4103&view=rev
Author: tehlike
Date: 2009-03-01 23:14:40 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
Adding test for NH-1307
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/FilterParameterOrderFixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/Model.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/FilterParameterOrderFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/FilterParameterOrderFixture.cs 2009-03-01 14:23:27 UTC (rev 4102)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/FilterParameterOrderFixture.cs 2009-03-01 23:14:40 UTC (rev 4103)
@@ -67,6 +67,9 @@
b4.Enabled = true;
session.Save( b4 );
+ a1.C.Add( a1.Id, "Text1" );
+ a1.C.Add( a2.Id, "Text2" );
+
session.Flush();
session.Close();
}
@@ -118,7 +121,7 @@
Assert.AreEqual( 1, result.Count );
}
- [Test, Ignore("Known issue, parameter order is wrong when named and positional parameters are mixed")]
+ [Test, Ignore( "Known issue, parameter order is wrong when named and positional parameters are mixed" )]
public void QueryWithNamedParameters()
{
ISession session = OpenSession();
@@ -229,5 +232,26 @@
Assert.AreEqual( 1, result.Count );
}
+ [Test,Ignore("Parameter order is wrong when index is used")]
+ public void QueryMapElements()
+ {
+ IQuery query = OpenSession().CreateQuery( "from A a where a.C[:ValC] = :Text" );
+ query.SetInt32( "ValC", 1 );
+ query.SetString( "Text", "Text1" );
+
+ // Query:
+ // {select a0_.id as id0_, a0_.val_a as val2_0_, a0_.enabled as enabled0_
+ // from table_a a0_, table_c c1_
+ // where (c1_.text = (?) and a0_.id=c1_.val_a and c1_.val_c = (?) ); }
+ // Parameter:
+ // 1) "c1_.text = (?)" [named parameter #2 Text]
+ // 2) "c1_.val_c = (?)" [named parameter #1 ValC]
+ //
+ // => ERROR, parameters are in wrong order: named ValC, named Text
+
+ A a = query.UniqueResult<A>();
+
+ Assert.AreEqual( a.C[1], "Text1" );
+ }
}
}
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/Mappings.hbm.xml 2009-03-01 14:23:27 UTC (rev 4102)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/Mappings.hbm.xml 2009-03-01 23:14:40 UTC (rev 4103)
@@ -13,6 +13,12 @@
<property name="ValueA" column="val_a" type="int"/>
<property name="Enabled" column="enabled" type="boolean"/>
+ <map name="C" table="table_c" cascade="all">
+ <key column="val_a" />
+ <index column="val_c" type="int" />
+ <element column="text" type="string" />
+ </map>
+
<filter name="EnabledObjects" condition="enabled = :Enabled" />
</class>
@@ -29,7 +35,7 @@
<filter name="EnabledObjects" condition="enabled = :Enabled" />
</class>
-
+
<filter-def name="EnabledObjects">
<filter-param name="Enabled" type="boolean"/>
</filter-def>
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/Model.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/Model.cs 2009-03-01 14:23:27 UTC (rev 4102)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1098/Model.cs 2009-03-01 23:14:40 UTC (rev 4103)
@@ -30,6 +30,13 @@
set { enabled = value; }
}
+ public IDictionary<int, string> C
+ {
+ get { return c; }
+ set { c = value; }
+ }
+
+ private IDictionary<int, string> c = new Dictionary<int,string>();
}
class B
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|