Skip to content

Commit d10e6fb

Browse files
committed
add subscriber test for async processor
1 parent 8d0c38b commit d10e6fb

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

pkg/enqueue-bundle/Tests/Functional/Events/AsyncProcessorTest.php

+32
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Enqueue\Bundle\Events\AsyncListener;
66
use Enqueue\Bundle\Events\AsyncProcessor;
77
use Enqueue\Bundle\Tests\Functional\App\TestAsyncListener;
8+
use Enqueue\Bundle\Tests\Functional\App\TestAsyncSubscriber;
89
use Enqueue\Bundle\Tests\Functional\WebTestCase;
910
use Enqueue\Null\NullContext;
1011
use Enqueue\Null\NullMessage;
@@ -86,4 +87,35 @@ public function testShouldCallRealListener()
8687
$listener->calls[0][2]
8788
);
8889
}
90+
91+
public function testShouldCallRealSubscriber()
92+
{
93+
/** @var AsyncProcessor $processor */
94+
$processor = $this->container->get('enqueue.events.async_processor');
95+
96+
$message = new NullMessage();
97+
$message->setProperty('event_name', 'test_async_subscriber');
98+
$message->setProperty('transformer_name', 'test_async');
99+
$message->setBody(JSON::encode([
100+
'subject' => 'theSubject',
101+
'arguments' => ['fooArg' => 'fooVal'],
102+
]));
103+
104+
$this->assertEquals(PsrProcessor::ACK, $processor->process($message, new NullContext()));
105+
106+
/** @var TestAsyncSubscriber $subscriber */
107+
$subscriber = $this->container->get('test_async_subscriber');
108+
109+
$this->assertNotEmpty($subscriber->calls);
110+
111+
$this->assertInstanceOf(GenericEvent::class, $subscriber->calls[0][0]);
112+
$this->assertEquals('theSubject', $subscriber->calls[0][0]->getSubject());
113+
$this->assertEquals(['fooArg' => 'fooVal'], $subscriber->calls[0][0]->getArguments());
114+
$this->assertEquals('test_async_subscriber', $subscriber->calls[0][1]);
115+
116+
$this->assertSame(
117+
$this->container->get('enqueue.events.event_dispatcher'),
118+
$subscriber->calls[0][2]
119+
);
120+
}
89121
}

0 commit comments

Comments
 (0)