Update of /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Core
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv22844
Modified Files:
ServiceDomainTransactionManagerTests.cs
Log Message:
SPRNET-773 - Unit tests for ServiceDomainTransactionManager
Index: ServiceDomainTransactionManagerTests.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ServiceDomainTransactionManagerTests.cs 4 Dec 2007 08:17:23 -0000 1.1
--- ServiceDomainTransactionManagerTests.cs 4 Dec 2007 08:38:04 -0000 1.2
***************
*** 50,61 ****
[Test]
- public void StupidTest()
- {
- ServiceConfig sc1 = new ServiceConfig();
- ServiceConfig sc2 = new ServiceConfig();
- Assert.AreEqual(sc1, sc2);
-
- }
- [Test]
public void TransactionCommit()
{
--- 50,53 ----
***************
*** 98,101 ****
--- 90,139 ----
}
+ [Test]
+ public void TransactionRollback()
+ {
+ IServiceDomainAdapter txAdapter = (IServiceDomainAdapter)mocks.CreateMock(typeof(IServiceDomainAdapter));
+ using (mocks.Ordered())
+ {
+ SimpleServiceConfig serviceConfig = CreateServiceConfig();
+ serviceConfig.TransactionOption = TransactionOption.Required;
+ serviceConfig.IsolationLevel = TransactionIsolationLevel.Any;
+ txAdapter.Enter(serviceConfig);
+ Expect.Call(txAdapter.IsInTransaction).Return(true);
+ txAdapter.SetAbort();
+ Expect.Call(txAdapter.Leave()).Return(TransactionStatus.Commited);
+
+ }
+ mocks.ReplayAll();
+
+ IPlatformTransactionManager tm = new ServiceDomainPlatformTransactionManager(txAdapter);
+ TransactionTemplate tt = new TransactionTemplate(tm);
+
+ Assert.IsTrue(!TransactionSynchronizationManager.SynchronizationActive, "Synchronizations not active");
+
+ Exception ex = new ArgumentException("test exception");
+ try
+ {
+ tt.Execute(delegate(ITransactionStatus status)
+ {
+ Assert.IsTrue(TransactionSynchronizationManager.SynchronizationActive);
+ Assert.IsFalse(TransactionSynchronizationManager.CurrentTransactionReadOnly);
+ Assert.IsTrue(status.IsNewTransaction, "Is new transaction");
+ if (ex != null) throw ex;
+ return null;
+ });
+ Assert.Fail("Should have thrown exception");
+ }
+ catch (ArgumentException e)
+ {
+ Assert.AreEqual(ex, e);
+ }
+
+ Assert.IsTrue(!TransactionSynchronizationManager.SynchronizationActive, "Synchronizations not active");
+
+
+ mocks.VerifyAll();
+ }
+
private SimpleServiceConfig CreateServiceConfig()
{
|