StrategyFactory   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
eloc 11
dl 0
loc 16
rs 10
c 0
b 0
f 0
ccs 6
cts 6
cp 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A create() 0 14 3
1
<?php
2
3
namespace linkprofit\Chance\Strategies;
4
5
use InvalidArgumentException;
6
use linkprofit\Chance\ValueObjects\Percent;
7
use linkprofit\Chance\ValueObjects\Ratio;
8
9
/**
10
 * Фабрика инициализирующая стратегию для расчёта вероятности
11
 */
12
class StrategyFactory
13 6
{
14
    public function create($valueObject): CalculationStrategyInterface
15
    {
16 6
        switch (true) {
17 5
            case $valueObject instanceof Ratio:
18 5
                $result = new RatioStrategy($valueObject);
19
                break;
20 1
            case $valueObject instanceof Percent:
21
                $result = new PercentStrategy($valueObject);
22
                break;
23 5
            default:
24
                throw new InvalidArgumentException('Unknown value object type');
25
        }
26
27
        return $result;
28
    }
29
}
30