/** * @dataProvider getCompoundOptionTests */ public function testCompoundOption($expectedCompound, $multiple, $expanded) { $type = new ModelType(); $modelManager = $this->getMock('Sonata\\AdminBundle\\Model\\ModelManagerInterface'); $optionResolver = new OptionsResolver(); if (!method_exists('Symfony\\Component\\Form\\AbstractType', 'getBlockPrefix')) { $type->setDefaultOptions($optionResolver); } else { $type->configureOptions($optionResolver); } $options = $optionResolver->resolve(array('model_manager' => $modelManager, 'choices' => array(), 'multiple' => $multiple, 'expanded' => $expanded)); $this->assertSame($expectedCompound, $options['compound']); $this->assertSame('choice', $options['template']); $this->assertSame($multiple, $options['multiple']); $this->assertSame($expanded, $options['expanded']); $this->assertInstanceOf('Sonata\\AdminBundle\\Model\\ModelManagerInterface', $options['model_manager']); $this->assertNull($options['class']); $this->assertNull($options['property']); $this->assertNull($options['query']); $this->assertSame(0, count($options['choices'])); $this->assertSame(0, count($options['preferred_choices'])); $this->assertSame('link_add', $options['btn_add']); $this->assertSame('link_list', $options['btn_list']); $this->assertSame('link_delete', $options['btn_delete']); $this->assertSame('SonataAdminBundle', $options['btn_catalogue']); if (interface_exists('Symfony\\Component\\Form\\ChoiceList\\Loader\\ChoiceLoaderInterface')) { // SF2.7+ $this->assertInstanceOf('Sonata\\AdminBundle\\Form\\ChoiceList\\ModelChoiceLoader', $options['choice_loader']); } else { $this->assertInstanceOf('Sonata\\AdminBundle\\Form\\ChoiceList\\ModelChoiceList', $options['choice_list']); } }
/** * @dataProvider getCompoundOptionTests */ public function testCompoundOption($expectedCompound, $multiple, $expanded) { $type = new ModelType(); $modelManager = $this->getMock('Sonata\\AdminBundle\\Model\\ModelManagerInterface'); $optionResolver = new OptionsResolver(); $type->setDefaultOptions($optionResolver); $options = $optionResolver->resolve(array('model_manager' => $modelManager, 'choices' => array(), 'multiple' => $multiple, 'expanded' => $expanded)); $this->assertEquals($expectedCompound, $options['compound']); $this->assertEquals('choice', $options['template']); $this->assertEquals($multiple, $options['multiple']); $this->assertEquals($expanded, $options['expanded']); $this->assertInstanceOf('Sonata\\AdminBundle\\Model\\ModelManagerInterface', $options['model_manager']); $this->assertNull($options['class']); $this->assertNull($options['property']); $this->assertNull($options['query']); $this->assertEquals(0, count($options['choices'])); $this->assertEquals(0, count($options['preferred_choices'])); $this->assertEquals('link_add', $options['btn_add']); $this->assertEquals('link_list', $options['btn_list']); $this->assertEquals('link_delete', $options['btn_delete']); $this->assertEquals('SonataAdminBundle', $options['btn_catalogue']); $this->assertInstanceOf('Sonata\\AdminBundle\\Form\\ChoiceList\\ModelChoiceList', $options['choice_list']); }
/** * {@inheritDoc} */ public function setDefaultOptions(OptionsResolverInterface $resolver) { parent::setDefaultOptions($resolver); $resolver->setDefaults(['model_manager' => $this->mm]); }