If your methods aren't virtual, they aren't being intercepted.

-rb

On 11/9/2011 7:47 AM, Matt Johnson wrote:
Well, that kinda helped.  When I register the test classes with the
container, I now get told that my methods must be marked virtual in order to
use transaction interception.  Strange that I didn't have to do this other
places (out side of the test framework) that indeed work with the
transaction attribute.  Is it trying to create a proxy?  Why?

Even when marking them virtual, I still get no transaction from the manager.

For now, I'm just using .Net's TransactionScope around my test classes,
which defaults to rollback anyway.  I'll reserve the [Transaction] attribute
for my application service classes where it appears to be working.


In the app service:

public class MyService
{
     [Transaction]
     public void AddItem(Item item)
     {
         _itemRepository.Add(item);
     }
}

In the data unit test:

[TestClass]
public class ItemTests
{
     [TestMethod]
     public void AddItemTest()
     {
         using (new TransactionScope())
         {
             // my test code
         }
     }
}


It sure would be nice to do it the same way in both cases, but at least this
works for now.

Thanks,
Matt

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of gusgorman
Sent: Wednesday, November 09, 2011 8:11 AM
To: Castle Project Users
Subject: Re: How to explicitly roll back when using [Transaction] attribute
in AutoTx Facility?

I can dig deeper into the source for AutoTx if someone can point me in the
right direction.  Where does the transaction actually get created?  In
other
words, what part of AutoTx actually looks for the [Transaction] attribute?
I have a feeling that part of the code is not being invoked in my
scenario.
Hi Matt,

The object marked with the [Transaction] attribute needs to be in the
container. I would guess that your test class is not in the container,
and that is why no transaction has been started.

regards,
Jordan.


--
You received this message because you are subscribed to the Google Groups "Castle 
Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to