I'm trying to test onChange even on one dropdown so that the value is changed 
in the other dropdown.When I submit the form I'm not able to get the values for 
any of the fields.
I have seen people getting the same error but there is no solution so far.
Thanks for helping in advance.


 @Test
    public void testDummyPage() throws Exception
    {
        TestPage testPage = new TestPage("id");
        wicketTester.startPage(testPage);

        // assert rendered field components
        wicketTester.assertComponent("form:txtName", TextField.class);
        wicketTester.assertComponent("form:department", DropDownChoice.class);
        wicketTester.assertComponent("form:employee", DropDownChoice.class);

        FormTester formTester1 = wicketTester.newFormTester("form");
        formTester1.setValue("txtName", "amit");
        formTester1.select("department", 0);
        
        
        wicketTester.executeAjaxEvent("form:department", "onchange");
        wicketTester.assertComponentOnAjaxResponse("form:employee");
                
        formTester1.select("employee", 1);
        
        formTester1.submit("submit");

        
        Assert.assertEquals(formTester1.getTextComponentValue("txtName"), 
"amit");
        
Assert.assertNotNull(wicketTester.getTagByWicketId("department").getValue());
        
Assert.assertNotNull(wicketTester.getTagByWicketId("employee").getValue());

        DropDownChoice dropDownChoice = (DropDownChoice) 
wicketTester.getComponentFromLastRenderedPage(
                "form:department");

        System.out.println(" department " + 
formTester1.getForm().get("department"));
        Assert.assertEquals((dropDownChoice.getModelObjectAsString()), "HR");
    }



**************
public class TestPage extends WebPage
{

    private String txtName;
    private String department;
    private String deptName;
    private String deptId;
    private String employee;
    private DropDownChoice ddc1;

    public TestPage(String id)
    {
        final Form addressForm = new Form("form", new 
CompoundPropertyModel(this));
        addressForm.setOutputMarkupId(true);
        add(addressForm);

        /*Address TextField*/
        TextField addressTxtField = new TextField("txtName",
                new PropertyModel(this, "txtName"), String.class);
        addressTxtField.add(StringValidator.maximumLength(15));
        addressForm.add(addressTxtField);

        List<Dept> depList = new ArrayList();
        Dept dept = new Dept();
        dept.setDeptId("1");
        dept.setDeptName("HR");
        depList.add(dept);
        Dept dept1 = new Dept();
        dept1.setDeptName("AC");
        dept1.setDeptId("2");
        Dept dept2 = new Dept();
        dept2.setDeptName("AD");
        dept2.setDeptId("3");
        depList.add(dept1);
        depList.add(dept2);
        ChoiceRenderer choiceRendererState = new ChoiceRenderer("deptName",
                "deptId");
        //addressForm.add(new DropDownChoice("department", new 
PropertyModel(this, "department"), depList,
        //choiceRendererState));
        final DropDownChoice ddc = new DropDownChoice("department", new 
PropertyModel(this, "department"), Arrays.<String>asList(
                "HR", "IS", "FINANCE/ACCOUNTING"));
        addressForm.add(ddc.setOutputMarkupId(true));

        ddc1 = new DropDownChoice("employee", new PropertyModel(this, 
"employee"), Arrays.<String>asList(
                "EMP1", "EMP2", "EMP3"));
        addressForm.add(ddc1.setOutputMarkupId(true));

        ddc.add(new AjaxFormComponentUpdatingBehavior("onchange")
        {

            @Override
            protected void onUpdate(AjaxRequestTarget target)
            {
                if (ddc.getModelObject() != null)
                {

                    
target.addComponent(ddc1.setChoices(Arrays.<String>asList("EMP1", "EMP2")));
                }
            }
        });



        addressForm.add(new Button("submit")
        {

            protected void onSubmit(AjaxRequestTarget target, Form form)
            {
            }
        });

    }

    public String getTxtName()
    {
        return txtName;
    }

    public void setTxtName(String txtName)
    {
        this.txtName = txtName;
    }

    public String getDepartment()
    {
        return department;
    }

    public void setDepartment(String department)
    {
        this.department = department;
    }

    public String getDeptName()
    {
        return deptName;
    }

    public void setDeptName(String deptName)
    {
        this.deptName = deptName;
    }

    public String getDeptId()
    {
        return deptId;
    }

    public void setDeptId(String deptId)
    {
        this.deptId = deptId;
    }

    public String getEmployee()
    {
        return employee;
    }

    public void setEmployee(String employee)
    {
        this.employee = employee;
    }
}

***********
TestPage.html

<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form wicket:id="form">
            <input type="text" value="shalini" wicket:id="txtName">
            <select wicket:id="department"  />
            <select wicket:id="employee"  />
            <input type="submit" value="submit" wicket:id="submit">
        </form>
    </body>
</html>
  


> Mit freundlichen Grüßen / Best regards 
> 
> BeQIK
> 
> Shalini Verma
> HCTM/ETA
> 
> Tel. +011 (650) 690 9211
> 
> 

Reply via email to