Passed
Push — main ( 6040c1...3e8a32 )
by Jenny
04:53
created

DiceGameTest::testCreateDiceGame()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 4
rs 10
1
<?php
2
3
namespace App\Dice;
4
5
use App\Dice\DiceGame;
6
use PHPUnit\Framework\TestCase;
7
8
/**
9
 * Test cases for class DiceGame.
10
 */
11
class DiceGameTest extends TestCase
12
{
13
    /**
14
     * Construct object and verify that the object has the expected
15
     * properties, use no arguments.
16
     */
17
    public function testCreateDiceGame(): void
18
    {
19
        $diceGame = new DiceGame();
20
        $this->assertInstanceOf("\App\Dice\DiceGame", $diceGame);
21
    }
22
23
    /**
24
     * Create a hand of dices with mixed values images/integers.
25
     */
26
    public function testCreateMixedHand(): void
27
    {
28
        $int = 4;
29
        $diceGame = new DiceGame();
30
        $hand = $diceGame->rollMixedHand($int);
31
32
        $this->assertInstanceOf("\App\Dice\DiceHand", $hand);
33
    }
34
35
    /**
36
     * Create a hand of dices.
37
     */
38
    public function testCreateHand(): void
39
    {
40
        $int = 3;
41
        $diceGame = new DiceGame();
42
        $hand = $diceGame->rollHand($int);
43
44
        $this->assertInstanceOf("\App\Dice\DiceHand", $hand);
45
    }
46
47
    /**
48
     * Roll hand of several dices.
49
     */
50
    public function testRollHand(): void
51
    {
52
        $int = 4;
53
        $game = new DiceGame();
54
55
        $res = $game->rollSeveral($int);
56
57
        $this->assertCount($int, $res);
58
    }
59
60
    /**
61
     * Run a round of game, with mocked result.
62
     */
63
    public function testGameRound(): void
64
    {
65
        $stub = $this->createMock(DiceHand::class);
66
        $stub->method('getValues')
67
            ->willReturn([3, 4, 7]);
68
69
        $game = new DiceGame();
70
        $res = $game->gameRound($stub);
71
        $exp = 14;
72
73
        $this->assertEquals($exp, $res);
74
    }
75
76
}
77