@@ -144,39 +144,64 @@ public function testExecuteWhenParamsAsParameterObject()
144
144
$ this ->pdoStatementMock ->expects ($ this ->exactly (2 ))
145
145
->method ('bindParam ' )
146
146
->willReturnCallback (
147
- function (
148
- $ arg1 ,
149
- $ arg2 ,
150
- $ arg3 ,
151
- $ arg4 ,
152
- $ arg5
153
- ) use (
154
- $ param1Value ,
155
- $ param1DataType ,
156
- $ param1Length ,
157
- $ param1DriverOptions
158
- ) {
159
- if ($ arg1 == ':param1 ' &&
160
- $ arg2 == $ param1Value &&
161
- $ arg3 == $ param1DataType &&
162
- $ arg4 == $ param1Length &&
163
- $ arg5 == $ param1DriverOptions ) {
164
- return true ;
165
- } elseif ($ arg1 == ':param2 ' &&
166
- $ arg2 == 'value2 ' &&
167
- $ arg3 == \PDO ::PARAM_STR &&
168
- $ arg4 == 6 &&
169
- $ arg5 == null ) {
170
- return true ;
171
- }
172
- }
147
+ $ this ->getBindParamCallback ($ param1Value , $ param1DataType , $ param1Length , $ param1DriverOptions )
173
148
);
174
149
$ this ->pdoStatementMock ->expects ($ this ->once ())
175
150
->method ('execute ' );
176
151
177
152
(new Mysql ($ this ->adapterMock , $ query ))->_execute ($ params );
178
153
}
179
154
155
+ /**
156
+ * Get callback for bindParam method validation
157
+ *
158
+ * @param string $param1Value
159
+ * @param int $param1DataType
160
+ * @param int $param1Length
161
+ * @param string $param1DriverOptions
162
+ * @return callable
163
+ */
164
+ private function getBindParamCallback (
165
+ string $ param1Value ,
166
+ int $ param1DataType ,
167
+ int $ param1Length ,
168
+ string $ param1DriverOptions
169
+ ): callable {
170
+ return function ($ arg1 , $ arg2 , $ arg3 , $ arg4 , $ arg5 ) use (
171
+ $ param1Value ,
172
+ $ param1DataType ,
173
+ $ param1Length ,
174
+ $ param1DriverOptions
175
+ ) {
176
+ return $ this ->validateParam1Binding ($ arg1 , $ arg2 , $ arg3 , $ arg4 , $ arg5 , $ param1Value , $ param1DataType , $ param1Length , $ param1DriverOptions )
177
+ || $ this ->validateParam2Binding ($ arg1 , $ arg2 , $ arg3 , $ arg4 , $ arg5 );
178
+ };
179
+ }
180
+
181
+ /**
182
+ * Validate param1 binding arguments
183
+ */
184
+ private function validateParam1Binding ($ arg1 , $ arg2 , $ arg3 , $ arg4 , $ arg5 , $ param1Value , $ param1DataType , $ param1Length , $ param1DriverOptions ): bool
185
+ {
186
+ return $ arg1 == ':param1 ' &&
187
+ $ arg2 == $ param1Value &&
188
+ $ arg3 == $ param1DataType &&
189
+ $ arg4 == $ param1Length &&
190
+ $ arg5 == $ param1DriverOptions ;
191
+ }
192
+
193
+ /**
194
+ * Validate param2 binding arguments
195
+ */
196
+ private function validateParam2Binding ($ arg1 , $ arg2 , $ arg3 , $ arg4 , $ arg5 ): bool
197
+ {
198
+ return $ arg1 == ':param2 ' &&
199
+ $ arg2 == 'value2 ' &&
200
+ $ arg3 == \PDO ::PARAM_STR &&
201
+ $ arg4 == 6 &&
202
+ $ arg5 == null ;
203
+ }
204
+
180
205
/**
181
206
* Initialize queryString property.
182
207
*
0 commit comments