FizzNumberRule   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Coupling/Cohesion

Dependencies 3
Metric Value
wmc 2
cbo 3
dl 0
loc 17
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A generateValidAnswer() 0 8 2
1
<?php
2
3
namespace FizzBuzzDomain\Rules;
4
5
use GameDomain\Exceptions\IrrelevantRuleException;
6
use GameDomain\Round\Step\Answer;
7
use GameDomain\Rule\AbstractRule;
8
9
/**
10
 * Fizz Number Rule
11
 */
12
final class FizzNumberRule extends AbstractRule
13
{
14
    const TRIGGER_NUMBER = 3;
15
    const VALID_ANSWER = 'Fizz';
16
17
    /**
18
     * {@inheritDoc}
19
     */
20
    public function generateValidAnswer($number)
21
    {
22
        if (0 === ($number % static::TRIGGER_NUMBER)) {
23
            return new Answer(static::VALID_ANSWER);
24
        }
25
26
        throw new IrrelevantRuleException();
27
    }
28
}
29