tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jack Cox <j...@captechventures.com>
Subject Re: Transactions controlled by Unit Tests
Date Wed, 13 Feb 2008 14:15:36 GMT

David,

Thanks for the clear example, it now makes sense.  I like the approach since
it doesn't require modifying the bean under test.

-Jack


David Blevins wrote:
> 
> Here,  http://cwiki.apache.org/OPENEJBx30/unit-testing-transactions.html
> 
> I wrote up a doc for you better describing the pattern I created for  
> Alex.  It shows usage for transactions, but the same pattern can be  
> used for security as well.
> 
> That approach works great and still keeps you free of any OpenEJB- 
> specific code in your test cases.
> 
> If you don't have any issues with your test cases extending an OpenEJB  
> specific TestCase implementation then I'm pretty sure we could find a  
> way to support @TransactionAttribute and @RunAs on the test methods  
> themselves (as well as dependency injection).  If that sounds  
> attractive to you, I'll create a JIRA for it.  We'd probably implement  
> it as syntactic sugar on the above approach.
> 
> -David
> 
> On Feb 12, 2008, at 8:39 AM, Jack Cox wrote:
> 
>>
>> I'll break etiquette and reply to my own post.
>>
>> I was mistaken (i.e. I'm stupid) regarding the delete operation.   
>> The entity
>> does disappear from the JPA context.
>>
>> That not withstanding, I still have need to control the transaction
>> demarcation from the junit test case.
>>
>> Jack
>>
>>
>> Jack Cox wrote:
>>>
>>> Is there a way in the 'out-of-container' testing paradigm with  
>>> openejb for
>>> the unit test method to control the demarcation of transactions?
>>>
>>> Here's the use case:
>>> 1) The unit test is doing entity bean testing, calling various  
>>> methods on
>>> the entity facade to test CRUD operations.
>>> 2) The unit test needs to demarcate transactions so that it can  
>>> insert,
>>> delete, then attempt to retrieve deleted entities.  Of course the  
>>> last
>>> retrieval should fail because the entity is deleted.
>>> 3) But, JPA has the interesting behavior that deleted entities  
>>> continue to
>>> be accessible within the deleting transaction.
>>> 4) Therefore, the unit test needs to demarcate a transaction around  
>>> the
>>> delete so that the entity is really removed prior to the last  
>>> retrieval
>>> test.
>>>
>>> So, how can one demarcate transactions within a junit test case?
>>>
>>> Thanks,
>>>
>>> Jack
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/Transactions-controlled-by-Unit-Tests-tp15434029p15434676.html
>> Sent from the OpenEJB User mailing list archive at Nabble.com.
>>
>>
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Transactions-controlled-by-Unit-Tests-tp15434029p15458937.html
Sent from the OpenEJB User mailing list archive at Nabble.com.


Mime
View raw message