|
9 | 9 | use Doctrine\DBAL\Driver\Connection; |
10 | 10 | use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; |
11 | 11 | use Symfony\Component\Messenger\MessageBusInterface; |
| 12 | +use Win32Service\Model\AbstractServiceRunner; |
12 | 13 | use Win32Service\Model\ServiceIdentifier; |
13 | 14 | use Win32Service\Model\Win32serviceState; |
14 | 15 | use Win32ServiceBundle\Model\MessengerServiceRunner; |
@@ -57,28 +58,29 @@ public function testFailureMessage(): void |
57 | 58 | $runner->setServiceId(new ServiceIdentifier($serviceName)); |
58 | 59 | $runner->doRun(1, 0); |
59 | 60 |
|
60 | | - $c = $connexion->query('SELECT count(*) FROM messenger_messages WHERE queue_name = \'default\''); |
| 61 | + $c = $connexion->query('SELECT count(*) FROM messenger_messages WHERE queue_name = \'default\' AND delivered_at IS NULL'); |
| 62 | + $this->assertSame(1, (int) $c->fetchOne()); |
61 | 63 |
|
62 | | - $this->assertSame(2, (int) $c->fetchOne()); |
| 64 | + $c = $connexion->query('SELECT count(*) FROM messenger_messages WHERE queue_name = \'default\' AND delivered_at IS NOT NULL'); |
| 65 | + $this->assertSame(1, (int) $c->fetchOne()); |
63 | 66 |
|
64 | | - $connexion->commit(); |
65 | | - $connexion->beginTransaction(); |
66 | | - for ($i = 0; $i < 3; ++$i) { |
67 | | - Win32serviceState::reset(); |
68 | | - usleep(1_500_000); |
| 67 | + $msrRefrection = new \ReflectionClass(AbstractServiceRunner::class); |
| 68 | + $stopRequestedProperty = $msrRefrection->getProperty('stopRequested'); |
| 69 | + $stopRequestedProperty->setAccessible(true); |
69 | 70 |
|
70 | | - $runner->doRun(1, 0); |
71 | | - $connexion->commit(); |
72 | | - $connexion->beginTransaction(); |
| 71 | + Win32serviceState::reset(); |
| 72 | + $stopRequestedProperty->setValue($runner, false); |
73 | 73 |
|
74 | | - $c = $connexion->query('SELECT count(*) FROM messenger_messages WHERE queue_name = \'default\''); |
75 | | - $this->assertSame(2, (int) $c->fetchOne()); |
76 | | - } |
| 74 | + usleep(1_500_000); |
77 | 75 |
|
| 76 | + $runner->doRun(1, 0); |
78 | 77 | $connexion->commit(); |
79 | 78 | $connexion->beginTransaction(); |
80 | | - $c = $connexion->query('SELECT count(*) FROM messenger_messages WHERE queue_name = \'failed\''); |
81 | 79 |
|
| 80 | + $c = $connexion->query('SELECT count(*) FROM messenger_messages WHERE queue_name = \'default\' AND delivered_at IS NOT NULL'); |
| 81 | + $this->assertSame(1, (int) $c->fetchOne()); |
| 82 | + |
| 83 | + $c = $connexion->query('SELECT count(*) FROM messenger_messages WHERE queue_name = \'failed\' AND delivered_at IS NULL'); |
82 | 84 | $this->assertSame(1, (int) $c->fetchOne()); |
83 | 85 | } |
84 | 86 | } |
0 commit comments