@Test(expected = IllegalArgumentException.class) public void testSetCustomEditorsWithInvalidType() throws Exception { DefaultPropertyEditorRegistrar mapper = new DefaultPropertyEditorRegistrar(); mapper.setCustomEditors(Collections.singletonMap(new Object(), new CustomNumberEditor(Long.class, true))); }
@Test(expected = IllegalArgumentException.class) public void testSetCustomEditorsWithInvalidTypeName() throws Exception { DefaultPropertyEditorRegistrar mapper = new DefaultPropertyEditorRegistrar(); mapper.setCustomEditors(Collections.singletonMap("FOO", new CustomNumberEditor(Long.class, true))); }
@Test public void testSetCustomEditorsWithStringTypeName() throws Exception { DefaultPropertyEditorRegistrar mapper = new DefaultPropertyEditorRegistrar(); mapper.setCustomEditors(Collections.singletonMap("java.lang.Long", new CustomNumberEditor(Long.class, true))); BeanWithIntArray result = new BeanWithIntArray(); BeanWrapperImpl wrapper = new BeanWrapperImpl(result); mapper.registerCustomEditors(wrapper); wrapper.setPropertyValues(new MutablePropertyValues(Collections.singletonMap("number", "123"))); assertEquals(123L, result.number); }
@Test public void testIntArray() throws Exception { DefaultPropertyEditorRegistrar mapper = new DefaultPropertyEditorRegistrar(); BeanWithIntArray result = new BeanWithIntArray(); mapper.setCustomEditors(Collections.singletonMap(int[].class, new IntArrayPropertyEditor())); BeanWrapperImpl wrapper = new BeanWrapperImpl(result); mapper.registerCustomEditors(wrapper); PropertiesEditor editor = new PropertiesEditor(); editor.setAsText("numbers=1,2,3, 4"); Properties props = (Properties) editor.getValue(); wrapper.setPropertyValues(props); assertEquals(4, result.numbers[3]); }