|
2 | 2 |
|
3 | 3 | declare(strict_types=1);
|
4 | 4 |
|
5 |
| -namespace BehatMessengerContext\Tests; |
| 5 | +namespace BehatMessengerContext\Tests\Unit; |
6 | 6 |
|
7 | 7 | use Behat\Gherkin\Node\PyStringNode;
|
8 | 8 | use BehatMessengerContext\Context\MessengerContext;
|
|
15 | 15 | use Symfony\Component\Messenger\Envelope;
|
16 | 16 | use Symfony\Component\Messenger\Transport\InMemory\InMemoryTransport;
|
17 | 17 | use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
|
| 18 | +use Symfony\Contracts\Service\ServiceProviderInterface; |
18 | 19 |
|
19 | 20 | class MessengerContextTest extends TestCase
|
20 | 21 | {
|
@@ -447,4 +448,88 @@ public function testFailAllTransportMessagesShouldBeJsonWithVariableFields(): vo
|
447 | 448 | $expectedJson
|
448 | 449 | );
|
449 | 450 | }
|
| 451 | + |
| 452 | + public function testTransportWasReset(): void |
| 453 | + { |
| 454 | + $serviceProvider = $this->createMock(ServiceProviderInterface::class); |
| 455 | + $serviceProvider |
| 456 | + ->expects($this->once()) |
| 457 | + ->method('getProvidedServices') |
| 458 | + ->willReturn(['messenger.transport.test']); |
| 459 | + |
| 460 | + $serviceProvider |
| 461 | + ->expects(self::once()) |
| 462 | + ->method('get') |
| 463 | + ->with('messenger.transport.test') |
| 464 | + ->willReturn($this->inMemoryTransport); |
| 465 | + |
| 466 | + $this->inMemoryTransport |
| 467 | + ->expects($this->once()) |
| 468 | + ->method('reset'); |
| 469 | + |
| 470 | + (new MessengerContext( |
| 471 | + $this->container, |
| 472 | + $this->normalizer, |
| 473 | + new TransportRetriever($serviceProvider) |
| 474 | + ))->clearMessengerBeforeScenario(); |
| 475 | + } |
| 476 | + |
| 477 | + public function testTransportWasResetWithZentruck(): void |
| 478 | + { |
| 479 | + require_once __DIR__ . '/../Stub/Zentruck/TestBus.php'; |
| 480 | + require_once __DIR__ . '/../Stub/Zentruck/TestTransport.php'; |
| 481 | + |
| 482 | + $transportClass = 'Zenstruck\Messenger\Test\Transport\TestTransport'; |
| 483 | + |
| 484 | + $transportClass::reset(); |
| 485 | + $this->messengerContext::stopTrackMessages(); |
| 486 | + |
| 487 | + $this->assertEquals( |
| 488 | + $transportClass::RESET_ALL, |
| 489 | + $transportClass::getResult() & $transportClass::RESET_ALL |
| 490 | + ); |
| 491 | + |
| 492 | + $this->assertNotEquals( |
| 493 | + $transportClass::DISABLE_RESET_ON_KERNEL_SHUTDOWN, |
| 494 | + $transportClass::getResult() & $transportClass::DISABLE_RESET_ON_KERNEL_SHUTDOWN |
| 495 | + ); |
| 496 | + |
| 497 | + $this->assertNotEquals( |
| 498 | + $transportClass::ENABLE_MESSAGES_COLLECTION, |
| 499 | + $transportClass::getResult() & $transportClass::ENABLE_MESSAGES_COLLECTION |
| 500 | + ); |
| 501 | + } |
| 502 | + |
| 503 | + public function testClearWithZentruck(): void |
| 504 | + { |
| 505 | + require_once __DIR__ . '/../Stub/Zentruck/TestBus.php'; |
| 506 | + require_once __DIR__ . '/../Stub/Zentruck/TestTransport.php'; |
| 507 | + |
| 508 | + $transportClass = 'Zenstruck\Messenger\Test\Transport\TestTransport'; |
| 509 | + $busClass = 'Zenstruck\Messenger\Test\Bus\TestBus'; |
| 510 | + |
| 511 | + $transportClass::reset(); |
| 512 | + $busClass::reset(); |
| 513 | + $this->messengerContext::startTrackMessages(); |
| 514 | + |
| 515 | + $this->assertEquals( |
| 516 | + $transportClass::RESET_ALL, |
| 517 | + $transportClass::getResult() & $transportClass::RESET_ALL |
| 518 | + ); |
| 519 | + |
| 520 | + $this->assertEquals( |
| 521 | + $transportClass::DISABLE_RESET_ON_KERNEL_SHUTDOWN, |
| 522 | + $transportClass::getResult() & $transportClass::DISABLE_RESET_ON_KERNEL_SHUTDOWN |
| 523 | + ); |
| 524 | + |
| 525 | + $this->assertEquals( |
| 526 | + $transportClass::ENABLE_MESSAGES_COLLECTION, |
| 527 | + $transportClass::getResult() & $transportClass::ENABLE_MESSAGES_COLLECTION |
| 528 | + ); |
| 529 | + |
| 530 | + $this->assertEquals( |
| 531 | + $busClass::ENABLE_MESSAGES_COLLECTION, |
| 532 | + $busClass::getResult() & $busClass::ENABLE_MESSAGES_COLLECTION |
| 533 | + ); |
| 534 | + } |
450 | 535 | }
|
0 commit comments