Just to add to what Mohammad mentions (which was all great advice).

This one is a pretty hard set of tests to write considering the sheer volume of tests and beans/interceptors we'll have to write.

Some basic things about interceptors we have to cover:

 Interceptors can be declared at three levels: package, class, method
All declared interceptors (package, class, method) stack up to one big chain unless excluded via: @ExcludeDefaultInterceptors (on class or method to exclude package interceptors), @ExcludeClassInterceptors (on method to exclude class interceptors)
 Interceptors are executed in the order they are declared (stacked).
 Throwing an exception stops the chain of execution.
Interceptors can intercept these lifecycele callbacks: @PostConstruct, @PreDestroy, @PrePassivate (stateful only), @PostActivate (stateful only) Interceptors and/or the *bean* itself can intercept any business method via: @AroundInvoke
 Each method on InvocationContext should be tested
 These types of beans can have interceptors: MDB, Stateless, Stateful

As far as how to implement stuff, we generally try to group tests by function in increasing order. Meaning we'd want a test case to test the methods of InvocationContext before we start testing chains of interceptors because in the InvocationContext has to be functional before any chains could work.

Hope this helps. It usually takes a lot of work up front just do get a clear attack plan. Usually once that is there writing the actual tests is easy (by comparison anyway).

-David


On Mar 7, 2007, at 10:12 AM, Prasad Kashyap wrote:

Thanx Mohammad. Those were all good tips indeed.

Cheers
Prasad.


On 3/7/07, Mohammad Nour El-Din <[EMAIL PROTECTED]> wrote:
Hi Prasad...

First of all, welcome of the OpenEJB family :). I know this mail is directed to David, but I want to give a suggestion regarding the second part of your question, and as I was involved in developing some iTests for OpenEJB. See
my comments below please :)



On 3/7/07, Prasad Kashyap <[EMAIL PROTECTED]> wrote:

> On 3/2/07, David Blevins <[EMAIL PROTECTED]> wrote:
> > Hi Prasad,
> >
> > Welcome to the fun!  I really wouldn't be concerned about being a
> > "hindrance".  Help is help, and we're happy to have you!
> >
> > Couple things I think need some attention is that pretty soon here > > we're going to have to produce some of the interceptor tests we have
> > planned out.  There's a whole bunch of them in this list:
> >    http://issues.apache.org/jira/browse/OPENEJB-142
>
> I'm ready to start writing tests for the interceptor for the above
> JIRA. Had you envisaged these tests to be in any particular way ? Your
> thoughts/advice/opinions will be well appreciated.
>
> Should I write separate beans for these or should I reuse the existing
> beans ?


Well I did not look at the interceptor code, but I tried to follow this rule while developing unit tests, if it is applicable to reuse a bean, and just add some new members to it so u can test the required feature, it will be better, if not or if it will complicate things start a new one and also try to reuse what ever possible by extending some other bean or so. take a look at the following beans BasicStatelessPojoBean, FieldInjectionStatelessBean, SetterInjectionStatelessBean and AnnotatedFieldInjectionStatelessBean, and remember it is always a good practice to review the specs before writing tests, this way you can know how OpenEJB really should behave, this is what I've been doing at least. And feel free to take the time you need, it took me a while to write my first test case, and I did it by the help of DBlevins
too :D, there is no shame to get help as long as it will help you to
contribute more for this project :). Welcome again Prasad :), and have fun
:)

Cheers
> Prasad
>
> >
> > The interceptor code is not yet functional, but writing the tests is > > actually harder in a lot of ways and whoever takes that on is likely > > going to have to dig through the spec quite a bit around the topic of > > interceptors. But for that reason it's a great place to learn and > > eventually crack into the other runtime code. Ask Mohammad or Manu :)


Yeah, David is right writting tests for OpenEJB is really nice place to
start and it is a challenging task too in some situations :)

>
> > Another budding area is we have some additional validation needs
> > around some of the new EJB 3 concepts. We have a list started here:
> >    http://issues.apache.org/jira/browse/OPENEJB-453
> >
> > Anyone else have any ideas?
> >
> > -David
> >
> >
> > On Mar 2, 2007, at 11:55 AM, Prasad Kashyap wrote:
> >
> > > Hello all,
> > >
> > > I would like to pitch in and help you guys, esp. with OpenEJB's
> > > integration into Geronimo. Please let me know how I can help you.
> > >
> > > Knowing how valuable all your time is, I don't want to pull you away > > > from what you are doing to tutor me. But initially if you give me > > > enough hints and pointers, hopefully I'll be able to ramp up quickly.
> > >
> > > So please suggest areas where I can contribute and sections I can > > > tackle. Maybe I can begin by fixing some bugs for you, or implement > > > the low-priority TODOs that you have. Or maybe I can begin by doing > > > some mundane chore like running the EJB suite on G's TCK for you. > > > However you deem fit, however you think I can be of max help to you,
> > > just let me know.
> > >
> > > Let's give this a shot and see how it goes. I hope I'll be more help
> > > than hindrance to you.
> > >
> > > Is there an overview of the OpenEJB arch and/or build tree
> > > structure somewhere ?
> > >
> > > Cheers
> > > Prasad
> > >
> >
> >
>



--
Thanks
- Mohammad Nour



Reply via email to