From: <te...@us...> - 2009-03-01 23:14:46
|
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. |