50 lines
1.5 KiB
PHP
50 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace think\test\queue;
|
||
|
|
||
|
use InvalidArgumentException;
|
||
|
use Mockery as m;
|
||
|
use think\Config;
|
||
|
use think\Queue;
|
||
|
use think\queue\connector\Sync;
|
||
|
|
||
|
class QueueTest extends TestCase
|
||
|
{
|
||
|
/** @var Queue */
|
||
|
protected $queue;
|
||
|
|
||
|
protected function setUp()
|
||
|
{
|
||
|
parent::setUp();
|
||
|
$this->queue = new Queue($this->app);
|
||
|
}
|
||
|
|
||
|
public function testDefaultConnectionCanBeResolved()
|
||
|
{
|
||
|
$sync = new Sync();
|
||
|
|
||
|
$this->app->shouldReceive('invokeClass')->once()->with('\think\queue\connector\Sync', [['driver' => 'sync']])->andReturn($sync);
|
||
|
|
||
|
$config = m::mock(Config::class);
|
||
|
|
||
|
$config->shouldReceive('get')->twice()->with('queue.connectors.sync', ['driver' => 'sync'])->andReturn(['driver' => 'sync']);
|
||
|
$config->shouldReceive('get')->once()->with('queue.default', 'sync')->andReturn('sync');
|
||
|
|
||
|
$this->app->shouldReceive('get')->times(3)->with('config')->andReturn($config);
|
||
|
|
||
|
$this->assertSame($sync, $this->queue->driver('sync'));
|
||
|
$this->assertSame($sync, $this->queue->driver());
|
||
|
}
|
||
|
|
||
|
public function testNotSupportDriver()
|
||
|
{
|
||
|
$config = m::mock(Config::class);
|
||
|
|
||
|
$config->shouldReceive('get')->once()->with('queue.connectors.hello', ['driver' => 'sync'])->andReturn(['driver' => 'hello']);
|
||
|
$this->app->shouldReceive('get')->once()->with('config')->andReturn($config);
|
||
|
|
||
|
$this->expectException(InvalidArgumentException::class);
|
||
|
$this->queue->driver('hello');
|
||
|
}
|
||
|
}
|