diff --git a/src/Spring/Spring.Data/Transaction/Support/DefaultTransactionDefinition.cs b/src/Spring/Spring.Data/Transaction/Support/DefaultTransactionDefinition.cs index 972c4017..186cba68 100644 --- a/src/Spring/Spring.Data/Transaction/Support/DefaultTransactionDefinition.cs +++ b/src/Spring/Spring.Data/Transaction/Support/DefaultTransactionDefinition.cs @@ -68,7 +68,7 @@ namespace Spring.Transaction.Support //TODO Refactoring to sync with Spring 2.0 for nt/enums for various default values. private TransactionPropagation _transactionPropagation = TransactionPropagation.Required; - private IsolationLevel _transactionIsolationLevel = IsolationLevel.ReadCommitted; + private IsolationLevel _transactionIsolationLevel = IsolationLevel.Unspecified; private int _timeout = DefaultTransactionDefinition.TIMEOUT_DEFAULT; private bool _readOnly = false; private string _name = null; diff --git a/test/Spring/Spring.Data.Tests/Data/AdoPlatformTransactionManagerTests.cs b/test/Spring/Spring.Data.Tests/Data/AdoPlatformTransactionManagerTests.cs index f4c6755f..5dc59bbf 100644 --- a/test/Spring/Spring.Data.Tests/Data/AdoPlatformTransactionManagerTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/AdoPlatformTransactionManagerTests.cs @@ -45,6 +45,7 @@ namespace Spring.Data public class AdoPlatformTransactionManagerTests { private MockRepository mocks; + private IsolationLevel _defaultIsolationLevel = IsolationLevel.Unspecified; [SetUp] public void Setup() @@ -74,7 +75,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Commit(); LastCall.On(transaction).Repeat.Once(); @@ -115,7 +116,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -165,7 +166,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -237,7 +238,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection).Repeat.Twice(); connection.Open(); LastCall.On(connection).Repeat.Twice(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction).Repeat.Twice(); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction).Repeat.Twice(); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -279,7 +280,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); transaction.Commit(); LastCall.On(transaction).Repeat.Once(); connection.Dispose(); @@ -291,7 +292,7 @@ namespace Spring.Data Expect.Call(dbProvider2.CreateConnection()).Return(connection2); connection2.Open(); LastCall.On(connection2).Repeat.Once(); - Expect.Call(connection2.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction2); + Expect.Call(connection2.BeginTransaction(_defaultIsolationLevel)).Return(transaction2); transaction2.Rollback(); LastCall.On(transaction2).Repeat.Once(); connection2.Dispose(); @@ -334,7 +335,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); connection.Dispose(); @@ -394,7 +395,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Commit(); LastCall.On(transaction).Repeat.Once(); @@ -430,7 +431,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -481,7 +482,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection2); connection2.Open(); LastCall.On(connection2).Repeat.Once(); - Expect.Call(connection2.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction2); + Expect.Call(connection2.BeginTransaction(_defaultIsolationLevel)).Return(transaction2); transaction2.Commit(); LastCall.On(transaction2).Repeat.Once(); connection2.Dispose(); @@ -572,7 +573,7 @@ namespace Spring.Data connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); Expect.Call(connection.CreateCommand()).Return(command); command.CommandText = "some SQL statement"; LastCall.On(command).Repeat.Once(); @@ -673,7 +674,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Commit(); LastCall.On(transaction).Throw(new TestSqlException("Cannot commit", "314")); @@ -716,7 +717,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); transaction.Commit(); LastCall.On(transaction).Throw(new TestSqlException("Cannot commit", "314")); @@ -762,7 +763,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Rollback(); LastCall.On(transaction).Throw(new TestSqlException("Cannot commit", "314")); @@ -876,7 +877,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); @@ -922,7 +923,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); //standard tx timeout. transaction.Commit(); LastCall.On(transaction).Repeat.Once(); @@ -970,7 +971,7 @@ namespace Spring.Data Expect.Call(dbProvider.CreateConnection()).Return(connection); connection.Open(); LastCall.On(connection).Repeat.Once(); - Expect.Call(connection.BeginTransaction(IsolationLevel.ReadCommitted)).Return(transaction); + Expect.Call(connection.BeginTransaction(_defaultIsolationLevel)).Return(transaction); transaction.Rollback(); LastCall.On(transaction).Repeat.Once(); connection.Dispose(); diff --git a/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs b/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs index 6b436ecf..18e7b12f 100644 --- a/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/Core/ServiceDomainTransactionManagerTests.cs @@ -159,7 +159,7 @@ namespace Spring.Data.Core // inner tx ConfigureServiceConfig(serviceConfig, false); serviceConfig.TransactionOption = TransactionOption.RequiresNew; - serviceConfig.IsolationLevel = TransactionIsolationLevel.ReadCommitted; + serviceConfig.IsolationLevel = TransactionIsolationLevel.Any; txAdapter.Enter(serviceConfig); Expect.Call(txAdapter.IsInTransaction).Return(true); txAdapter.SetAbort(); @@ -204,7 +204,7 @@ namespace Spring.Data.Core if (standardIsolationAndProp) { serviceConfig.TransactionOption = TransactionOption.Required; - serviceConfig.IsolationLevel = TransactionIsolationLevel.ReadCommitted; + serviceConfig.IsolationLevel = TransactionIsolationLevel.Any; } return serviceConfig; diff --git a/test/Spring/Spring.Data.Tests/Data/Core/TxScopeTransactionManagerTests.cs b/test/Spring/Spring.Data.Tests/Data/Core/TxScopeTransactionManagerTests.cs index 34004da9..18f57b1a 100644 --- a/test/Spring/Spring.Data.Tests/Data/Core/TxScopeTransactionManagerTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/Core/TxScopeTransactionManagerTests.cs @@ -57,7 +57,7 @@ namespace Spring.Data.Core { Expect.Call(txAdapter.IsExistingTransaction).Return(false); TransactionOptions txOptions = new TransactionOptions(); - txOptions.IsolationLevel = IsolationLevel.ReadCommitted; + txOptions.IsolationLevel = IsolationLevel.Unspecified; txAdapter.CreateTransactionScope(TransactionScopeOption.Required, txOptions, EnterpriseServicesInteropOption.None); Expect.Call(txAdapter.RollbackOnly).Return(false); @@ -94,7 +94,7 @@ namespace Spring.Data.Core { Expect.Call(txAdapter.IsExistingTransaction).Return(false); TransactionOptions txOptions = new TransactionOptions(); - txOptions.IsolationLevel = IsolationLevel.ReadCommitted; + txOptions.IsolationLevel = IsolationLevel.Unspecified; txAdapter.CreateTransactionScope(TransactionScopeOption.Required, txOptions, EnterpriseServicesInteropOption.None); txAdapter.Dispose(); } @@ -141,7 +141,7 @@ namespace Spring.Data.Core { Expect.Call(txAdapter.IsExistingTransaction).Return(false); TransactionOptions txOptions = new TransactionOptions(); - txOptions.IsolationLevel = IsolationLevel.ReadCommitted; + txOptions.IsolationLevel = IsolationLevel.Unspecified; txAdapter.CreateTransactionScope(TransactionScopeOption.RequiresNew, txOptions, EnterpriseServicesInteropOption.None); //inner tx actions diff --git a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/DefaultTransactionAttributeTests.cs b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/DefaultTransactionAttributeTests.cs index e43e933d..6a154af5 100644 --- a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/DefaultTransactionAttributeTests.cs +++ b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/DefaultTransactionAttributeTests.cs @@ -18,7 +18,7 @@ namespace Spring.Transaction.Interceptor public void ToStringTests() { DefaultTransactionAttribute dta = new DefaultTransactionAttribute(); - Assert.AreEqual( "PROPAGATION_Required,ISOLATION_ReadCommitted,-System.Exception", dta.ToString()); + Assert.AreEqual( "PROPAGATION_Required,ISOLATION_Unspecified,-System.Exception", dta.ToString()); } } } diff --git a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeEditorTests.cs b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeEditorTests.cs index c5e87b5a..441c0132 100644 --- a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeEditorTests.cs +++ b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeEditorTests.cs @@ -34,7 +34,7 @@ namespace Spring.Transaction.Interceptor ITransactionAttribute ta = editor.Value; Assert.IsTrue( ta != null ); Assert.IsTrue( ta.PropagationBehavior == TransactionPropagation.Required ); - Assert.IsTrue( ta.TransactionIsolationLevel == IsolationLevel.ReadCommitted ); + Assert.IsTrue( ta.TransactionIsolationLevel == IsolationLevel.Unspecified ); Assert.IsFalse( ta.ReadOnly ); } diff --git a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeSourceEditorTests.cs b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeSourceEditorTests.cs index 8da00917..9717d75b 100644 --- a/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeSourceEditorTests.cs +++ b/test/Spring/Spring.Data.Tests/Transaction/Interceptor/TransactionAttributeSourceEditorTests.cs @@ -59,7 +59,7 @@ namespace Spring.Transaction.Interceptor { ITransactionAttribute ta = tas.ReturnTransactionAttribute( method, null ); Assert.IsTrue( ta != null ); - Assert.IsTrue( ta.TransactionIsolationLevel == IsolationLevel.ReadCommitted ); + Assert.IsTrue( ta.TransactionIsolationLevel == IsolationLevel.Unspecified ); Assert.IsTrue( ta.PropagationBehavior == transactionPropagation); } } diff --git a/test/Spring/Spring.Data.Tests/Transaction/Support/DefaultTransactionDefinitionTests.cs b/test/Spring/Spring.Data.Tests/Transaction/Support/DefaultTransactionDefinitionTests.cs index 277f3253..92624b4e 100644 --- a/test/Spring/Spring.Data.Tests/Transaction/Support/DefaultTransactionDefinitionTests.cs +++ b/test/Spring/Spring.Data.Tests/Transaction/Support/DefaultTransactionDefinitionTests.cs @@ -23,12 +23,18 @@ namespace Spring.Transaction.Support Assert.IsTrue( true == def.ReadOnly ); } [Test] - public void IsolationLeveNonDefaultl() + public void PropogationBehaviorDefault() { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); Assert.IsTrue( def.PropagationBehavior == TransactionPropagation.Required ); } - [Test] + [Test] + public void IsolationLevelDefault() + { + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); + Assert.IsTrue(def.TransactionIsolationLevel == IsolationLevel.Unspecified); + } + [Test] [ExpectedException(typeof(ArgumentException))] public void InvalidTimeout() {