瀏覽代碼

Provide FormBuilderIteratorTest

More code coverage for Form components. Checks if children are accessible.
Mike Meier 9 年之前
父節點
當前提交
3023dea09c
共有 1 個文件被更改,包括 76 次插入0 次删除
  1. 76 0
      Tests/Util/FormBuilderIteratorTest.php

+ 76 - 0
Tests/Util/FormBuilderIteratorTest.php

@@ -0,0 +1,76 @@
+<?php
+
+/*
+ * This file is part of the Sonata Project package.
+ *
+ * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
+ *
+ * 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 <mike.meier@ibrows.ch>
+ */
+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
+{
+}