Passed
Pull Request — master (#9)
by Iakov
03:39
created

BuildSelectQueryStepTest::testExecute()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 11
nc 1
nop 0
dl 0
loc 15
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Kami\ApiCoreBundle\Tests\RequestProcessor\Step\Common;
4
5
use Doctrine\Common\Annotations\Reader;
6
use Doctrine\ORM\QueryBuilder;
7
use Kami\ApiCoreBundle\RequestProcessor\ProcessorResponse;
8
use Kami\ApiCoreBundle\RequestProcessor\Step\Common\BuildSelectQueryStep;
9
use Kami\ApiCoreBundle\RequestProcessor\Step\Common\GetQueryBuilderStep;
10
use Kami\ApiCoreBundle\Security\AccessManager;
11
use Kami\ApiCoreBundle\Tests\Entity\MyModel;
12
use PHPUnit\Framework\TestCase;
13
use Symfony\Component\HttpFoundation\Request;
14
15
class BuildSelectQueryStepTest extends TestCase
16
{
17
18
    public function testCanBeConstructed()
19
    {
20
        $accessManager = $this->createMock(AccessManager::class);
21
        $reader = $this->createMock(Reader::class);
22
23
        $step = new BuildSelectQueryStep($accessManager, $reader);
24
        $this->assertInstanceOf(BuildSelectQueryStep::class, $step);
25
    }
26
27
    public function testRequiresBefore()
28
    {
29
        $accessManager = $this->createMock(AccessManager::class);
30
        $reader = $this->createMock(Reader::class);
31
32
        $step = new BuildSelectQueryStep($accessManager, $reader);
33
        $this->assertEquals([GetQueryBuilderStep::class], $step->requiresBefore());
34
    }
35
36
    public function testExecute()
37
    {
38
        $readerMock = $this->createMock(Reader::class);
39
        $accessManagerMock = $this->createMock(AccessManager::class);
40
        $request = new Request();
41
        $step = new BuildSelectQueryStep($accessManagerMock, $readerMock);
42
        $step->setRequest($request);
43
        $step->setPreviousResponse(new ProcessorResponse($request, [
44
            'reflection' => new \ReflectionClass(MyModel::class),
45
            'query_builder' => $this->createMock(QueryBuilder::class)
46
        ]));
47
48
        $response = $step->execute();
49
        $this->assertInstanceOf(ProcessorResponse::class, $response);
50
        $this->assertInstanceOf(QueryBuilder::class, $response->getData()['query_builder']);
51
    }
52
}
53