@@ -47,28 +47,35 @@ public function testCheckDatabaseConnection()
47
47
->expects ($ this ->atLeastOnce ())
48
48
->method ('query ' )
49
49
->willReturn ($ pdo );
50
- $ pdo ->expects ($ this ->once ())
50
+
51
+ $ listOfPrivileges = [
52
+ ['SELECT ' ],
53
+ ['INSERT ' ],
54
+ ['UPDATE ' ],
55
+ ['DELETE ' ],
56
+ ['CREATE ' ],
57
+ ['DROP ' ],
58
+ ['REFERENCES ' ],
59
+ ['INDEX ' ],
60
+ ['ALTER ' ],
61
+ ['CREATE TEMPORARY TABLES ' ],
62
+ ['LOCK TABLES ' ],
63
+ ['EXECUTE ' ],
64
+ ['CREATE VIEW ' ],
65
+ ['SHOW VIEW ' ],
66
+ ['CREATE ROUTINE ' ],
67
+ ['ALTER ROUTINE ' ],
68
+ ['EVENT ' ],
69
+ ['TRIGGER ' ],
70
+ ];
71
+ $ accessibleDbs = ['some_db ' , 'name ' , 'another_db ' ];
72
+
73
+ $ pdo ->expects ($ this ->atLeastOnce ())
51
74
->method ('fetchAll ' )
52
- ->willReturn (
75
+ ->willReturnMap (
53
76
[
54
- ['SELECT ' ],
55
- ['INSERT ' ],
56
- ['UPDATE ' ],
57
- ['DELETE ' ],
58
- ['CREATE ' ],
59
- ['DROP ' ],
60
- ['REFERENCES ' ],
61
- ['INDEX ' ],
62
- ['ALTER ' ],
63
- ['CREATE TEMPORARY TABLES ' ],
64
- ['LOCK TABLES ' ],
65
- ['EXECUTE ' ],
66
- ['CREATE VIEW ' ],
67
- ['SHOW VIEW ' ],
68
- ['CREATE ROUTINE ' ],
69
- ['ALTER ROUTINE ' ],
70
- ['EVENT ' ],
71
- ['TRIGGER ' ],
77
+ [\PDO ::FETCH_COLUMN , 0 , $ accessibleDbs ],
78
+ [\PDO ::FETCH_NUM , null , $ listOfPrivileges ]
72
79
]
73
80
);
74
81
$ this ->assertEquals (true , $ this ->dbValidator ->checkDatabaseConnection ('name ' , 'host ' , 'user ' , 'password ' ));
@@ -90,7 +97,41 @@ public function testCheckDatabaseConnectionNotEnoughPrivileges()
90
97
->expects ($ this ->atLeastOnce ())
91
98
->method ('query ' )
92
99
->willReturn ($ pdo );
93
- $ pdo ->expects ($ this ->atLeastOnce ())->method ('fetchAll ' )->willReturn ([['SELECT ' ]]);
100
+ $ listOfPrivileges = [['SELECT ' ]];
101
+ $ accessibleDbs = ['some_db ' , 'name ' , 'another_db ' ];
102
+
103
+ $ pdo ->expects ($ this ->atLeastOnce ())
104
+ ->method ('fetchAll ' )
105
+ ->willReturnMap (
106
+ [
107
+ [\PDO ::FETCH_COLUMN , 0 , $ accessibleDbs ],
108
+ [\PDO ::FETCH_NUM , null , $ listOfPrivileges ]
109
+ ]
110
+ );
111
+ $ this ->dbValidator ->checkDatabaseConnection ('name ' , 'host ' , 'user ' , 'password ' );
112
+ }
113
+
114
+ /**
115
+ * @expectedException \Magento\Setup\Exception
116
+ * @expectedExceptionMessage Database 'name' does not exist or specified database server user does not have
117
+ */
118
+ public function testCheckDatabaseConnectionDbNotAccessible ()
119
+ {
120
+ $ this ->connection
121
+ ->expects ($ this ->once ())
122
+ ->method ('fetchOne ' )
123
+ ->with ('SELECT version() ' )
124
+ ->willReturn ('5.6.0-0ubuntu0.12.04.1 ' );
125
+ $ pdo = $ this ->getMockForAbstractClass ('Zend_Db_Statement_Interface ' , [], '' , false );
126
+ $ this ->connection
127
+ ->expects ($ this ->atLeastOnce ())
128
+ ->method ('query ' )
129
+ ->willReturn ($ pdo );
130
+ $ accessibleDbs = ['some_db ' , 'another_db ' ];
131
+
132
+ $ pdo ->expects ($ this ->atLeastOnce ())
133
+ ->method ('fetchAll ' )
134
+ ->willReturn ($ accessibleDbs );
94
135
$ this ->dbValidator ->checkDatabaseConnection ('name ' , 'host ' , 'user ' , 'password ' );
95
136
}
96
137
0 commit comments