Skip to content

Commit b669819

Browse files
committed
Refactor bindParam callback and validation methods in MysqlTest
1 parent c054dd6 commit b669819

File tree

1 file changed

+51
-26
lines changed
  • lib/internal/Magento/Framework/DB/Test/Unit/DB/Statement

1 file changed

+51
-26
lines changed

lib/internal/Magento/Framework/DB/Test/Unit/DB/Statement/MysqlTest.php

Lines changed: 51 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -144,39 +144,64 @@ public function testExecuteWhenParamsAsParameterObject()
144144
$this->pdoStatementMock->expects($this->exactly(2))
145145
->method('bindParam')
146146
->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)
173148
);
174149
$this->pdoStatementMock->expects($this->once())
175150
->method('execute');
176151

177152
(new Mysql($this->adapterMock, $query))->_execute($params);
178153
}
179154

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+
180205
/**
181206
* Initialize queryString property.
182207
*

0 commit comments

Comments
 (0)