From: <te...@us...> - 2008-11-27 20:12:38
|
Revision: 3936 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3936&view=rev Author: tehlike Date: 2008-11-27 20:12:33 +0000 (Thu, 27 Nov 2008) Log Message: ----------- Fix for NH-1591 by Henry Concei?\195?\167?\195?\163o with tests added. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs Modified: trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs 2008-11-27 19:58:01 UTC (rev 3935) +++ trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs 2008-11-27 20:12:33 UTC (rev 3936) @@ -166,6 +166,18 @@ return this; } + public DetachedCriteria SetCacheRegion(string region) + { + criteria.SetCacheRegion(region); + return this; + } + + public DetachedCriteria SetCacheable(bool cacheable) + { + criteria.SetCacheable(cacheable); + return this; + } + public DetachedCriteria SetProjection(IProjection projection) { criteria.SetProjection(projection); Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2008-11-27 19:58:01 UTC (rev 3935) +++ trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2008-11-27 20:12:33 UTC (rev 3936) @@ -7,6 +7,7 @@ using NHibernate.Type; using NHibernate.Util; using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; namespace NHibernate.Test.Criteria { @@ -1589,7 +1590,35 @@ t.Commit(); session.Close(); } + [Test] + public void CacheDetachedCriteria() + { + using (ISession session = OpenSession()) + { + bool current = sessions.Statistics.IsStatisticsEnabled; + sessions.Statistics.IsStatisticsEnabled = true; + sessions.Statistics.Clear(); + DetachedCriteria dc = DetachedCriteria.For(typeof (Student)) + .Add(Property.ForName("Name").Eq("Gavin King")) + .SetProjection(Property.ForName("StudentNumber")) + .SetCacheable(true); + Assert.That(sessions.Statistics.QueryCacheMissCount,Is.EqualTo(0)); + Assert.That(sessions.Statistics.QueryCacheHitCount, Is.EqualTo(0)); + dc.GetExecutableCriteria(session).List(); + Assert.That(sessions.Statistics.QueryCacheMissCount, Is.EqualTo(1)); + dc = DetachedCriteria.For(typeof(Student)) + .Add(Property.ForName("Name").Eq("Gavin King")) + .SetProjection(Property.ForName("StudentNumber")) + .SetCacheable(true); + dc.GetExecutableCriteria(session).List(); + + Assert.That(sessions.Statistics.QueryCacheMissCount, Is.EqualTo(1)); + Assert.That(sessions.Statistics.QueryCacheHitCount, Is.EqualTo(1)); + sessions.Statistics.IsStatisticsEnabled = false; + } + + } [Test] public void PropertyWithFormulaAndPagingTest() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |