Update of /cvsroot/springnet/Spring.Net/examples/Spring/Spring.TxQuickStart/test/Spring/Spring.TxQuickStart.Tests/TxQuickStart
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv22093/TxQuickStart
Modified Files:
AccountManagerTests.cs
Log Message:
improved tx quickstart
Index: AccountManagerTests.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/examples/Spring/Spring.TxQuickStart/test/Spring/Spring.TxQuickStart.Tests/TxQuickStart/AccountManagerTests.cs,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** AccountManagerTests.cs 9 Aug 2007 04:16:44 -0000 1.5
--- AccountManagerTests.cs 7 Dec 2007 02:36:20 -0000 1.6
***************
*** 22,31 ****
using System;
!
using NUnit.Framework;
using Spring.Aop.Config;
using Spring.Context;
using Spring.Context.Support;
using Spring.Data.Config;
using Spring.Objects.Factory.Xml;
using Spring.Transaction.Config;
--- 22,33 ----
using System;
! using System.Data;
using NUnit.Framework;
using Spring.Aop.Config;
using Spring.Context;
using Spring.Context.Support;
+ using Spring.Data.Common;
using Spring.Data.Config;
+ using Spring.Data.Core;
using Spring.Objects.Factory.Xml;
using Spring.Transaction.Config;
***************
*** 39,43 ****
public class AccountManagerTests
{
! private IApplicationContext ctx;
[SetUp]
--- 41,48 ----
public class AccountManagerTests
{
! private AdoTemplate adoTemplateCredit;
! private AdoTemplate adoTemplateDebit;
!
! private IAccountManager accountManager;
[SetUp]
***************
*** 48,74 ****
NamespaceParserRegistry.RegisterParser(typeof(TxNamespaceParser));
NamespaceParserRegistry.RegisterParser(typeof(AopNamespaceParser));
! string ctxName = "DTCAppContext.xml"; // for .NET 2.0
! //string ctxName = "DTC1.1AppContext.xml"; // for .NET 1.1
! ctx = new XmlApplicationContext(
! "assembly://Spring.TxQuickStart.Tests/Spring.TxQuickStart/" + ctxName);
}
[Test]
! public void DeclarativeWithAttributes()
{
! IAccountManager mgr = ctx["accountManager"] as IAccountManager;
! mgr.DoTransfer(217, 217);
}
!
// Run the following test only if you have changed to the alternate implementation
! // in AccountManager that specifies the NoRollbackFor property.
[Test]
[Ignore("Change impl of AccountManager as shown before running this test")]
! [ExpectedException(typeof(ApplicationException), "Testing No Rollback 'Rule'")]
! public void DeclarativeWithAttributesNoRollbackFor()
{
! IAccountManager mgr = ctx["accountManager"] as IAccountManager;
! mgr.DoTransfer(314, 314);
}
}
--- 53,123 ----
NamespaceParserRegistry.RegisterParser(typeof(TxNamespaceParser));
NamespaceParserRegistry.RegisterParser(typeof(AopNamespaceParser));
! IApplicationContext context = new XmlApplicationContext(
! "assembly://Spring.TxQuickStart.Tests/Spring.TxQuickStart/system-test-local-config.xml"
! );
! accountManager = context["accountManager"] as IAccountManager;
! CleanDb(context);
}
[Test]
! public void TransferBelowMaxAmount()
{
! accountManager.DoTransfer(217, 217);
!
! //asserts to read from db...
!
! int numCreditRecords = (int)adoTemplateCredit.ExecuteScalar(CommandType.Text, "select count(*) from Credits");
! int numDebitRecords = (int)adoTemplateDebit.ExecuteScalar(CommandType.Text, "select count(*) from Debits");
! Assert.AreEqual(1, numCreditRecords);
! Assert.AreEqual(1, numDebitRecords);
}
! [Test]
! public void TransferAboveMaxAmount()
! {
! try
! {
! accountManager.DoTransfer(2000000, 200000);
! Assert.Fail("Should have thrown Arithmethic Exception");
! } catch (ArithmeticException)
! {
! int numCreditRecords = (int)adoTemplateCredit.ExecuteScalar(CommandType.Text, "select count(*) from Credits");
! int numDebitRecords = (int)adoTemplateDebit.ExecuteScalar(CommandType.Text, "select count(*) from Debits");
! Assert.AreEqual(0, numCreditRecords);
! Assert.AreEqual(0, numDebitRecords);
! }
!
! }
!
!
// Run the following test only if you have changed to the alternate implementation
! // of the method DoTransfer in AccountManager that specifies the NoRollbackFor property.
[Test]
[Ignore("Change impl of AccountManager as shown before running this test")]
! public void TransferAboveMaxAmountNoRollbackFor()
{
! try
! {
! accountManager.DoTransfer(2000000, 2000000);
! Assert.Fail("Should have thrown Arithmethic Exception");
! } catch (ArithmeticException) {
! int numCreditRecords = (int)adoTemplateCredit.ExecuteScalar(CommandType.Text, "select count(*) from Credits");
! int numDebitRecords = (int)adoTemplateDebit.ExecuteScalar(CommandType.Text, "select count(*) from Debits");
! Assert.AreEqual(1, numCreditRecords);
! Assert.AreEqual(0, numDebitRecords);
! }
! }
!
!
! private void CleanDb(IApplicationContext context)
! {
! IDbProvider dbProvider = (IDbProvider)context["DebitDbProvider"];
! adoTemplateDebit = new AdoTemplate(dbProvider);
! adoTemplateDebit.ExecuteNonQuery(CommandType.Text, "truncate table Debits");
!
! dbProvider = (IDbProvider)context["CreditDbProvider"];
! adoTemplateCredit = new AdoTemplate(dbProvider);
! adoTemplateCredit.ExecuteNonQuery(CommandType.Text, "truncate table Credits");
!
}
}
|