|
14 | 14 | use PHPUnit\Framework\TestCase;
|
15 | 15 | use Symfony\Bridge\Twig\Extension\StopwatchExtension;
|
16 | 16 | use Symfony\Component\Stopwatch\Stopwatch;
|
| 17 | +use Symfony\Component\Stopwatch\StopwatchEvent; |
17 | 18 | use Twig\Environment;
|
18 | 19 | use Twig\Error\RuntimeError;
|
19 | 20 | use Twig\Loader\ArrayLoader;
|
@@ -67,12 +68,29 @@ protected function getStopwatch($events = [])
|
67 | 68 | $expectedStopCalls[] = [$this->equalTo($eventName)];
|
68 | 69 | }
|
69 | 70 |
|
70 |
| - $startInvocationMocker = $stopwatch->expects($this->exactly($expectedCalls)) |
71 |
| - ->method('start'); |
72 |
| - \call_user_func_array([$startInvocationMocker, 'withConsecutive'], $expectedStartCalls); |
73 |
| - $stopInvocationMocker = $stopwatch->expects($this->exactly($expectedCalls)) |
74 |
| - ->method('stop'); |
75 |
| - \call_user_func_array([$stopInvocationMocker, 'withConsecutive'], $expectedStopCalls); |
| 71 | + $stopwatch |
| 72 | + ->expects($this->exactly($expectedCalls)) |
| 73 | + ->method('start') |
| 74 | + ->willReturnCallback(function (string $name, string $category) use (&$expectedStartCalls) { |
| 75 | + [$expectedName, $expectedCategory] = array_shift($expectedStartCalls); |
| 76 | + |
| 77 | + $expectedName->evaluate($name); |
| 78 | + $this->assertSame($expectedCategory, $category); |
| 79 | + |
| 80 | + return $this->createMock(StopwatchEvent::class); |
| 81 | + }) |
| 82 | + ; |
| 83 | + |
| 84 | + $stopwatch |
| 85 | + ->expects($this->exactly($expectedCalls)) |
| 86 | + ->method('stop') |
| 87 | + ->willReturnCallback(function (string $name) use (&$expectedStopCalls) { |
| 88 | + [$expectedName] = array_shift($expectedStopCalls); |
| 89 | + $expectedName->evaluate($name); |
| 90 | + |
| 91 | + return $this->createMock(StopwatchEvent::class); |
| 92 | + }) |
| 93 | + ; |
76 | 94 |
|
77 | 95 | return $stopwatch;
|
78 | 96 | }
|
|
0 commit comments