[jboss-user] [JBoss Seam] - SeamTest with TestNG, embeddable jboss
jbeaken
do-not-reply at jboss.com
Wed Oct 3 10:31:53 EDT 2007
Hi
I'm using seam1.2.1, jboss 4.2.1. I have managed to boot the embedded EJB3 container for testing purposes, but on trying to obtain a reference to a component, it fails on the @Create method. Anybody got any ideas? Please find relevant code below:
Test class
package com.ricall.test;
|
| import java.util.StringTokenizer;
|
| import javax.naming.InitialContext;
|
| import org.testng.annotations.Configuration;
| import org.testng.annotations.Test;
| import org.jboss.ejb3.embedded.*;
| import org.jboss.seam.core.Conversation;
| import org.jboss.seam.mock.SeamTest;
|
| import com.ricall.domain.company.Company;
| import com.ricall.services.user.AddUserService;
|
| public class CreateUserTest extends SeamTest {
| private String firstName = "Jack";
| private String lastName = "Beaken";
| private String password = "welcome";
| private String emailAddress = "jack.beaken at ricall.com";
| private Company company = new Company();
|
| @Test(groups="user")
| @Configuration(groups="user")
| public void testAddUser() throws Exception {
| try {
| new FacesRequest() {
|
| protected void updateModelValues() throws Exception {
| setValue("#{userToAdd.firstName}", firstName);
| setValue("#{userToAdd.lastName}", lastName);
| setValue("#{userToAdd.password}", password);
| setValue("#{userToAdd.emailAddress}", emailAddress);
| company.setId(1l);
| setValue("#{userToAdd.company}", company);
| }
|
|
|
| protected void invokeApplication() {
| AddUserService addUserService = (AddUserService) getInstance("addUserService");
| System.err.println("Add user service = " + addUserService);
| // invokeMethod("#{addUserService.add}");
| addUserService.add();
| }
|
| protected void renderResponse() {
|
| assert getValue("#{userToAdd.firstName}").equals(firstName);
| assert getValue("#{userToAdd.lastName}").equals(lastName);
| assert getValue("#{userToAdd.password}").equals(password);
| assert getValue("#{userToAdd.emailAddress}").equals(emailAddress);
| }
| }.run();
| }catch(Exception e) {
| System.err.println(e.getMessage());
| e.printStackTrace();
| }
| }
| //Added to initalise SeamTest, will be moved to separate class later
|
| @Configuration(groups = "user", beforeTestMethod=true)
| public void begin() {
| System.err.println("In begin");
| super.begin();
| }
|
| @Configuration(groups = "user", afterTestMethod=true)
| public void end() {
| System.err.println("In end");
| super.end();
| }
|
| @Configuration(groups = "user", beforeTestClass=true)
| public void init() throws Exception {
| System.err.println("In init");
| super.init();
| }
|
| @Configuration(groups = "user", afterTestClass=true)
| public void cleanup() throws Exception
| {
| System.err.println("In cleanup");
| super.cleanup();
| }
|
| }
Exception:
[testng] exception invoking: create
| [testng] java.lang.RuntimeException: exception invoking: create
| [testng] at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:133)
| [testng] at org.jboss.seam.Component.callComponentMethod(Component.java:1834)
| [testng] at org.jboss.seam.Component.callCreateMethod(Component.java:1757)
| [testng] at org.jboss.seam.Component.newInstance(Component.java:1746)
| [testng] at org.jboss.seam.Component.getInstance(Component.java:1643)
| [testng] at org.jboss.seam.Component.getInstance(Component.java:1610)
| [testng] at org.jboss.seam.Component.getInstance(Component.java:1604)
| [testng] at org.jboss.seam.mock.SeamTest.getInstance(SeamTest.java:118)
| [testng] at com.ricall.test.CreateUserTest.access$5(CreateUserTest.java:1)
| [testng] at com.ricall.test.CreateUserTest$1.invokeApplication(CreateUserTest.java:41)
| [testng] at org.jboss.seam.mock.SeamTest$Request.run(SeamTest.java:489)
| [testng] at org.jboss.seam.mock.SeamTest$FacesRequest.run(SeamTest.java:632)
| [testng] at com.ricall.test.CreateUserTest.testAddUser(CreateUserTest.java:54)
| [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| [testng] at java.lang.reflect.Method.invoke(Method.java:597)
| [testng] at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:529)
| [testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:398)
| [testng] at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:625)
| [testng] at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:88)
| [testng] at org.testng.TestRunner.privateRun(TestRunner.java:614)
| [testng] at org.testng.TestRunner.run(TestRunner.java:505)
| [testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:221)
| [testng] at org.testng.SuiteRunner.run(SuiteRunner.java:147)
| [testng] at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:576)
| [testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:539)
| [testng] at org.testng.TestNG.run(TestNG.java:316)
| [testng] at org.testng.TestNG.privateMain(TestNG.java:666)
| [testng] at org.testng.TestNG.main(TestNG.java:608)
| [testng] Caused by: java.lang.reflect.InvocationTargetException
| [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| [testng] at java.lang.reflect.Method.invoke(Method.java:597)
| [testng] at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)
| [testng] at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
| [testng] at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:72)
| [testng] at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57)
| [testng] at org.jboss.seam.interceptors.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:40)
| [testng] at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| [testng] at org.jboss.seam.interceptors.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:31)
| [testng] at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
| [testng] at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
| [testng] at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:50)
| [testng] at org.javassist.tmp.java.lang.Object_$$_javassist_0.create(Object_$$_javassist_0.java)
| [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| [testng] at java.lang.reflect.Method.invoke(Method.java:597)
| [testng] at org.jboss.seam.util.Reflections.invoke(Reflections.java:20)
| [testng] at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:123)
| [testng] ... 29 more
| [testng] Caused by: java.lang.NoSuchMethodError: org.jboss.aop.MethodInfo.getUnadvisedMethod()Ljava/lang/reflect/Method;
| [testng] at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:181)
| [testng] at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
| [testng] at $Proxy117.create(Unknown Source)
| [testng] ... 50 more
So root cause:
Caused by: java.lang.NoSuchMethodError: org.jboss.aop.MethodInfo.getUnadvisedMethod()Lja
va/lang/reflect/Method;
thanks in advance
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4091082#4091082
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4091082
More information about the jboss-user
mailing list