Skip to content

Commit

Permalink
Test for #141
Browse files Browse the repository at this point in the history
  • Loading branch information
viktorprogger committed Mar 4, 2023
1 parent 717f4dc commit 1dfc82d
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
43 changes: 43 additions & 0 deletions tests/Integration/MessageConsumingTest.php
@@ -0,0 +1,43 @@
<?php

declare(strict_types=1);

namespace Yiisoft\Yii\Queue\Tests\Integration;

use Psr\Container\ContainerInterface;
use Psr\Log\NullLogger;
use Yiisoft\Injector\Injector;
use Yiisoft\Yii\Queue\Message\Message;
use Yiisoft\Yii\Queue\Message\MessageInterface;
use Yiisoft\Yii\Queue\Middleware\Consume\ConsumeMiddlewareDispatcher;
use Yiisoft\Yii\Queue\Middleware\Consume\MiddlewareFactoryConsumeInterface;
use Yiisoft\Yii\Queue\Middleware\FailureHandling\FailureMiddlewareDispatcher;
use Yiisoft\Yii\Queue\Middleware\FailureHandling\MiddlewareFactoryFailureInterface;
use Yiisoft\Yii\Queue\Tests\TestCase;
use Yiisoft\Yii\Queue\Worker\Worker;

final class MessageConsumingTest extends TestCase
{
private array $messagesProcessed;
public function testMessagesConsumed(): void
{
$this->messagesProcessed = [];

$container = $this->createMock(ContainerInterface::class);
$worker = new Worker(
['test' => fn(MessageInterface $message): mixed => $this->messagesProcessed[] = $message->getData()],
new NullLogger(),
new Injector($container),
$container,
new ConsumeMiddlewareDispatcher($this->createMock(MiddlewareFactoryConsumeInterface::class)),
new FailureMiddlewareDispatcher($this->createMock(MiddlewareFactoryFailureInterface::class), [])
);

$messages = [1, 'foo', 'bar-baz'];
foreach ($messages as $message) {
$worker->process(new Message('test', $message), $this->getQueue());
}

$this->assertEquals($messages, $this->messagesProcessed);
}
}
5 changes: 4 additions & 1 deletion tests/TestCase.php
Expand Up @@ -33,7 +33,7 @@
abstract class TestCase extends BaseTestCase
{
protected ?ContainerInterface $container = null;
protected QueueInterface|MockObject|null $queue = null;
protected Queue|null $queue = null;
protected ?AdapterInterface $adapter = null;
protected ?LoopInterface $loop = null;
protected ?WorkerInterface $worker = null;
Expand All @@ -53,6 +53,9 @@ protected function setUp(): void
$this->executionTimes = 0;
}

/**
* @return Queue The same object every time
*/
protected function getQueue(): Queue
{
if ($this->queue === null) {
Expand Down

0 comments on commit 1dfc82d

Please sign in to comment.