|
16 | 16 | use Symfony\Component\Messenger\Middleware\StackInterface;
|
17 | 17 | use Symfony\Component\Messenger\Middleware\StackMiddleware;
|
18 | 18 | use Symfony\Component\Messenger\Middleware\TraceableMiddleware;
|
| 19 | +use Symfony\Component\Messenger\Middleware\TraceableStack; |
19 | 20 | use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
|
20 | 21 | use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
|
21 | 22 | use Symfony\Component\Stopwatch\Stopwatch;
|
22 | 23 | use Symfony\Component\Stopwatch\StopwatchEvent;
|
23 | 24 |
|
| 25 | +class_exists(TraceableMiddleware::class); |
| 26 | + |
24 | 27 | /**
|
25 | 28 | * @author Maxime Steinhausser <[email protected]>
|
26 | 29 | */
|
@@ -140,4 +143,26 @@ public function handle(Envelope $envelope, StackInterface $stack): Envelope
|
140 | 143 | $traced->handle($envelope, new StackMiddleware(new \ArrayIterator([null, $middleware])));
|
141 | 144 | $this->assertSame(1, $middleware->calls);
|
142 | 145 | }
|
| 146 | + |
| 147 | + public function testCloneTraceableStack(): void |
| 148 | + { |
| 149 | + $middlewareIterator = [ |
| 150 | + $this->createMock(MiddlewareInterface::class), |
| 151 | + $this->createMock(MiddlewareInterface::class), |
| 152 | + ]; |
| 153 | + |
| 154 | + $stack = new TraceableStack( |
| 155 | + new StackMiddleware($middlewareIterator), |
| 156 | + $this->createMock(Stopwatch::class), |
| 157 | + 'command.bus', |
| 158 | + 'test' |
| 159 | + ); |
| 160 | + |
| 161 | + $clonedStack = clone $stack; |
| 162 | + |
| 163 | + $nextFrame = $stack->next(); |
| 164 | + $clonedStackNextFrame = $clonedStack->next(); |
| 165 | + |
| 166 | + self::assertSame($nextFrame, $clonedStackNextFrame); |
| 167 | + } |
143 | 168 | }
|
0 commit comments