Completed
Push — master ( 6ffec3...6f905d )
by Oleg
06:32
created

FakerValueProvider::getValue()   B

Complexity

Conditions 5
Paths 5

Size

Total Lines 20
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 30

Importance

Changes 0
Metric Value
cc 5
eloc 16
nc 5
nop 2
dl 0
loc 20
ccs 0
cts 16
cp 0
crap 30
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
    public function __construct(string $entityClassName, IdHandlerInterface $idHandler)
20
    {
21
        $this->entityClassName = $entityClassName;
22
        $this->idHandler = $idHandler;
23
    }
24
25
    public function getValue(string $type, bool $generated)
26
    {
27
        $faker = Factory::create();
28
        $value = null;
29
        switch ($type) {
30
            case 'string':
31
                $value = $faker->word;
32
                break;
33
            case 'integer':
34
                $value = $this->idHandler->generateIntId($this->entityClassName, $generated);
35
                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
        return $value;
45
    }
46
}
47