Issue #3417557 by longwave: Remove withConsecutive() in CronSuspendQueueDelayTest

merge-requests/6366/head
catch 2024-01-29 10:46:02 +00:00
parent c794a0e0f3
commit ae750411d1
2 changed files with 32 additions and 36 deletions

View File

@ -3296,11 +3296,6 @@ parameters:
count: 1
path: tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php
-
message: "#^Call to deprecated method withConsecutive\\(\\) of class PHPUnit\\\\Framework\\\\MockObject\\\\Builder\\\\InvocationMocker\\.$#"
count: 3
path: tests/Drupal/Tests/Core/Cron/CronSuspendQueueDelayTest.php
-
message: """
#^Call to deprecated method expectError\\(\\) of class PHPUnit\\\\Framework\\\\TestCase\\:

View File

@ -135,12 +135,12 @@ final class CronSuspendQueueDelayTest extends UnitTestCase {
->setConstructorArgs($this->cronConstructorArguments)
->getMock();
$cron->expects($this->exactly(2))
$delays = [2000000, 3000000];
$cron->expects($this->exactly(count($delays)))
->method('usleep')
->withConsecutive(
[$this->equalTo(2000000)],
[$this->equalTo(3000000)],
);
->with($this->callback(function (int $delay) use (&$delays): bool {
return array_shift($delays) === $delay;
}));
$queueManager->expects($this->once())
->method('getDefinitions')
@ -391,19 +391,22 @@ final class CronSuspendQueueDelayTest extends UnitTestCase {
['test_worker_d', [], $this->workerA],
]);
$this->workerA->expects($this->exactly(6))
$queues = [
// All queues are executed in sequence of definition:
'test_data_from_queue_a',
'test_data_from_queue_b',
'test_data_from_queue_c',
'test_data_from_queue_d',
// Queue C is executed again, and before queue B.
'test_data_from_queue_c',
// Queue B is executed again, after queue C since its delay was longer.
'test_data_from_queue_b',
];
$this->workerA->expects($this->exactly(count($queues)))
->method('processItem')
->withConsecutive(
// All queues are executed in sequence of definition:
[$this->equalTo('test_data_from_queue_a')],
[$this->equalTo('test_data_from_queue_b')],
[$this->equalTo('test_data_from_queue_c')],
[$this->equalTo('test_data_from_queue_d')],
// Queue C is executed again, and before queue B.
[$this->equalTo('test_data_from_queue_c')],
// Queue B is executed again, after queue C since its delay was longer.
[$this->equalTo('test_data_from_queue_b')],
)
->with($this->callback(function ($queue) use (&$queues): bool {
return array_shift($queues) === $queue;
}))
->willReturnOnConsecutiveCalls(
NULL,
$this->throwException(new SuspendQueueException('', 0, NULL, 16.0)),
@ -425,21 +428,19 @@ final class CronSuspendQueueDelayTest extends UnitTestCase {
return (float) $currentTime;
});
$cron->expects($this->exactly(2))
$delays = [
// Expect to wait for 8 seconds, then accelerate time by 4 seconds.
4, 8000000,
// SuspendQueueException requests to delay by 16 seconds, but 4 seconds
// have passed above, so there are just 12 seconds remaining:
0, 12000000,
];
$cron->expects($this->exactly(count($delays) / 2))
->method('usleep')
->withConsecutive(
// Expect to wait for 8 seconds.
[
$this->callback(function (int $microseconds) use (&$currentTime) {
// Accelerate time by 4 seconds.
$currentTime += 4;
return $microseconds === 8000000;
}),
],
// SuspendQueueException requests to delay by 16 seconds, but 4 seconds
// have passed above, so there are just 12 seconds remaining:
[$this->equalTo(12000000)],
);
->with($this->callback(function (int $delay) use (&$currentTime, &$delays): bool {
$currentTime += array_shift($delays);
return array_shift($delays) === $delay;
}));
$cron->run();
}