Thomas Rabaix 13 лет назад
Родитель
Сommit
a919a41f74
2 измененных файлов с 105 добавлено и 1 удалено
  1. 1 1
      Tests/Filter/FilterFactoryTest.php
  2. 104 0
      Tests/Filter/FilterTest.php

+ 1 - 1
Tests/Filter/FilterFactoryTest.php

@@ -9,7 +9,7 @@
  * file that was distributed with this source code.
  */
 
-namespace Sonata\AdminBundle\Tests\Filter\ORM;
+namespace Sonata\AdminBundle\Tests\Filter;
 
 use Sonata\AdminBundle\Filter\FilterFactory;
 

+ 104 - 0
Tests/Filter/FilterTest.php

@@ -0,0 +1,104 @@
+<?php
+
+/*
+ * This file is part of the Sonata 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\Filter;
+
+use Sonata\AdminBundle\Filter\Filter;
+
+class FilterTest_Filter extends Filter
+{
+    function filter($queryBuilder, $alias, $field, $value)
+    {
+    }
+
+    function apply($query, $value)
+    {
+    }
+
+    function getDefaultOptions()
+    {
+        return array(
+            'foo' => 'bar'
+        );
+    }
+
+    function getRenderSettings()
+    {
+    }
+}
+
+class FilterTest extends \PHPUnit_Framework_TestCase
+{
+    public function testFilter()
+    {
+        $filter = new FilterTest_Filter;
+
+        $this->assertEquals('text', $filter->getFieldType());
+        $this->assertEquals(array('required' => false), $filter->getFieldOptions());
+        $this->assertNull($filter->getLabel());
+
+        $options = array(
+            'label' => 'foo',
+            'field_type' => 'integer',
+            'field_options' => array('required' => true),
+            'field_name' => 'name'
+        );
+
+        $filter->setOptions($options);
+
+        $this->assertEquals('foo', $filter->getOption('label'));
+        $this->assertEquals('foo', $filter->getLabel());
+
+        $expected = $options;
+        $expected['foo'] = 'bar';
+
+        $this->assertEquals($expected, $filter->getOptions());
+        $this->assertEquals('name', $filter->getFieldName());
+
+        $this->assertEquals('default', $filter->getOption('fake', 'default'));
+
+        $filter->setValue(42);
+        $this->assertEquals(42, $filter->getValue());
+
+        $filter->setCondition('>');
+        $this->assertEquals('>', $filter->getCondition());
+    }
+
+    public function testInitialize()
+    {
+        $filter = new FilterTest_Filter;
+        $filter->initialize('name', array(
+           'field_name' => 'bar'
+        ));
+
+        $this->assertEquals('name', $filter->getName());
+        $this->assertEquals('bar', $filter->getOption('field_name'));
+        $this->assertEquals('bar', $filter->getFieldName());
+    }
+
+    public function testLabel()
+    {
+        $filter = new FilterTest_Filter;
+        $filter->setLabel('foo');
+
+        $this->assertEquals('foo', $filter->getLabel());
+    }
+
+    /**
+     * @expectedException RunTimeException
+     */
+    public function testExceptionOnNonDefinedFieldName()
+    {
+        $filter = new FilterTest_Filter;
+
+        $filter->getFieldName();
+    }
+}