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

FakerValueProvider   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 37
ccs 0
cts 20
cp 0
rs 10
c 0
b 0
f 0
wmc 6

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
B getValue() 0 20 5
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