/** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { if (!$this->mapBuilder->hasResource($options['resource_key'])) { throw new ResourceFormTypeException(sprintf('"%s" is not a valid resource key', $options['resource_key'])); } $resource = $this->mapBuilder->getResource($options['resource_key']); $resourceFormBuilder = $resource->getFormBuilder($builder->getFormFactory()); $builder->add($resourceFormBuilder); }
function it_add_form_builder_specified_by_resource_definition(MapBuilder $map, FormBuilder $builder, TextType $resource, FormFactory $factory, FormBuilder $textBuilder) { $map->hasResource('resources.resource_text')->willReturn(true); $map->getResource('resources.resource_text')->shouldBeCalled()->willReturn($resource); $builder->getFormFactory()->willReturn($factory); $resource->getFormBuilder($factory)->shouldBeCalled()->willReturn($textBuilder); $builder->add($textBuilder)->shouldBeCalled(); $this->buildForm($builder, array('resource_key' => 'resources.resource_text')); }