BlackJackRulesTest   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 31
dl 0
loc 60
rs 10
c 1
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testDetermineResultPlayerWins() 0 15 1
A testDetermineResultPlayerLoss() 0 15 1
A testDetermineResultDraw() 0 15 1
1
<?php
2
3
namespace App\Tests\Card;
4
5
use PHPUnit\Framework\TestCase;
6
use App\Card\CardHand;
7
use App\Card\Card;
8
use App\Card\BlackJackRules;
9
10
/**
11
 * Test cases for class Black Jack Rules.
12
 */
13
class BlackJackRulesTest extends TestCase
14
{
15
    /**
16
     * Test Determine Results when player loses.
17
     */
18
    public function testDetermineResultPlayerLoss(): void
19
    {
20
        $player = new CardHand();
21
        $player->addCard(new Card('Hearts', '10'));
22
        $player->addCard(new Card('Diamonds', '7'));
23
24
        $bank = new CardHand();
25
        $bank->addCard(new Card('Spades', '10'));
26
        $bank->addCard(new Card('Hearts', '9'));
27
28
        $rules = new BlackJackRules();
29
        $result = $rules->determineResult($player, $bank, 0);
30
31
        $this->assertEquals('loss', $result['result']);
32
        $this->assertStringContainsString('Du förlorade!', $result['message']);
33
    }
34
35
    /**
36
     * Test Determine Results when player wins.
37
     */
38
    public function testDetermineResultPlayerWins(): void
39
    {
40
        $player = new CardHand();
41
        $player->addCard(new Card('Hearts', '10'));
42
        $player->addCard(new Card('Diamonds', '9'));
43
44
        $bank = new CardHand();
45
        $bank->addCard(new Card('Spades', '10'));
46
        $bank->addCard(new Card('Hearts', '7'));
47
48
        $rules = new BlackJackRules();
49
        $result = $rules->determineResult($player, $bank, 0);
50
51
        $this->assertEquals('win', $result['result']);
52
        $this->assertStringContainsString('Du vann!', $result['message']);
53
    }
54
55
    /**
56
     * Test Determine Results when draw.
57
     */
58
    public function testDetermineResultDraw(): void
59
    {
60
        $player = new CardHand();
61
        $player->addCard(new Card('Hearts', '10'));
62
        $player->addCard(new Card('Diamonds', '9'));
63
64
        $bank = new CardHand();
65
        $bank->addCard(new Card('Spades', '10'));
66
        $bank->addCard(new Card('Hearts', '9'));
67
68
        $rules = new BlackJackRules();
69
        $result = $rules->determineResult($player, $bank, 0);
70
71
        $this->assertEquals('draw', $result['result']);
72
        $this->assertStringContainsString('Oavgjort!', $result['message']);
73
    }
74
}
75