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'); | ||
|  |     } | ||
|  | } |