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());
 }