Completed
Push — master ( d2e735...e0ca75 )
by
unknown
06:42 queued 10s
created

tests/Filter/ChoiceFilterTest.php (4 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Sonata Project package.
7
 *
8
 * (c) Thomas Rabaix <[email protected]>
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Sonata\DoctrineMongoDBAdminBundle\Tests\Filter;
15
16
use Sonata\AdminBundle\Form\Type\Filter\ChoiceType;
17
use Sonata\DoctrineMongoDBAdminBundle\Datagrid\ProxyQuery;
18
use Sonata\DoctrineMongoDBAdminBundle\Filter\ChoiceFilter;
19
20
class ChoiceFilterTest extends FilterWithQueryBuilderTest
21
{
22
    public function testFilterEmpty(): void
23
    {
24
        $filter = new ChoiceFilter();
25
        $filter->initialize('field_name', ['field_options' => ['class' => 'FooBar']]);
26
27
        $builder = new ProxyQuery($this->getQueryBuilder());
0 ignored issues
show
$this->getQueryBuilder() is of type object<PHPUnit\Framework\MockObject\MockObject>, but the function expects a object<Doctrine\ODM\MongoDB\Query\Builder>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
28
29
        $filter->filter($builder, 'alias', 'field', null);
30
        $filter->filter($builder, 'alias', 'field', 'all');
31
        $filter->filter($builder, 'alias', 'field', []);
32
33
        $this->assertFalse($filter->isActive());
34
    }
35
36
    public function testFilterArray(): void
37
    {
38
        $filter = new ChoiceFilter();
39
        $filter->initialize('field_name', ['field_options' => ['class' => 'FooBar']]);
40
41
        $builder = new ProxyQuery($this->getQueryBuilder());
0 ignored issues
show
$this->getQueryBuilder() is of type object<PHPUnit\Framework\MockObject\MockObject>, but the function expects a object<Doctrine\ODM\MongoDB\Query\Builder>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
42
43
        $filter->filter($builder, 'alias', 'field', ['type' => ChoiceType::TYPE_CONTAINS, 'value' => ['1', '2']]);
44
45
        $this->assertTrue($filter->isActive());
46
    }
47
48
    public function testFilterScalar(): void
49
    {
50
        $filter = new ChoiceFilter();
51
        $filter->initialize('field_name', ['field_options' => ['class' => 'FooBar']]);
52
53
        $builder = new ProxyQuery($this->getQueryBuilder());
0 ignored issues
show
$this->getQueryBuilder() is of type object<PHPUnit\Framework\MockObject\MockObject>, but the function expects a object<Doctrine\ODM\MongoDB\Query\Builder>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
54
55
        $filter->filter($builder, 'alias', 'field', ['type' => ChoiceType::TYPE_CONTAINS, 'value' => '1']);
56
57
        $this->assertTrue($filter->isActive());
58
    }
59
60
    public function testFilterZero(): void
61
    {
62
        $filter = new ChoiceFilter();
63
        $filter->initialize('field_name', ['field_options' => ['class' => 'FooBar']]);
64
65
        $builder = new ProxyQuery($this->getQueryBuilder());
0 ignored issues
show
$this->getQueryBuilder() is of type object<PHPUnit\Framework\MockObject\MockObject>, but the function expects a object<Doctrine\ODM\MongoDB\Query\Builder>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
66
67
        $filter->filter($builder, 'alias', 'field', ['type' => ChoiceType::TYPE_CONTAINS, 'value' => 0]);
68
69
        $this->assertTrue($filter->isActive());
70
    }
71
}
72