Passed
Pull Request — master (#27)
by Iakov
04:00
created

ValidateFormStepTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 42
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testRequiresBefore() 0 4 1
A testExecute() 0 15 1
A testExecuteFailure() 0 16 1
1
<?php
2
3
namespace Kami\ApiCoreBundle\Tests\RequestProcessor\Step\Common;
4
5
use Kami\ApiCoreBundle\RequestProcessor\Step\Common\HandleRequestStep;
6
use Kami\ApiCoreBundle\RequestProcessor\Step\Common\ValidateFormStep;
7
use PHPUnit\Framework\TestCase;
8
use Symfony\Component\Form\Form;
9
use Symfony\Component\HttpFoundation\Request;
10
use Kami\ApiCoreBundle\RequestProcessor\ProcessorResponse;
11
12
class ValidateFormStepTest extends TestCase
13
{
14
15
    public function testRequiresBefore()
16
    {
17
        $step = new ValidateFormStep();
18
        $this->assertEquals([HandleRequestStep::class], $step->requiresBefore());
19
    }
20
21
    public function testExecute()
22
    {
23
        $formMock = $this->createMock(Form::class);
24
        $formMock->expects($this->any())->method('isValid')->willReturn(true);
25
        $step = new ValidateFormStep();
26
        $request = new Request();
27
        $step->setRequest($request);
28
        $step->setPreviousResponse(new ProcessorResponse($request, [
29
            'form' => $formMock
30
        ]));
31
32
        $response = $step->execute();
33
        $this->assertInstanceOf(ProcessorResponse::class, $response);
34
35
        $this->assertEquals(1, count($response->getData()));
36
    }
37
38
    public function testExecuteFailure()
39
    {
40
        $formMock = $this->createMock(Form::class);
41
        $formMock->expects($this->any())->method('isValid')->willReturn(false);
42
        $step = new ValidateFormStep();
43
        $request = new Request();
44
        $step->setRequest($request);
45
        $step->setPreviousResponse(new ProcessorResponse($request, [
46
            'form' => $formMock
47
        ]));
48
49
        $response = $step->execute();
50
        $this->assertInstanceOf(ProcessorResponse::class, $response);
51
52
        $this->assertEquals(400, $response->getStatus());
53
        $this->assertArrayHasKey('response_data', $response->getData());
54
    }
55
}
56