Timo,
I am trying to achieve something similar. How did you manage to assign the
TestingWebApplication to your WicketTester?? Thanks!
mclev wrote:
>
>
>
> mclev wrote:
>>
>> 4. Can I test that the response page is what I expect when when I first
>> render and when i submit my form
>>
>> So, call me crazy, but it occurs to me that it would be nice if I could
>> "unit test" just my page, verifying that when the code in my page
>> finishes executing everything is what I expect. I don't really care if
>> the response page renders properly (I'll test that in a unit test for
>> that page), I just want to know that the logic in my page in sending off
>> to the new page.
>>
>>
>
> So I figured out a way to do this by extending the
> WebRequestCycleProcessor.respond methods. :
>
> public class TestingWebRequestCycleProcessor extends
> WebRequestCycleProcessor {
>
> private boolean respondingSuspended = false;
>
> public TestingWebRequestCycleProcessor(){
> super();
> }
>
> public boolean isRespondingSuspended() {
> return respondingSuspended;
> }
>
> public void setRespondingSuspended(boolean respondingSuspended) {
> this.respondingSuspended = respondingSuspended;
> }
>
> @Override
> public void respond(RequestCycle requestCycle)
> {
> if (isRespondingSuspended()){
> return;
> }
>
> super.respond(requestCycle);
> }
>
> @Override
> public void respond(RuntimeException e, RequestCycle requestCycle)
> {
> if (isRespondingSuspended()){
> return;
> }
>
> super.respond(e, requestCycle);
> }
> }
>
> then overriding the WicketTester.DummyApplication:
>
> public class TestingWebApplication extends
> WicketTester.DummyWebApplication{
>
> private TestingWebRequestCycleProcessor requestProcessor;
>
> @Override
> protected IRequestCycleProcessor newRequestCycleProcessor()
> {
> requestProcessor = new TestingWebRequestCycleProcessor();
> return requestProcessor;
> }
>
> public void suspendResponding(){
> requestProcessor.setRespondingSuspended(true);
> }
>
> public void unsuspendResponding(){
> requestProcessor.setRespondingSuspended(false);
> }
> }
>
>
> now my test looks like this:
>
> @Test
> public void testSubmitExistingPart(){
> // setup for modifying a part (part has an id -- found by dao)
> setUp();
> final Part part = new MockPart(10);
> final PartDAO mockDAO = module.getmock();
> mockery.checking(new Expectations(){{
> one(mockDAO).findPart(part.getId());
> will(returnValue(part));
> one(mockDAO).save(with(same(part)));
> }});
> PageParameters params = new PageParameters("id="+ part.getId());
> Page page = new PartDetailPage(params);
> tester.startPage(page);
>
> // simulate entry of part data
> FormTester formTester = tester.newFormTester("inputForm");
> String barcode = "123";
> String name = "ABC";
> String description = "XYZ";
> enterFormData(formTester, barcode, name, description);
>
> testApp.suspendResponding(); // so response won't be rendered
> formTester.submit();
>
> // verify values set properly in model;
> assertModelUpdated(part, barcode, name, description);
>
> // verify that response page is correct
> // this now works -- even though the page isn't really
> renderd
> tester.assertRenderedPage(PartListPage.class);
> }
>
> I'm still new to wicket so if anybody thinks this is this is crazy please
> let me know.
>
>
>
--
View this message in context:
http://www.nabble.com/Using-the-WicketTester-WITHOUT-rendering-a-response-on-submit-tp13737447p17407457.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]