is you test class scanned by cdi? I mean did you provide a META-INF/beans.xml for tests? 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 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. >
