Commit 5c40e153 authored by catch's avatar catch
Browse files

Issue #3177922 by BR0kEN, dpi, catch, jonathanshaw: DelayedRequeueException...

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

(cherry picked from commit 24a533ab)
parent 76d1e6ff
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -29,9 +29,16 @@ class DelayedRequeueException extends \RuntimeException {
   * Constructs a DelayedRequeueException.
   *
   * @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) {
      $this->delay = $delay;
    }
+32 −0
Original line number Diff line number Diff line
<?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());
  }

}