Thanks Ronan, Can you share the implementation of StubProjectorApplication? That doesn't appear to be part of Wicket or Guice.
Daniel On Wed, Oct 10, 2012 at 12:29 PM, Ronan O'Connell <[email protected]> wrote: > Hi Daniel, > > I'm using Guice in a couple of wicket projects though my understanding of it > is a little limited! My set-up matches yours except that in my unit test > setup I call injectMembers : > > @Before > public void setUp() > { > final StubProjectorApplication stubApplication = new > StubProjectorApplication(); > _tester = new WicketTester(stubApplication); > stubApplication.getWarpInjector().injectMembers(this); // > getWarpInjector returns the injector built in the init method > } > > I'm not sure this is right..it feels to me that it shouldn't be be > necessary, but it works for me :) . > > Ronan > > > On 10/10/2012 18:30, Daniel Watrous 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: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
