I have test and formTester.submit(); throws an error:

java.lang.NumberFormatException: For input string: "p:form"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at
org.apache.wicket.protocol.http.request.urlcompressing.UrlCompressor.getComponentAndInterfaceForUID(UrlCompressor.java:122)
    at
org.apache.wicket.protocol.http.request.urlcompressing.UrlCompressingWebRequestProcessor.resolveListenerInterfaceTarget(UrlCompressingWebRequestProcessor.java:79)
    at
org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:461)
    at
org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:139)
    at org.apache.wicket.RequestCycle.step(RequestCycle.java:1224)
    at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1331)
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
    at
org.apache.wicket.protocol.http.MockWebApplication.processRequestCycle(MockWebApplication.java:401)
    at org.apache.wicket.util.tester.FormTester.submit(FormTester.java:617)
    at
pl.mainseek.forum.wicket.components.AddQuestionPanelTest.testSubmit(AddQuestionPanelTest.java:48)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
    at
org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
    at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
    at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
    at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
    at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
    at
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
    at
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
    at
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
    at
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
    at
org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
    at
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
    at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
    at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

Sources:

public class AddQuestionPanelTest extends AbstractWebPageContext {

    private static final String FORM_PATH =
DummyPageWithAddQuestionPanel.PANEL_NAME + ":" + AddQuestionPanel.FORM_NAME;
    private FakeForumService forumService;

    @Before public void setUp() throws Exception {
        super.setUp();
        forumService = MockFactory.makeMock(FakeForumService.class);
        getMockContext().putBean("forumService", forumService);
    }

    @Test public void testCreate() {
        getTester().startPage(DummyPageWithAddQuestionPanel.class);
        getTester().assertRenderedPage(DummyPageWithAddQuestionPanel.class);
        getTester().assertNoErrorMessage();


getTester().assertComponent(DummyPageWithAddQuestionPanel.PANEL_NAME,
Panel.class);
        getTester().assertComponent(FORM_PATH, Form.class);
        getTester().assertComponent(FORM_PATH + ":" +
AddQuestionPanel.SUBJECT, RequiredTextField.class);
        getTester().assertComponent(FORM_PATH + ":" + AddQuestionPanel.BODY,
TextArea.class);
    }

    @Test public void testSubmit() {
        getTester().startPage(DummyPageWithAddQuestionPanel.class);

        FormTester formTester = getTester().newFormTester(FORM_PATH);
        formTester.setValue(AddQuestionPanel.SUBJECT, "s");
        formTester.setValue(AddQuestionPanel.BODY, "b");
        getTester().debugComponentTrees();
        formTester.submit();
    }

}

public class AddQuestionPanel extends Panel {

    public static final String ADD_QUESTION_BUTTON = "addQuestionButton";
    public static final String SUBJECT = "subject";
    public static final String BODY = "body";
    public static final String FORM_NAME = "form";

    private Message message;

    public AddQuestionPanel(String id, final User user, final MessageService
forumService) {
        super(id);
        message = new Message("", "", user);
        Form form = new Form(FORM_NAME, new CompoundPropertyModel(message))
{
            @Override protected void onSubmit() {
                super.onSubmit();
                System.out.println("Tu byl !!!!!!!!!!!!!!!!!!!");
                message.setCreateDate(new Date());
                forumService.save(message);
            }
        };
        form.add(new
RequiredTextField(SUBJECT).add(StringValidator.maximumLength(256)));
        form.add(new
TextArea(BODY).setRequired(true).add(StringValidator.maximumLength(5000)));
        add(form);
    }
}

AddQuestionPanel.html

<html>
    <body>
        <wicket:panel>
            <form wicket:id="form">
                <input type="text" wicket:id="subject"
size="2">[Subject]</input><br/>
                <textarea style="height: 100px;"
wicket:id="body">[Body]</textarea>
                <input type="submit" value="Submit"/>
            </form>
        </wicket:panel>
    </body>
</html>


public class DummyPageWithAddQuestionPanel extends WebPage {

    public static final String PANEL_NAME = "p";

    @SpringBean
    private MessageService forumService;

    public DummyPageWithAddQuestionPanel(PageParameters pageParameters) {
        super();
        add(new AddQuestionPanel(PANEL_NAME, new User(), forumService));
    }
}

DummyPageWithAddQuestionPanel.html

<html>
<body>
    <span wicket:id="p">[panel]</span>
</body>
</html>

Can anyone help me?

Reply via email to