AbstractFizzBuzzRuleTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Dependencies 2
Metric Value
wmc 2
cbo 2
dl 0
loc 38
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testGenerateValidAnswer() 0 4 1
A testIrrelevantRule() 0 4 1
getRule() 0 1 ?
getValidNumbers() 0 1 ?
getIrrelevantNumbers() 0 1 ?
1
<?php
2
3
namespace Tests\Unit\FizzBuzzDomain\Rules;
4
5
/**
6
 * Abstract FizzBuzz Rule Test
7
 */
8
abstract class AbstractFizzBuzzRuleTest extends \PHPUnit_Framework_TestCase
9
{
10
    /**
11
     * @param int $number
12
     *
13
     * @dataProvider getValidNumbers
14
     */
15
    public function testGenerateValidAnswer($number)
16
    {
17
        $this->assertTrue($this->getRule()->isSatisfiedBy($this->getRule()->generateValidAnswer($number), $number));
18
    }
19
20
    /**
21
     * @param int $number
22
     *
23
     * @dataProvider getIrrelevantNumbers
24
     * @expectedException \GameDomain\Exceptions\IrrelevantRuleException
25
     */
26
    public function testIrrelevantRule($number)
27
    {
28
        $this->getRule()->generateValidAnswer($number);
29
    }
30
31
    /**
32
     * @return \GameDomain\Rule\AbstractRule
33
     */
34
    abstract public function getRule();
35
36
    /**
37
     * @return array
38
     */
39
    abstract public function getValidNumbers();
40
41
    /**
42
     * @return array
43
     */
44
    abstract public function getIrrelevantNumbers();
45
}
46