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

FakerValueProvider   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Test Coverage

Coverage 70%

Importance

Changes 0
Metric Value
dl 0
loc 37
ccs 14
cts 20
cp 0.7
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 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