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  <it-media.k...@daimler.com>:
> 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-cdi-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().getCdiInterceptors()
>
> 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.
>

Reply via email to