Completed
Push — develop ( 4c851b...fa6865 )
by Freddie
03:54
created

UserTest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 90
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 51
dl 0
loc 90
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A testItUserSqlSrvCreate() 0 14 1
A testItUserMySqlCreate() 0 11 1
A testItUserSqlSrvGrants() 0 16 1
A testItUserMySqlGrants() 0 14 1
A testItUserMySqlDrop() 0 11 1
A testItUserSqlSrvDrop() 0 12 1
1
<?php declare(strict_types=1);
2
/*
3
 * This file is part of FlexPHP.
4
 *
5
 * (c) Freddie Gar <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
namespace FlexPHP\Database\Tests;
11
12
use FlexPHP\Database\User;
13
14
class UserTest extends TestCase
15
{
16
    public function testItUserMySqlCreate(): void
17
    {
18
        $name = 'jon';
19
        $password = 'p4sw00rd';
20
21
        $user = new User($name, $password);
22
        $user->setPlatform('MySQL');
23
        $this->assertEquals(<<<T
24
CREATE USER '$name'@'%' IDENTIFIED BY '$password';
25
T
26
, $user->toSqlCreate());
27
    }
28
29
    public function testItUserMySqlDrop(): void
30
    {
31
        $name = 'jon';
32
        $password = 'p4sw00rd';
33
34
        $user = new User($name, $password);
35
        $user->setPlatform('MySQL');
36
        $this->assertEquals(<<<T
37
DROP USER '$name'@'%';
38
T
39
, $user->toSqlDrop());
40
    }
41
42
    public function testItUserMySqlGrants(): void
43
    {
44
        $name = 'jon';
45
        $password = 'p4sw00rd';
46
        $database = 'db';
47
        $table = 'table';
48
49
        $user = new User($name, $password);
50
        $user->setPlatform('MySQL');
51
        $user->setGrants(['CREATE'], $database, $table);
52
        $this->assertEquals(<<<T
53
GRANT CREATE ON $database.$table TO '$name'@'%';
54
T
55
, $user->toSqlPrivileges());
56
    }
57
58
    public function testItUserSqlSrvCreate(): void
59
    {
60
        $name = 'jon';
61
        $password = 'p4sw00rd';
62
63
        $user = new User($name, $password);
64
        $user->setPlatform('SQLSrv');
65
        $this->assertEquals(<<<T
66
CREATE LOGIN $name WITH PASSWORD = '$password';
67
GO
68
CREATE USER $name FOR LOGIN $name;
69
GO
70
T
71
, $user->toSqlCreate());
72
    }
73
74
    public function testItUserSqlSrvDrop(): void
75
    {
76
        $name = 'jon';
77
        $password = 'p4sw00rd';
78
79
        $user = new User($name, $password);
80
        $user->setPlatform('SQLSrv');
81
        $this->assertEquals(<<<T
82
DROP USER $name;
83
GO
84
T
85
, $user->toSqlDrop());
86
    }
87
88
    public function testItUserSqlSrvGrants(): void
89
    {
90
        $name = 'jon';
91
        $password = 'p4sw00rd';
92
        $database = 'db';
93
        $table = 'table';
94
        $permission = 'CREATE';
95
96
        $user = new User($name, $password);
97
        $user->setPlatform('SQLSrv');
98
        $user->setGrants(['CREATE'], $database, $table);
99
        $this->assertEquals(<<<T
100
GRANT $permission ON $database.$table TO $name;
101
GO
102
T
103
, $user->toSqlPrivileges());
104
    }
105
}
106