I have requested that there be a way in the SeamTest to get the request-scope 
attributes (and also set one). http://jira.jboss.org/jira/browse/JBSEAM-1657

Ah, and I can justify why now (car rides are always useful for these things). 
In the Expressions class (and perhaps JSF in general), you cannot set the value 
of an arbitrary value binding. The root has to resolve to some bean somewhere. 
However, you can place things manually into different scopes, which Seam 
handles when it outjects. So by setting the request scope attribute, you are 
emulating what would occur from an outjection of some other Seam component.

Let me provide an example:

This is fine:

@Name("user")
  | public class User {
  |     private String name;
  | 
  |    // getters and setters
  | }

...inside test

setValue("#{user.name}", "Mike");

This is not fine (does nothing):

setValue("#{madeupexpression}", "Mike")

However, if your Seam component has a "madeupexpression" property that needs to 
be injected, then you need a way to make this value available in the test. You 
are emulating the @Out that perhaps occurred in some other part of the code.

Here is what will work:

@Name("someComponent")
  | public class SomeComponent {
  |     @In
  |     private String madeupexpression;
  | }

...inside test

setAttribute("madeupexpression", "Mike") // proposed
  | Component.getInstance("someComponent");
  | System.out.println("You've got no errors");

Hopefully that makes it clear why we need this. Or, perhaps someone can tell me 
how I am doing it all wrong. How do you prepare a value expression that would 
have been outjected by another component?  Assume that the other component is 
not used in the test.

I do know about setField(), but assume that you are not instantiating the 
object manually but rather using Component.getInstance("someComponent") to get 
it. When this call is made, all the dependencies have to be available.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4063753#4063753

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4063753
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to