> 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").getVa
> lue());
>  
> Assert.assertNotNull(wicketTester.getTagByWicketId("employee").getValu
> e());
> 
>         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>
>   
> 
> 

Reply via email to