diff --git a/Tests/Util/FormBuilderIteratorTest.php b/Tests/Util/FormBuilderIteratorTest.php new file mode 100644 index 0000000000..d6c564db08 --- /dev/null +++ b/Tests/Util/FormBuilderIteratorTest.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Sonata\AdminBundle\Tests\Util; + +use Sonata\AdminBundle\Util\FormBuilderIterator; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Symfony\Component\Form\FormBuilder; +use Symfony\Component\Form\FormFactoryInterface; + +/** + * @author Mike Meier + */ +class FormBuilderIteratorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var EventDispatcherInterface + */ + private $dispatcher; + + /** + * @var FormFactoryInterface + */ + private $factory; + + /** + * @var FormBuilder + */ + private $builder; + + protected function setUp() + { + $this->dispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface'); + $this->factory = $this->getMock('Symfony\Component\Form\FormFactoryInterface'); + $this->builder = new TestFormBuilder('name', null, $this->dispatcher, $this->factory); + $this->factory->expects($this->any())->method('createNamedBuilder')->willReturn($this->builder); + } + + protected function tearDown() + { + $this->dispatcher = null; + $this->factory = null; + $this->builder = null; + } + + public function testConstructor() + { + new FormBuilderIterator($this->builder); + } + + public function testGetChildren() + { + $this->builder->add('name', 'text'); + $iterator = new FormBuilderIterator($this->builder); + $this->assertInstanceOf(get_class($iterator), $iterator->getChildren()); + } + + public function testHasChildren() + { + $this->builder->add('name', 'text'); + $iterator = new FormBuilderIterator($this->builder); + $this->assertTrue($iterator->hasChildren()); + } +} + +class TestFormBuilder extends FormBuilder +{ +}