tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Connolly <stephen.alan.conno...@gmail.com>
Subject Re: Howto exchange bean implementation for testing?
Date Thu, 18 Feb 2010 08:26:14 GMT
I would refactor how you package up these things.

You would put the SessionManagerImpl in one module

You can then have SessionManagerTestImpl (because Test*.java and *Test.java
will be picked up by surefire as JUnit test cases) in src/test/java of the
module which uses SessionManager, and do not depend on the module with the
real SessionManagerImpl...

Then finally when you package everything up, as SessionManagerTestImpl is in
src/test/java then there is no fear of it being in your final EAR

-Stephen

P.S.

If you have more confidence you can configure openejb to wire up
SessionManagerTestImpl for the test cases where you need it and use
SessionManagerImpl for the test cases where you don't... you'd still keep
SessionManagerTestImpl in src/test/java, but you'd be relying on your
configuration of openejb to ensure that your test cases get the correct
SessionManager injected per their requirements (the advantage is that you
wouldn't end up with an EJB module per EJB ;-) )

On 18 February 2010 08:13, Per Newgro <per.newgro@gmx.ch> wrote:

> Hi *,
>
> this is not realy a openejb question but anyway.
>
> I have following scenario. After login a "business"-session will be created
> for userId
> with language and current date in it (has nothing to do with http-sessions
> or so).
> The session is created by singleton bean SessionManager which is storing
> the session
> in a map. Internally the session manager sets the current date (new
> Date()).
> For testing issues i would like to preset the current date. But because the
> session times
> out after date change i can't manipulate it. So a setter for current date
> is impossible.
>
> What i would like to do is to exchange the session manager implementation
> by a
> test session manager implementation in which i could implement an
> appripriate behavior
> for test.
>
> So how can i guarantee that my tests are using the TestSessionManager and
> the business
> client the SessionManager? Is there something like
> "IgnoreBeanXYWhileDeployForMyTest"?
>
> Cheers
> Per
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message