@Override public void setAsText(String text) throws IllegalArgumentException { setValue(new ItemPet(text)); }
@Override protected TestBean createTestBean() { List colours = new ArrayList(); colours.add(Colour.BLUE); colours.add(Colour.RED); colours.add(Colour.GREEN); List pets = new ArrayList(); pets.add(new Pet("Rudiger")); pets.add(new Pet("Spot")); pets.add(new Pet("Fluffy")); pets.add(new Pet("Mufty")); Set someObjects = new HashSet(); someObjects.add(new ItemPet("PET1")); someObjects.add(new ItemPet("PET2")); this.bean = new TestBean(); this.bean.setDate(getDate()); this.bean.setName("Rob Harrop"); this.bean.setJedi(true); this.bean.setSomeBoolean(Boolean.TRUE); this.bean.setStringArray(new String[] {"bar", "foo"}); this.bean.setSomeIntegerArray(new Integer[] {new Integer(2), new Integer(1)}); this.bean.setOtherColours(colours); this.bean.setPets(pets); this.bean.setSomeSet(someObjects); List list = new ArrayList(); list.add("foo"); list.add("bar"); this.bean.setSomeList(list); return this.bean; }
@Test public void collectionOfPetsWithEditor() throws Exception { this.tag.setPath("pets"); this.tag.setValue(new ItemPet("Rudiger")); BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(this.bean, COMMAND_NAME); PropertyEditorSupport editor = new ItemPet.CustomEditor(); bindingResult.getPropertyEditorRegistry().registerCustomEditor(ItemPet.class, editor); getPageContext().getRequest().setAttribute(BindingResult.MODEL_KEY_PREFIX + COMMAND_NAME, bindingResult); int result = this.tag.doStartTag(); assertEquals(Tag.SKIP_BODY, result); String output = getOutput(); // wrap the output so it is valid XML output = "<doc>" + output + "</doc>"; SAXReader reader = new SAXReader(); Document document = reader.read(new StringReader(output)); Element checkboxElement = (Element) document.getRootElement().elements().get(0); assertEquals("input", checkboxElement.getName()); assertEquals("radio", checkboxElement.attribute("type").getValue()); assertEquals("pets", checkboxElement.attribute("name").getValue()); assertEquals("Rudiger", checkboxElement.attribute("value").getValue()); assertEquals("checked", checkboxElement.attribute("checked").getValue()); }
@Test public void collectionOfPetsWithEditor() throws Exception { this.tag.setPath("pets"); this.tag.setValue(new ItemPet("Rudiger")); BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(this.bean, COMMAND_NAME); PropertyEditorSupport editor = new ItemPet.CustomEditor(); bindingResult.getPropertyEditorRegistry().registerCustomEditor(ItemPet.class, editor); getPageContext().getRequest().setAttribute(BindingResult.MODEL_KEY_PREFIX + COMMAND_NAME, bindingResult); int result = this.tag.doStartTag(); assertEquals(Tag.SKIP_BODY, result); String output = getOutput(); // wrap the output so it is valid XML output = "<doc>" + output + "</doc>"; SAXReader reader = new SAXReader(); Document document = reader.read(new StringReader(output)); Element checkboxElement = (Element) document.getRootElement().elements().get(0); assertEquals("input", checkboxElement.getName()); assertEquals("checkbox", checkboxElement.attribute("type").getValue()); assertEquals("pets", checkboxElement.attribute("name").getValue()); assertEquals("Rudiger", checkboxElement.attribute("value").getValue()); assertEquals("checked", checkboxElement.attribute("checked").getValue()); }