-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathConnectorTest.php
72 lines (62 loc) · 2.05 KB
/
ConnectorTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
namespace LaravelQless\Tests\Queue;
use LaravelQless\Contracts\JobHandler;
use Orchestra\Testbench\TestCase;
use Illuminate\Queue\Connectors\ConnectorInterface;
use LaravelQless\Queue\QlessConnector;
use LaravelQless\Queue\QlessQueue;
use Qless\Client;
class ConnectorTest extends TestCase
{
public function testShouldImplementConnectorInterface()
{
$rc = new \ReflectionClass(QlessConnector::class);
$this->assertTrue($rc->implementsInterface(ConnectorInterface::class));
}
public function testConnect()
{
$connector = new QlessConnector();
$queue = $connector->connect([
'redis_connection' => 'qless',
'connection' => 'qless',
]);
$this->assertInstanceOf(QlessQueue::class, $queue);
}
public function testShardingConnect()
{
$connector = new QlessConnector();
$queue = $connector->connect([
'redis_connection' => ['qless1', 'qless2'],
'connection' => 'qless',
]);
$this->assertInstanceOf(QlessQueue::class, $queue);
$this->assertInstanceOf(Client::class, $queue->getNextConnection());
$this->assertInstanceOf(Client::class, $queue->getNextConnection());
$this->assertInstanceOf(Client::class, $queue->getNextConnection());
}
/**
* Set laravel config
* @param \Illuminate\Foundation\Application $app
*/
protected function getEnvironmentSetUp($app)
{
// Setup default redis
$app['config']->set('database.redis.qless', [
'host' => REDIS_HOST,
'port' => REDIS_PORT,
]);
$app['config']->set('database.redis.qless1', [
'host' => REDIS_HOST,
'port' => REDIS_PORT,
]);
$app['config']->set('database.redis.qless2', [
'host' => REDIS_HOST,
'port' => REDIS_PORT,
]);
}
protected function getApplicationProviders($app)
{
$app->bindIf(JobHandler::class, CustomHandler::class);
return $app['config']['app.providers'];
}
}