JBPM unit testing
lpiccoli.lucio.asteriski.com Sep 15, 2009 3:05 AMhi all,
i am having difficulty in testing JBPM component in the seam test environment.
i have used the exact code from the 'todo' example, yet i get the following error when trying to login.
i have attached the error, test code and the simple Login class.
javax.el.ELException: org.jboss.seam.RequiredException: @In attribute requires non-null value: login.actor at javax.el.BeanELResolver.setValue(BeanELResolver.java:376) at javax.el.CompositeELResolver.setValue(CompositeELResolver.java:283) at org.jboss.el.parser.AstPropertySuffix.setValue(AstPropertySuffix.java:73) at org.jboss.el.parser.AstValue.setValue(AstValue.java:84) at org.jboss.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:249) at org.jboss.seam.core.Expressions$1.setValue(Expressions.java:117) at org.jboss.seam.mock.AbstractSeamTest$ComponentTest.setValue(AbstractSeamTest.java:152) at com.asteriski.itpflow.business.LotFormActionTest$1.testComponents(LotFormActionTest.java:37) at org.jboss.seam.mock.AbstractSeamTest$ComponentTest.run(AbstractSeamTest.java:162) at com.asteriski.itpflow.business.LotFormActionTest.getActor(LotFormActionTest.java:43) Caused by: org.jboss.seam.RequiredException: @In attribute requires non-null value: login.actor at org.jboss.seam.Component.getValueToInject(Component.java:2335) at org.jboss.seam.Component.injectAttributes(Component.java:1736) at org.jboss.seam.Component.inject(Component.java:1554) at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:61) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103) at com.asteriski.itpflow.test.Login_$$_javassist_seam_1.setUser(Login_$$_javassist_seam_1.java) at javax.el.BeanELResolver.setValue(BeanELResolver.java:371)
@Test public void createProcess() throws Exception{ new FacesRequest() { @Override protected void updateModelValues() throws Exception { setValue("#{login.user}", "qa"); } @Override protected void invokeApplication() throws Exception { assert invokeMethod("#{login.login}").equals("/todo.jsp"); assert Actor.instance().getId().equals("qa"); } @Override protected void renderResponse() throws Exception { assert ( (List) getInstance(TaskInstanceList.class) ).size()==0; } }.run();
@Name("login") public class Login { @In private Actor actor; private String user; public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String login() { actor.setId(user); return "/todo.jsp"; } }
Q1. what have i missed in my config?
Q2. is there a simpler way to test jbpm?
-lp