Hi, Thanks for the reply. When I try to test it like other Panel classes through WicketTester.startComponentInPage(), I get the NPE in the first post, as WizardStep.onInitialize() expects the WizardStep to be within a wizard providing a Form. The lack of a Form in the parent causes the NPE.
Is there a better way to get around this than placing the panel in a dummy page with a form, and then testing on that page? - Dan On Sat, Mar 10, 2012 at 7:23 AM, Martin Grigorov <mgrigo...@apache.org>wrote: > Hi, > > There is nothing specific for Wizard components in WicketTester. > WicketTester is in -core, Wizard is in -extensions. -core doesn't know > about -extensions. > Can't you test it like any other Panel ? > > On Sat, Mar 10, 2012 at 12:13 AM, Dan Alvizu <dalv...@pingidentity.com> > wrote: > > Hi again, > > > > Sorry for the repost but I haven't been able to find a way through > > WicketTester API to accomplish this, so I'm bumping this thread. > > > > Has anybody successfully written unit tests for the wizard? > > > > Thanks, > > > > Dan > > > > On Mon, Mar 5, 2012 at 2:34 PM, Dan Alvizu <dalv...@pingidentity.com> > wrote: > > > >> Hi, > >> > >> I've got a wizard with 5 steps. If I want to test just step four, but do > >> not want to go through steps 1 through 3 first, how would I do that? > >> > >> I found this message for wicket 1.4: > >> > >> http://osdir.com/ml/users-wicket.apache.org/2011-06/msg00498.html > >> > >> However, startPanel() is deprecated and replaced with > >> startComponentInPage(). If I use this method, I will get an NPE in > >> WizardSteps.onInitialize() method: > >> > >> > >> > >> java.lang.NullPointerException: null > >> at > >> > org.apache.wicket.extensions.wizard.WizardStep.onInitialize(WizardStep.java:445) > >> ~[wicket-extensions-1.5.4.jar:1.5.4] > >> at org.apache.wicket.Component.fireInitialize(Component.java:920) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at > >> org.apache.wicket.MarkupContainer$4.component(MarkupContainer.java:1007) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at > >> org.apache.wicket.MarkupContainer$4.component(MarkupContainer.java:1005) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:143) > >> ~[wicket-util-1.5.4.jar:1.5.4] > >> at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:122) > >> ~[wicket-util-1.5.4.jar:1.5.4] > >> at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:191) > >> ~[wicket-util-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:923) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:1003) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at org.apache.wicket.Page.internalPrepareForRender(Page.java:278) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at org.apache.wicket.Component.render(Component.java:2282) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at org.apache.wicket.Page.renderPage(Page.java:1041) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:105) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:224) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:167) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:781) > >> ~[wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) > >> ~[wicket-request-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:255) > >> [wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:212) > >> [wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:283) > >> [wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.util.tester.BaseWicketTester.processRequest(BaseWicketTester.java:650) > >> [wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.util.tester.BaseWicketTester.processRequest(BaseWicketTester.java:570) > >> [wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.util.tester.BaseWicketTester.startPage(BaseWicketTester.java:780) > >> [wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.util.tester.BaseWicketTester.startPage(BaseWicketTester.java:796) > >> [wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.util.tester.BaseWicketTester.startComponentInPage(BaseWicketTester.java:1400) > >> [wicket-core-1.5.4.jar:1.5.4] > >> at > >> > org.apache.wicket.util.tester.BaseWicketTester.startComponentInPage(BaseWicketTester.java:1336) > >> [wicket-core-1.5.4.jar:1.5.4] > >> > >> [...] > >> > >> Sure enough, in org.apache.wicket.extensions.wizard.WizardStep.java, > >> there's an attempt to find the Form parent which will not exist: > >> > >> @Override > >> > >> protected void onInitialize() > >> > >> { > >> > >> super.onInitialize(); > >> > >> > >> Form<?> form = findParent(Form.class); > >> > >> form.add(formValidatorWrapper); // NPE here, form will be null > >> > >> } > >> > >> > >> Is there a preferred way to do this without patching BaseWicketTester? > >> > >> Thanks, > >> > >> Dan > >> > >> > >> > > > > -- > 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 > >