From: <aye...@us...> - 2009-01-09 20:48:17
|
Revision: 3982 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3982&view=rev Author: ayenderahien Date: 2009-01-09 20:48:07 +0000 (Fri, 09 Jan 2009) Log Message: ----------- Adding a passing test for NH 545 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Fixture.cs 2009-01-09 11:49:30 UTC (rev 3981) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Fixture.cs 2009-01-09 20:48:07 UTC (rev 3982) @@ -4,6 +4,8 @@ namespace NHibernate.Test.NHSpecificTest.NH1632 { using System.Transactions; + using Cache; + using Cfg; [TestFixture] public class Fixture : BugTestCase @@ -13,6 +15,13 @@ get { return "NH1632"; } } + protected override void Configure(Configuration configuration) + { + configuration + .SetProperty(Environment.UseSecondLevelCache, "true") + .SetProperty(Environment.CacheProvider, typeof (HashtableCacheProvider).AssemblyQualifiedName); + } + [Test] public void Dispose_session_inside_transaction_scope() { @@ -30,7 +39,55 @@ Assert.IsFalse(s.IsOpen); } + [Test] + public void When_commiting_items_in_DTC_transaction_will_add_items_to_2nd_level_cache() + { + using (var tx = new TransactionScope()) + { + using (var s = sessions.OpenSession()) + { + s.Save(new Nums {ID = 29, NumA = 1, NumB = 3}); + } + tx.Complete(); + } + + using (var tx = new TransactionScope()) + { + using (var s = sessions.OpenSession()) + { + var nums = s.Load<Nums>(29); + Assert.AreEqual(1, nums.NumA); + Assert.AreEqual(3, nums.NumB); + } + tx.Complete(); + } + + //closing the connection to ensure we can't really use it. + var connection = sessions.ConnectionProvider.GetConnection(); + sessions.ConnectionProvider.CloseConnection(connection); + + using (var tx = new TransactionScope()) + { + using (var s = sessions.OpenSession(connection)) + { + var nums = s.Load<Nums>(29); + Assert.AreEqual(1, nums.NumA); + Assert.AreEqual(3, nums.NumB); + } + tx.Complete(); + } + + using (var s = sessions.OpenSession()) + using (var tx = s.BeginTransaction()) + { + var nums = s.Load<Nums>(29); + s.Delete(nums); + tx.Commit(); + } + } + + [Test] public void When_committing_transaction_scope_will_commit_transaction() { object id; Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Mappings.hbm.xml 2009-01-09 11:49:30 UTC (rev 3981) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Mappings.hbm.xml 2009-01-09 20:48:07 UTC (rev 3982) @@ -4,9 +4,12 @@ assembly="NHibernate.Test" > <class name="Nums" table="nums"> + <cache usage="read-write" /> + <id name="ID"> <generator class="assigned"/> </id> + <property name="NumA"/> <property name="NumB"/> <property name="Sum" access="readonly"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |