|
3 | 3 | namespace Symfony\Component\Messenger\Tests\Middleware;
|
4 | 4 |
|
5 | 5 | use Symfony\Component\Messenger\Envelope;
|
| 6 | +use Symfony\Component\Messenger\Middleware\MiddlewareInterface; |
6 | 7 | use Symfony\Component\Messenger\Middleware\RouterContextMiddleware;
|
| 8 | +use Symfony\Component\Messenger\Middleware\StackInterface; |
| 9 | +use Symfony\Component\Messenger\Middleware\StackMiddleware; |
7 | 10 | use Symfony\Component\Messenger\Stamp\ConsumedByWorkerStamp;
|
8 | 11 | use Symfony\Component\Messenger\Stamp\RouterContextStamp;
|
9 | 12 | use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
|
@@ -34,30 +37,32 @@ public function testMiddlewareStoreContext()
|
34 | 37 | public function testMiddlewareRestoreContext()
|
35 | 38 | {
|
36 | 39 | $router = $this->createMock(RequestContextAwareInterface::class);
|
37 |
| - $originalContext = new RequestContext(); |
| 40 | + $context = new RequestContext('', 'POST', 'github.com'); |
38 | 41 |
|
39 | 42 | $router
|
40 | 43 | ->expects($this->once())
|
41 | 44 | ->method('getContext')
|
42 |
| - ->willReturn($originalContext); |
43 |
| - |
44 |
| - $router |
45 |
| - ->expects($this->exactly(2)) |
46 |
| - ->method('setContext') |
47 |
| - ->withConsecutive( |
48 |
| - [$this->callback(function ($context) { |
49 |
| - $this->assertSame('symfony.com', $context->getHost()); |
50 |
| - |
51 |
| - return true; |
52 |
| - })], |
53 |
| - [$originalContext] |
54 |
| - ); |
| 45 | + ->willReturn($context); |
55 | 46 |
|
56 | 47 | $middleware = new RouterContextMiddleware($router);
|
57 | 48 | $envelope = new Envelope(new \stdClass(), [
|
58 | 49 | new ConsumedByWorkerStamp(),
|
59 | 50 | new RouterContextStamp('', 'GET', 'symfony.com', 'https', 80, 443, '/', ''),
|
60 | 51 | ]);
|
61 |
| - $middleware->handle($envelope, $this->getStackMock()); |
| 52 | + |
| 53 | + $nextMiddleware = $this->createMock(MiddlewareInterface::class); |
| 54 | + $nextMiddleware |
| 55 | + ->expects($this->once()) |
| 56 | + ->method('handle') |
| 57 | + ->willReturnCallback(function (Envelope $envelope, StackInterface $stack) use ($context): Envelope { |
| 58 | + $this->assertSame('symfony.com', $context->getHost()); |
| 59 | + |
| 60 | + return $envelope; |
| 61 | + }) |
| 62 | + ; |
| 63 | + |
| 64 | + $middleware->handle($envelope, new StackMiddleware($nextMiddleware)); |
| 65 | + |
| 66 | + $this->assertSame('github.com', $context->getHost()); |
62 | 67 | }
|
63 | 68 | }
|
0 commit comments