private RelaxedDataBinder getBinder(Object target, String namePrefix) { RelaxedDataBinder binder = new RelaxedDataBinder(target, namePrefix); binder.setIgnoreUnknownFields(false); LocalValidatorFactoryBean validatorFactoryBean = new LocalValidatorFactoryBean(); validatorFactoryBean.afterPropertiesSet(); binder.setValidator(validatorFactoryBean); binder.setConversionService(this.conversionService); return binder; }
@Test public void testOnlyTopLevelFields() throws Exception { VanillaTarget target = new VanillaTarget(); RelaxedDataBinder binder = getBinder(target, null); binder.setIgnoreUnknownFields(false); binder.setIgnoreNestedProperties(true); BindingResult result = bind(binder, target, "foo: bar\n" + "value: 123\n" + "nested.bar: spam"); assertEquals(123, target.getValue()); assertEquals("bar", target.getFoo()); assertEquals(0, result.getErrorCount()); }
@Test public void testMixed() throws Exception { // gh-3385 VanillaTarget target = new VanillaTarget(); RelaxedDataBinder binder = getBinder(target, "test"); MutablePropertyValues values = new MutablePropertyValues(); values.add("test.FOO_BAZ", "boo"); values.add("test.foo-baz", "bar"); binder.bind(values); assertEquals("boo", target.getFooBaz()); }
@Test public void testAllowedFields() throws Exception { VanillaTarget target = new VanillaTarget(); RelaxedDataBinder binder = getBinder(target, null); binder.setAllowedFields("foo"); binder.setIgnoreUnknownFields(false); BindingResult result = bind(binder, target, "foo: bar\n" + "value: 123\n" + "bar: spam"); assertEquals(0, target.getValue()); assertEquals("bar", target.getFoo()); assertEquals(0, result.getErrorCount()); }