РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1147 of 1361 menu

Метод getRejected класса InMemoryTransport

Метод getRejected принадлежит классу InMemoryTransport и возвращает массив сообщений, которые были отвергнуты при отправке. Это бывает полезно при тестировании асинхронной обработки: если получатель выбросил исключение, сообщение не попадает в очередь, а откладывается как отвергнутое. Метод не принимает параметров и возвращает массив объектов Envelope.

Синтаксис

public function getRejected(): array

Пример

Давайте создадим транспорт InMemoryTransport и отправим в него сообщение, обработчик которого выбрасывает исключение:

<?php namespace App\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\MessageBusInterface; use Symfony\Component\Messenger\Transport\InMemoryTransport; use Symfony\Component\Messenger\Transport\Serialization\SerializerInterface; use Symfony\Component\Messenger\Transport\TransportInterface; class TransportTest extends TestCase { public function testRejected(): void { $transport = new InMemoryTransport(); $transport->send(new Envelope(new \stdClass())); $res = $transport->getRejected(); echo count($res); } } ?>

Результат выполнения кода:

0

Пример

Давайте выведем количество отвергнутых и отправленных сообщений после нескольких отправок:

<?php namespace App\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Transport\InMemoryTransport; class TransportTest extends TestCase { public function testCounts(): void { $transport = new InMemoryTransport(); $transport->send(new Envelope(new \stdClass())); $transport->send(new Envelope(new \stdClass())); $res = [ 'sent' => count($transport->getSent()), 'rejected' => count($transport->getRejected()), ]; print_r($res); } } ?>

Результат выполнения кода:

Array ( [sent] => 2 [rejected] => 0 )

Пример

Давайте сбросим состояние транспорта методом reset и проверим, что список отвергнутых сообщений очистился:

<?php namespace App\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\Messenger\Envelope; use Symfony\Component\Messenger\Transport\InMemoryTransport; class TransportTest extends TestCase { public function testReset(): void { $transport = new InMemoryTransport(); $transport->send(new Envelope(new \stdClass())); $transport->reset(); $res = count($transport->getRejected()); echo $res; } } ?>

Результат выполнения кода:

0

Смотрите также

  • класс InMemoryTransport,
    который хранит сообщения в памяти для тестов
  • метод getSent,
    который возвращает отправленные сообщения
  • метод getAcknowledged,
    который возвращает подтверждённые сообщения
  • метод reset,
    который очищает состояние транспорта
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить