Issue #3177922 by BR0kEN, dpi, catch, jonathanshaw: DelayedRequeueException should call parent, and optionally allow providing default args

merge-requests/12/head
catch 2020-12-14 17:20:46 +00:00
parent c5eada7408
commit 24a533ab5f
2 changed files with 41 additions and 2 deletions

View File

@ -29,9 +29,16 @@ class DelayedRequeueException extends \RuntimeException {
* Constructs a DelayedRequeueException. * Constructs a DelayedRequeueException.
* *
* @param int $delay * @param int $delay
* The desired delay interval for this item. * The desired delay interval for this item (in seconds).
* @param string $message
* The error message.
* @param int $code
* The error code.
* @param \Throwable|null $previous
* The previous throwable used for the exception chaining.
*/ */
public function __construct(int $delay = 0) { public function __construct(int $delay = 0, string $message = '', int $code = 0, \Throwable $previous = NULL) {
parent::__construct($message, $code, $previous);
if ($delay > 0) { if ($delay > 0) {
$this->delay = $delay; $this->delay = $delay;
} }

View File

@ -0,0 +1,32 @@
<?php
namespace Drupal\Tests\Core\Queue;
use Drupal\Core\Queue\DelayedRequeueException;
use Drupal\Tests\UnitTestCase;
/**
* Tests queue exceptions.
*
* @group Queue
*/
class QueueExceptionsTest extends UnitTestCase {
/**
* Tests that the `DelayedRequeueException` calls parent constructor.
*/
public function testDelayedRequeueExceptionCallsParentConstructor(): void {
$without_previous = new DelayedRequeueException(50, 'Delay the processing.');
static::assertSame(50, $without_previous->getDelay());
static::assertSame('Delay the processing.', $without_previous->getMessage());
static::assertSame(0, $without_previous->getCode());
static::assertNull($without_previous->getPrevious());
$with_previous = new DelayedRequeueException(100, 'Increase the delay.', 200, $without_previous);
static::assertSame(100, $with_previous->getDelay());
static::assertSame('Increase the delay.', $with_previous->getMessage());
static::assertSame(200, $with_previous->getCode());
static::assertSame($without_previous, $with_previous->getPrevious());
}
}