Completed
Push — master ( 2edd34...81ce9d )
by Oleg
02:56
created

FakerValueProvider::getValue()   B

Complexity

Conditions 5
Paths 5

Size

Total Lines 20
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 6.3183

Importance

Changes 0
Metric Value
cc 5
eloc 16
nc 5
nop 2
dl 0
loc 20
ccs 10
cts 16
cp 0.625
crap 6.3183
rs 8.8571
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace SlayerBirden\DFCodeGeneration\Generator\Tests;
5
6
use Faker\Factory;
7
8
class FakerValueProvider implements ValueProviderInterface
9
{
10
    /**
11
     * @var string
12
     */
13
    private $entityClassName;
14
    /**
15
     * @var IdHandlerInterface
16
     */
17
    private $idHandler;
18
19 9
    public function __construct(string $entityClassName, IdHandlerInterface $idHandler)
20
    {
21 9
        $this->entityClassName = $entityClassName;
22 9
        $this->idHandler = $idHandler;
23 9
    }
24
25 3
    public function getValue(string $type, bool $generated)
26
    {
27 3
        $faker = Factory::create();
28 3
        $value = null;
29
        switch ($type) {
30 3
            case 'string':
31 3
                $value = $faker->word;
32 3
                break;
33 3
            case 'integer':
34 3
                $value = $this->idHandler->generateIntId($this->entityClassName, $generated);
35 3
                break;
36
            case 'float':
37
                $value = $faker->randomFloat(2, 1, 20);
38
                break;
39
            case 'datetime':
40
                $value = $faker->dateTime();
41
                break;
42
        }
43
44 3
        return $value;
45
    }
46
}
47