Completed
Push — bulk-action-no-bc-break ( fbd3c4 )
by Kamil
22:46
created

TwigBulkActionGridRendererSpec::let()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
/*
4
 * This file is part of the Sylius package.
5
 *
6
 * (c) Paweł Jędrzejewski
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace spec\Sylius\Bundle\GridBundle\Renderer;
15
16
use PhpSpec\ObjectBehavior;
17
use Prophecy\Argument;
18
use Sylius\Bundle\GridBundle\Form\Registry\FormTypeRegistryInterface;
19
use Sylius\Component\Grid\Definition\Action;
20
use Sylius\Component\Grid\Definition\Field;
21
use Sylius\Component\Grid\FieldTypes\FieldTypeInterface;
22
use Sylius\Component\Grid\Filter\StringFilter;
23
use Sylius\Component\Grid\Renderer\BulkActionGridRendererInterface;
24
use Sylius\Component\Grid\Renderer\GridRendererInterface;
25
use Sylius\Component\Grid\View\GridView;
26
use Sylius\Component\Grid\View\GridViewInterface;
27
use Sylius\Component\Registry\ServiceRegistryInterface;
28
use Symfony\Component\Form\FormFactoryInterface;
29
use Symfony\Component\OptionsResolver\OptionsResolver;
30
31
final class TwigBulkActionGridRendererSpec extends ObjectBehavior
32
{
33
    function let(\Twig_Environment $twig): void
34
    {
35
        $this->beConstructedWith($twig, ['delete' => 'SyliusGridBundle:BulkAction:_delete.html.twig']);
36
    }
37
38
    function it_is_a_bulk_action_grid_renderer(): void
39
    {
40
        $this->shouldImplement(BulkActionGridRendererInterface::class);
41
    }
42
43
    function it_uses_twig_to_render_the_bulk_action(
44
        \Twig_Environment $twig,
45
        GridViewInterface $gridView,
46
        Action $bulkAction
47
    ): void {
48
        $bulkAction->getType()->willReturn('delete');
49
        $bulkAction->getOptions()->willReturn([]);
50
51
        $twig
52
            ->render('SyliusGridBundle:BulkAction:_delete.html.twig', [
53
                'grid' => $gridView,
54
                'action' => $bulkAction,
55
                'data' => null,
56
            ])
57
            ->willReturn('<a href="#">Delete</a>')
58
        ;
59
60
        $this->renderBulkAction($gridView, $bulkAction)->shouldReturn('<a href="#">Delete</a>');
61
    }
62
63
    function it_throws_an_exception_if_template_is_not_configured_for_given_bulk_action_type(
64
        GridViewInterface $gridView,
65
        Action $bulkAction
66
    ): void {
67
        $bulkAction->getType()->willReturn('foo');
68
69
        $this
70
            ->shouldThrow(new \InvalidArgumentException('Missing template for bulk action type "foo".'))
71
            ->during('renderBulkAction', [$gridView, $bulkAction])
72
        ;
73
    }
74
}
75