Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Passed
Pull Request — master (#911)
by
unknown
04:18
created

testGetAccountByAccountId()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 31
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 25
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 31
rs 9.52
1
<?php declare(strict_types=1);
2
3
use Mockery as m;
4
use Mockery\MockInterface;
5
use PHPUnit\Framework\TestCase;
6
7
class Record
8
{
9
    public int $account_id = 1;
10
    public string $login = "login";
11
    public string $password = "password";
12
    public string $email = "email";
13
    public string $last_login = "last login";
14
    public string $validation_code = "validation code";
15
    public string $offset = "offset";
16
    public string $images = "Yes";
17
    public string $fontsize = "font size";
18
    public string $password_reset = "password reset";
19
    public int $mail_banned = 0;
20
    public string $friendly_colour = "colour";
21
    public string $neutral_colour = "colour";
22
    public string $enemy_colour = "colour";
23
    public string $css_link = "css link";
24
    public string $referral_id = 'referral_id';
25
    public string $max_rank_achieved = 'max_rank_achieved';
26
    public string $hof_name = 'hof_name';
27
    public string $discord_id = 'discord_id';
28
    public string $irc_nick = 'irc_nick';
29
    public string $date_short = 'date_short';
30
    public string $time_short = 'time_short';
31
    public string $template = 'template';
32
    public string $colour_scheme = 'colour_scheme';
33
}
34
35
/**
36
 * Class AbstractSmrAccountTest
37
 * @covers AbstractSmrAccount
38
 * @covers Globals
39
 */
40
class AbstractSmrAccountTest extends TestCase
41
{
42
    private AbstractSmrAccount $abstractSmrAccount;
43
44
    public function testGetAccountByAccountId()
45
    {
46
        //# Given the database has been set up with a user
47
        $record = new Record();
48
        self::setupMockMysqlDatabase($record);
49
        //# And there is no force update
50
        $forceUpdate = false;
51
        //# When the account is retrieved by its ID
52
        $this->abstractSmrAccount = AbstractSmrAccount::getAccount($record->account_id, $forceUpdate);
53
        //# Then the integrity of the user is correct
54
        $this->assertEquals($record->account_id, $this->abstractSmrAccount->getAccountID());
55
        $this->assertEquals($record->login, $this->abstractSmrAccount->getLogin());
56
        $this->assertEquals($record->email, $this->abstractSmrAccount->getEmail());
57
        $this->assertEquals($record->last_login, $this->abstractSmrAccount->getLastLogin());
58
        $this->assertEquals($record->validation_code, $this->abstractSmrAccount->getValidationCode());
59
        $this->assertEquals($record->offset, $this->abstractSmrAccount->getOffset());
60
        $this->assertEquals(true, $this->abstractSmrAccount->isDisplayShipImages());
61
        $this->assertEquals($record->fontsize, $this->abstractSmrAccount->getFontSize());
62
        $this->assertEquals($record->password_reset, $this->abstractSmrAccount->getPasswordReset());
63
        $this->assertEquals($record->mail_banned, $this->abstractSmrAccount->getMailBanned());
64
        $this->assertEquals($record->friendly_colour, $this->abstractSmrAccount->getFriendlyColour());
65
        $this->assertEquals($record->neutral_colour, $this->abstractSmrAccount->getNeutralColour());
66
        $this->assertEquals($record->enemy_colour, $this->abstractSmrAccount->getEnemyColour());
67
        $this->assertEquals($record->css_link, $this->abstractSmrAccount->getCssLink());
68
        $this->assertEquals($record->referral_id, $this->abstractSmrAccount->getReferrerID());
69
        $this->assertEquals($record->hof_name, $this->abstractSmrAccount->getHofName());
70
        $this->assertEquals($record->discord_id, $this->abstractSmrAccount->getDiscordId());
71
        $this->assertEquals($record->irc_nick, $this->abstractSmrAccount->getIrcNick());
72
        $this->assertEquals($record->date_short, $this->abstractSmrAccount->getShortDateFormat());
73
        $this->assertEquals($record->time_short, $this->abstractSmrAccount->getShortTimeFormat());
74
        $this->assertEquals($record->template, $this->abstractSmrAccount->getTemplate());
75
    }
76
77
    private static function setupMockMysqlDatabase(Record $record): MockInterface
78
    {
79
        //# Force the mock to be used in the autoloader
80
        $mysqlDatabase = m::mock("overload:SmrMySqlDatabase");
81
        $mysqlDatabase
82
            ->shouldReceive("escapeNumber")
83
            ->with($record->account_id)
84
            ->andReturn($record->account_id);
85
        $mysqlDatabase
86
            ->shouldReceive("query");
87
        $mysqlDatabase
88
            ->shouldReceive("nextRecord")
89
            ->andReturn("a record");
90
        $mysqlDatabase
91
            ->shouldReceive("getRow")
92
            ->andReturn((array)$record);
93
        $mysqlDatabase
94
            ->shouldReceive("getBoolean")
95
            ->andReturn(false);
96
        $mysqlDatabase
97
            ->shouldReceive("getObject")
98
            ->andReturn(array());
99
        return $mysqlDatabase;
100
    }
101
}
102