[jboss-user] [JBoss Seam] - Injection in SeamTest
franky.b
do-not-reply at jboss.com
Tue Jan 29 03:33:30 EST 2008
Hello,
I'm facing some problems with my injected properties in my TestNG tests.
Probably this is very easy to solve, but I currently don't have the "right" idea.
The class to be tested is as follows:
| @Name("entityManager")
| @Scope(ScopeType.CONVERSATION)
| @SuppressWarnings("unchecked")
| public class EntityManager implements Serializable, PagedEntityManager {
|
| /**
| * The injected entity class name.
| */
| @In(value = "#{entityClassName}", create=true)
| private String m_overrideEntityClassName;
|
|
| public void showEntity(){
|
| ...
| //access the injected field
| print(m_overrideEntityClassName);
|
|
| }
|
|
| }
|
Note that the name entityManager is just arbitrary and has nothing to do with EJB or JPA EntityManager!
Now my testclass looks like this
| public class EntityManagerTest
| extends SeamTest {
|
|
| @Test
| public void testPersistEntity() throws Exception {
|
| assert !super.isSessionInvalid();
|
|
| new FacesRequest() {
|
| @Override
| protected void updateModelValues() throws Exception
| {
|
| //try to set the entityClassName
|
| setValue("#{entityClassName}",
| "Client");
|
| }
|
| @Override
| protected void invokeApplication() throws Exception
| {
| //Invoke method that uses previously set entityClassName
| invokeMethod("#{entityManager.showEntity()}");
| }
|
|
|
| }.run();
|
|
| }
|
|
The problem is: entityClassName is never injected into the entityManager. When accessing the private field it in the method showEntity, it is always null.
Am I missing something?
Thanks for any help.
---
Frank
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4124288#4124288
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4124288
More information about the jboss-user
mailing list