Метод reset класса InMemoryTransport
Метод reset класса InMemoryTransport
очищает внутренние очереди сообщений: отправленные,
подтверждённые и отклонённые. Метод не принимает
параметров и не возвращает значения. Используется
в тестах, когда нужно изолировать проверки между
собой и начать с чистого состояния транспорта.
Синтаксис
$transport->reset();
Пример
Давайте отправим сообщение в транспорт, проверим его наличие, а затем сбросим состояние:
<?php
namespace AppTests;
use PHPUnitFrameworkTestCase;
use SymfonyComponentMessengerTransportInMemoryTransport;
use SymfonyComponentMessengerEnvelope;
class TransportTest extends TestCase
{
public function testReset(): void
{
$transport = new InMemoryTransport();
$transport->send(new Envelope(new stdClass()));
$count = count($transport->getSent());
echo $count;
$transport->reset();
$count = count($transport->getSent());
echo $count;
}
}
?>
Результат выполнения кода:
1
0
Пример
Давайте проверим, что после сброса очищаются также подтверждённые и отклонённые сообщения:
<?php
namespace AppTests;
use PHPUnitFrameworkTestCase;
use SymfonyComponentMessengerTransportInMemoryTransport;
use SymfonyComponentMessengerEnvelope;
class TransportTest extends TestCase
{
public function testResetAll(): void
{
$transport = new InMemoryTransport();
$transport->send(new Envelope(new stdClass()));
$transport->ack();
$transport->reject();
$res = [
count($transport->getSent()),
count($transport->getAcknowledged()),
count($transport->getRejected()),
];
print_r($res);
$transport->reset();
$res = [
count($transport->getSent()),
count($transport->getAcknowledged()),
count($transport->getRejected()),
];
print_r($res);
}
}
?>
Результат выполнения кода:
[1, 1, 1]
[0, 0, 0]
Смотрите также
-
класс
InMemoryTransport,
который хранит сообщения в памяти для тестов -
метод
getSent,
который возвращает список отправленных сообщений -
метод
getAcknowledged,
который возвращает список подтверждённых сообщений -
метод
getRejected,
который возвращает список отклонённых сообщений