Hello Romain, thank you for your fast response. Yes I want to intercept the test itself.
I've checked into various ways on how to actually create a bean, however nothing worked out. You mention to call beanManager.getXXX() but for my point that is not enough information. I tried to retrieve the beans of the test class via beanManager.getBeans() but regardless of what I try as annotation literals there (non, Any, etc.) nothing works, the list is always empty. What method exactly did you have in mind here? Thanks, Heiko > -----Ursprüngliche Nachricht----- > Von: Romain Manni-Bucau [mailto:[email protected]] > Gesendet: Freitag, 7. Februar 2014 08:26 > An: [email protected] > Betreff: Re: Interceptors not being called in JUnit-aware CDI environment > > ========================================================= > ====== > > ATTENTION! This message contains suspicious URL(s) possibly redirecting to > malicious content. Our security gateways target known problem URLs like > freeweb or URL Shorteners that are being abused by spammers. Some > examples would be groups.google.com or tinyurl.com. Please check the sender > and hyperlinks in the e-mail accurately before clicking on a link. If this > email > seems obviously bad to you please delete it. More information is available on > our website Information Security @ Daimler: http://intra.corpintra.net/intra- > is-e/spam > > ========================================================= > ====== > > ACHTUNG! Diese E-Mail enthält verdächtige URLs welche möglicherweise auf > schädlichen Inhalt verweisen. Die Security Gateways prüfen auf bekannte > Problem-URLs wie zum Beispiel URL-Abkürzungen, die bevorzugt von > Spammern mißbraucht werden (tinyurl.com, groups.google.com, ...). Bitte > prüfen Sie den Absender und die URLs in dieser E-Mail gewissenhaft bevor sie > die verknüpften Inhalte aufrufen. Bitte löschen Sie diese E-Mail, wenn Sie der > Meinung sind, daß sich der Verdacht bestätigt. Weitere Informationen zu > unerwünschter E-Mail / SPAM finden Sie auf den Seiten der > Informationssicherheit bei Daimler unter: http://intra.corpintra.net/intra-is- > d/spam > > ========================================================= > ====== > > > HI > > You want to intercept the test? so it means the runner needs to invoke > "business" methods of the test class which is not the case by default (ie > result > shouldn't be built from a newInstance() but from a beanManager.getXXX()). > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > > 2014-02-07 <[email protected]>: > > Hello, > > > > I've been trying to start the CDI container during Junit-Testing as > > described at the following page, > > > > http://struberg.wordpress.com/2012/03/27/unit-testing-strategies-for-c > > di-based-projects/ > > > > though I'm using Junit 4 and implemented everything using a new Runner (to > annotate tests with @RunWith). I kind of got inspired by he CDIUnit project, > but > it works only with Weld and I want to use OpenWebBeans. > > The major things like injection work perfectly, however, I realized, that > > even > though I implemented the following code to provided a CDI aware Test-Class, > an interceptor annotation on a test method is completely ignored, thus the > interceptors AroundInvoke annotated method is not called. > > > > private <T> T createTest(final Class<T> testClass) throws Exception > > { > > final BeanManager beanManager = cdiContainer.getBeanManager(); > > > > final CreationalContext<T> creationalContext = > > beanManager.createCreationalContext(null); > > > > final AnnotatedType<T> annotatedType = > beanManager.createAnnotatedType(testClass); > > final InjectionTarget<T> injectionTarget = > > beanManager.createInjectionTarget(annotatedType); > > > > final T result = (T) > > getTestClass().getOnlyConstructor().newInstance(); > > > > injectionTarget.inject(result, creationalContext); > > > > return result; > > } > > > > Is this expected behaviour? I'm not so familiar with how interceptors > > are really implemented, but I would have guest that after providing a > > creational context and complete injection for the test class, > > interceptor annotations should work too. The interceptor itself is > > registered correctly. It is listed among all interceptors when calling > > > > WebBeansContext.currentInstance().getInterceptorsManager().getCdiInter > > ceptors() > > > > however, a test annotated with the interceptor does not trigger execution of > the AroundInvoke-method. > > > > Would be great, if somebody has a thought or a hint on this. > > > > Thanks, > > > > Heiko > > > > > > If you are not the addressee, please inform us immediately that you have > received this e-mail by mistake, and delete it. We thank you for your support. > > If you are not the addressee, please inform us immediately that you have received this e-mail by mistake, and delete it. We thank you for your support.
