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

FakerValueProvider::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 4
ccs 3
cts 3
cp 1
crap 1
rs 10
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