Hi,

https://github.com/apache/wicket/blob/master/wicket-guice/src/test/java/org/apache/wicket/guice/GuiceInjectorTest.java
The code doesn't look very nice, IMO, but it should help you start your tests.

On Thu, Oct 11, 2012 at 3:10 AM, Dan Retzlaff <dretzl...@gmail.com> wrote:
> Daniel,
>
> What you're doing should work, but I think you're giving
> your GuiceComponentInjector a null Injector. Unit tests don't go through
> web.xml to set up its context listeners, so
> your GuiceServletContextListener never has a chance to construct and
> register an Injector with the ServletContext.
>
> Dan
>
> On Wed, Oct 10, 2012 at 5:30 PM, Daniel Watrous 
> <daniel.watr...@gmail.com>wrote:
>
>> Hi,
>>
>> I've integrated Guice into Wicket successfully, but I'm struggling
>> with the unittests. I'm not sure how to get the injector into my
>> HomePage class. Here's my setup.
>>
>> I'm using GuiceFilter with a GuiceServletContextListener. That creates
>> the injector and a ServletModule which defines the WicketApplication.
>> I followed:
>> http://code.google.com/p/google-guice/wiki/ServletModule
>>
>> Here's some of MyGuiceServletConfig extends GuiceServletContextListener
>>
>>     @Override
>>     protected Injector getInjector() {
>>         return Guice.createInjector(createServletModule(), new
>> MongoHoneybadgerModule());
>>     }
>>
>>     private ServletModule createServletModule() {
>>         return new ServletModule() {
>> ...
>>
>> In my WicketApplication extends WebApplication I have this init() method
>>
>>     @Override
>>     public void init()
>>     {
>>         super.init();
>>         Injector bootStrapInjector = (Injector)
>> this.getServletContext().getAttribute(Injector.class.getName());
>>         getComponentInstantiationListeners().add(new
>> GuiceComponentInjector(this, bootStrapInjector));
>>     }
>>
>> Now, in my HomePage.java class I have
>>
>> public class HomePage extends WebPage {
>>     private static final long serialVersionUID = 1L;
>>     @Inject private Injector injector;
>>
>>     public HomePage(final PageParameters parameters) {
>>         super(parameters);
>>         SomeType myobj = injector.getInstance(SomeType.class);
>>
>>         add(new Label("version", myobj.getValue()));
>>     }
>> }
>>
>> This all runs great inside a web container as a servlet.
>>
>> The PROBLEM: I'm getting a NullPointerException on the line where I
>> reference the injector:
>>         SomeType myobj = injector.getInstance(SomeType.class);
>>
>> My test class is what was generated by the wicket quickstart. I'm not
>> sure how to make an injector available in setUp.
>>
>>     @Before
>>     public void setUp() {
>>         tester = new WicketTester(new WicketApplication());
>>     }
>>
>> Any ideas?
>>
>> Thanks,
>> Daniel
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to