Passed
Branch factorize (4cfa74)
by Samuel
01:51
created

FreqTransformer::validate()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 9.4285
cc 2
eloc 3
nc 2
nop 1
crap 2
1
<?php
2
3
namespace Recurrence\Rrule\Transformer;
4
5
use Recurrence\Model\Frequency;
6
use Recurrence\Rrule\Extractor\FreqExtractor;
7
use Recurrence\Model\Exception\InvalidRruleException;
8
use Recurrence\Model\Exception\InvalidFrequencyOptionException;
9
10
/**
11
 * Class FreqTransformer
12
 * @package Recurrence\RruleTransformer
13
 */
14
class FreqTransformer implements RruleTransformerInterface
15
{
16
    /**
17
     * @param array $values
18
     * @throws InvalidRruleException
19
     * @return Frequency
20
     */
21
    public function transform(array $values)
22
    {
23 1
        $this->validate($values);
24
25
        try {
26 1
            return new Frequency($values[0]);
27 1
        } catch (InvalidFrequencyOptionException $e) {
28 1
            throw new InvalidRruleException(FreqExtractor::RRULE_PARAMETER, (string) $values[0]);
29
        }
30
    }
31
32
    /**
33
     * @param array $values
34
     * @throws InvalidRruleException
35
     */
36
    protected function validate(array $values)
37
    {
38 1
        if (!isset($values[0])) {
39 1
            throw new InvalidRruleException(FreqExtractor::RRULE_PARAMETER);
40
        }
41 1
    }
42
}
43