$field->
submit('Bar'
);
$this->
assertEquals(['Foo' =>
new ChoiceView($entity1, 'Foo', 'Foo'
), 'Bar' =>
new ChoiceView($entity2, 'Bar', 'Bar'
)],
$field->
createView()->vars
['choices'
]);
$this->
assertTrue($field->
isSynchronized(), 'Field should be synchronized.'
);
$this->
assertSame($entity2,
$field->
getData(), 'Entity should be loaded by custom value.'
);
$this->
assertSame('Bar',
$field->
getViewData());
} public function testOverrideChoicesValuesWithCallable() { $entity1 =
new GroupableEntity(1, 'Foo', 'BazGroup'
);
$entity2 =
new GroupableEntity(2, 'Bar', 'BooGroup'
);
$this->
persist([$entity1,
$entity2]);
$field =
$this->factory->
createNamed('name',
static::TESTED_TYPE, null,
[ 'em' => 'default',
'class' => self::ITEM_GROUP_CLASS,
'choice_label' => 'name',
'choice_value' =>
function DGroupableEntity
$entity = null
) { if (null ===
$entity) { return '';
}