QueueManagerTest.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace Illuminate\Tests\Queue;
  3. use Illuminate\Contracts\Encryption\Encrypter;
  4. use Illuminate\Queue\QueueManager;
  5. use Mockery as m;
  6. use PHPUnit\Framework\TestCase;
  7. use stdClass;
  8. class QueueManagerTest extends TestCase
  9. {
  10. protected function tearDown(): void
  11. {
  12. m::close();
  13. }
  14. public function testDefaultConnectionCanBeResolved()
  15. {
  16. $app = [
  17. 'config' => [
  18. 'queue.default' => 'sync',
  19. 'queue.connections.sync' => ['driver' => 'sync'],
  20. ],
  21. 'encrypter' => $encrypter = m::mock(Encrypter::class),
  22. ];
  23. $manager = new QueueManager($app);
  24. $connector = m::mock(stdClass::class);
  25. $queue = m::mock(stdClass::class);
  26. $queue->shouldReceive('setConnectionName')->once()->with('sync')->andReturnSelf();
  27. $connector->shouldReceive('connect')->once()->with(['driver' => 'sync'])->andReturn($queue);
  28. $manager->addConnector('sync', function () use ($connector) {
  29. return $connector;
  30. });
  31. $queue->shouldReceive('setContainer')->once()->with($app);
  32. $this->assertSame($queue, $manager->connection('sync'));
  33. }
  34. public function testOtherConnectionCanBeResolved()
  35. {
  36. $app = [
  37. 'config' => [
  38. 'queue.default' => 'sync',
  39. 'queue.connections.foo' => ['driver' => 'bar'],
  40. ],
  41. 'encrypter' => $encrypter = m::mock(Encrypter::class),
  42. ];
  43. $manager = new QueueManager($app);
  44. $connector = m::mock(stdClass::class);
  45. $queue = m::mock(stdClass::class);
  46. $queue->shouldReceive('setConnectionName')->once()->with('foo')->andReturnSelf();
  47. $connector->shouldReceive('connect')->once()->with(['driver' => 'bar'])->andReturn($queue);
  48. $manager->addConnector('bar', function () use ($connector) {
  49. return $connector;
  50. });
  51. $queue->shouldReceive('setContainer')->once()->with($app);
  52. $this->assertSame($queue, $manager->connection('foo'));
  53. }
  54. public function testNullConnectionCanBeResolved()
  55. {
  56. $app = [
  57. 'config' => [
  58. 'queue.default' => 'null',
  59. ],
  60. 'encrypter' => $encrypter = m::mock(Encrypter::class),
  61. ];
  62. $manager = new QueueManager($app);
  63. $connector = m::mock(stdClass::class);
  64. $queue = m::mock(stdClass::class);
  65. $queue->shouldReceive('setConnectionName')->once()->with('null')->andReturnSelf();
  66. $connector->shouldReceive('connect')->once()->with(['driver' => 'null'])->andReturn($queue);
  67. $manager->addConnector('null', function () use ($connector) {
  68. return $connector;
  69. });
  70. $queue->shouldReceive('setContainer')->once()->with($app);
  71. $this->assertSame($queue, $manager->connection('null'));
  72. }
  73. }