hi rainer,
it looks like a restriction with weld (it works fine with owb) -> please
create a jira-ticket for it.
for now you can use: @TestControl(startScopes = {RequestScoped.class,
SessionScoped.class, ConversationScoped.class})
(for every test method)
regards,
gerhard
http://www.irian.at
Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German
Professional Support for Apache MyFaces
2014-04-02 9:52 GMT+02:00 Rainer Schön <[email protected]>:
> Hi all
>
> When I inject a ConversationScoped bean into the test, I get the following
> error (Deltapsike 0.6, Weld SE 2.1.1 JUnit 4.11):
>
> Apr 01, 2014 11:19:37 PM org.apache.deltaspike.testcontrol.api.junit.
> CdiTestRunner$ContainerAwareTestContext startScopes
> SEVERE: failed to start scope @javax.enterprise.context.ConversationScoped
> java.lang.NullPointerException
> at org.jboss.weld.context.bound.BoundConversationContextImpl.
> setRequestAttribute(BoundConversationContextImpl.java:29)
> at org.jboss.weld.context.bound.BoundConversationContextImpl.
> setRequestAttribute(BoundConversationContextImpl.java:10)
> at org.jboss.weld.context.AbstractConversationContext.associate(
> AbstractConversationContext.java:134)
> at org.apache.deltaspike.cdise.weld.ContextController.
> startConversationScope(ContextController.java:122)
> at org.apache.deltaspike.cdise.weld.WeldContextControl.
> startConversationScope(WeldContextControl.java:149)
> at org.apache.deltaspike.cdise.weld.WeldContextControl.
> startContext(WeldContextControl.java:74)
> at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$
> ContainerAwareTestContext.startScopes(CdiTestRunner.java:595)
> at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$
> ContainerAwareTestContext.applyBeforeClassConfig(CdiTestRunner.java:462)
> at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$
> BeforeClassStatement.evaluate(CdiTestRunner.java:347)
> at org.junit.internal.runners.statements.RunAfters.evaluate(
> RunAfters.java:27)
> at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner$
> AfterClassStatement.evaluate(CdiTestRunner.java:374)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
> at org.apache.deltaspike.testcontrol.api.junit.CdiTestRunner.run(
> CdiTestRunner.java:129)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(
> JUnit4TestReference.java:50)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.
> run(TestExecution.java:38)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.
> runTests(RemoteTestRunner.java:467)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.
> runTests(RemoteTestRunner.java:683)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.
> run(RemoteTestRunner.java:390)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.
> main(RemoteTestRunner.java:197)
>
> My test set up:
>
> @FixMethodOrder(MethodSorters.NAME_ASCENDING)
> @RunWith(CdiTestRunner.class)
> @TestControl(startScopes = {ConversationScoped.class})
> public class PubliOrderManagerTest ...
>
> @Inject
> private ManagerBean mgr; // the ConversationScoped bean
>
> @Inject
> private Conversation conversation;
>
>
> @Test
> public void A_testLookupItems() {
> conversation.begin();
> ...
>
> @Test
> public void Z_testRemove() {
> conversation.end();
> ...
>
>
> What am I doing wrong? Any help appreciated.
>
> Rainer
>