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