Completed
Push — master ( 81c6e7...6c71bd )
by Piotr
02:30
created

ResourceRepositoryContextSpec   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 72
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Importance

Changes 0
Metric Value
wmc 7
lcom 0
cbo 7
dl 0
loc 72
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * (c) FSi sp. z o.o. <[email protected]>
5
 *
6
 * For the full copyright and license information, please view the LICENSE
7
 * file that was distributed with this source code.
8
 */
9
10
namespace spec\FSi\Bundle\AdminBundle\Admin\ResourceRepository\Context;
11
12
use PhpSpec\ObjectBehavior;
13
use Prophecy\Argument;
14
use Symfony\Component\HttpFoundation\Response;
15
16
class ResourceRepositoryContextSpec extends ObjectBehavior
17
{
18
    /**
19
     * @param \FSi\Bundle\AdminBundle\Admin\Context\Request\HandlerInterface $handler
20
     * @param \FSi\Bundle\AdminBundle\Doctrine\Admin\ResourceElement $element
21
     * @param \FSi\Bundle\ResourceRepositoryBundle\Repository\MapBuilder $builder
22
     * @param \FSi\Bundle\AdminBundle\Admin\ResourceRepository\ResourceFormBuilder $resourceFormBuilder
23
     * @param \Symfony\Component\Form\Form $form
24
     */
25
    function let($handler, $element, $builder, $resourceFormBuilder, $form)
26
    {
27
        $builder->getMap()->willReturn(array(
28
            'resources' => array()
29
        ));
30
        $element->getResourceFormOptions()->willReturn(array());
31
        $element->getKey()->willReturn('resources');
32
        $resourceFormBuilder->build($element)->willReturn($form);
33
34
        $this->beConstructedWith(array($handler), $resourceFormBuilder);
35
        $this->setElement($element);
36
    }
37
38
    function it_is_context()
39
    {
40
        $this->shouldBeAnInstanceOf('FSi\Bundle\AdminBundle\Admin\Context\ContextInterface');
41
    }
42
43
    function it_have_array_data()
44
    {
45
        $this->getData()->shouldBeArray();
46
        $this->getData()->shouldHaveKeyInArray('form');
47
        $this->getData()->shouldHaveKeyInArray('element');
48
    }
49
50
    /**
51
     * @param \FSi\Bundle\AdminBundle\Admin\Context\Request\HandlerInterface $handler
52
     * @param \Symfony\Component\HttpFoundation\Request $request
53
     */
54
    function it_handle_request_with_request_handlers($handler, $request)
55
    {
56
        $handler->handleRequest(Argument::type('FSi\Bundle\AdminBundle\Event\FormEvent'), $request)
57
            ->shouldBeCalled();
58
59
        $this->handleRequest($request)->shouldReturn(null);
60
    }
61
62
    /**
63
     * @param \FSi\Bundle\AdminBundle\Admin\Context\Request\HandlerInterface $handler
64
     * @param \Symfony\Component\HttpFoundation\Request $request
65
     */
66
    function it_return_response_from_handler($handler, $request)
67
    {
68
        $handler->handleRequest(Argument::type('FSi\Bundle\AdminBundle\Event\FormEvent'), $request)
69
            ->willReturn(new Response());
70
71
        $this->handleRequest($request)
72
            ->shouldReturnAnInstanceOf('Symfony\Component\HttpFoundation\Response');
73
    }
74
75
    public function getMatchers()
76
    {
77
        return array(
78
            'haveKeyInArray' => function($subject, $key) {
79
                if (!is_array($subject)) {
80
                    return false;
81
                }
82
83
                return array_key_exists($key, $subject);
84
            },
85
        );
86
    }
87
}
88