Passed
Push — master ( 6f905d...2edd34 )
by Oleg
02:55
created

DeleteTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 54
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
B testCreateClass() 0 42 1
A setUp() 0 5 1
1
<?php
2
declare(strict_types=1);
3
4
namespace SlayerBirden\DFCodeGeneration\Generator\Tests;
5
6
use PHPUnit\Framework\TestCase;
7
use Prophecy\Argument;
8
use SlayerBirden\DFCodeGeneration\CodeLoader;
9
10
class DeleteTest extends TestCase
11
{
12
    private $provider;
13
    private $factory;
14
15
    protected function setUp()
16
    {
17
        $this->provider = $this->prophesize(EntityProviderInterface::class);
18
        $this->factory = $this->prophesize(EntityProviderFactoryInterface::class);
19
        $this->factory->create(Argument::any())->willReturn($this->provider->reveal());
20
    }
21
22
    public function testCreateClass()
23
    {
24
        $this->provider->getId()->willReturn(1);
25
        $this->provider->getEntitySpec()->willReturn([
26
            [
27
                'name' => 'id',
28
                'type' => 'integer',
29
                'nullable' => false,
30
            ],
31
            [
32
                'name' => 'name',
33
                'type' => 'string',
34
                'nullable' => true,
35
            ],
36
            [
37
                'name' => 'email',
38
                'type' => 'string',
39
                'nullable' => false,
40
            ],
41
        ]);
42
        $this->provider->getPostParams()->willReturn([
43
            'name' => 'bob',
44
            'email' => '[email protected]',
45
        ]);
46
        $this->provider->getParams()->willReturn([
47
            'id' => 1,
48
            'name' => 'bob',
49
            'email' => '[email protected]',
50
        ]);
51
        $this->provider->getBaseName()->willReturn('User');
52
        $this->provider->getShortName()->willReturn('user');
53
        $this->provider->getEntityClassName()->willReturn('Dummy\\User');
54
        $this->provider->hasUnique()->willReturn(true);
55
        $this->provider->getIdName()->willReturn('id');
56
57
        $delete = new Delete('Dummy\\User', $this->factory->reveal());
58
59
        $code = $delete->generate();
60
        $this->assertNotEmpty($code);
61
62
        // asserting php code is valid and can be loaded
63
        CodeLoader::loadCode($code, 'DeleteCest.php');
64
    }
65
}
66