Completed
Branch master (a9e65f)
by Adam
03:43
created

RedisDriverTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 3
Bugs 1 Features 1
Metric Value
c 3
b 1
f 1
dl 0
loc 58
wmc 4
lcom 1
cbo 2
rs 10
1
<?php
2
3
namespace Equip\Queue\Driver;
4
5
use Equip\Queue\TestCase;
6
use Redis;
7
8
class RedisDriverTest extends TestCase
9
{
10
    /**
11
     * @var Redis
12
     */
13
    private $redis;
14
15
    /**
16
     * @var RedisDriver
17
     */
18
    private $driver;
19
20
    protected function setUp()
21
    {
22
        $this->redis = $this->createMock(Redis::class);
23
        $this->driver = new RedisDriver($this->redis);
24
    }
25
26
    public function testPush()
27
    {
28
        $queue = 'test-queue';
29
        $message = json_encode(['test' => 'example']);
30
31
        $this->redis
32
            ->expects($this->once())
33
            ->method('rPush')
34
            ->with($queue, $message)
35
            ->willReturn(true);
36
37
        $this->assertTrue($this->driver->enqueue($queue, $message));
38
    }
39
40
    public function testPop()
41
    {
42
        $queue = 'test-queue';
43
44
        $this->redis
45
            ->expects($this->once())
46
            ->method('blPop')
47
            ->with($queue, 5)
48
            ->willReturn(['test', 'example']);
49
50
        $this->assertSame('example', $this->driver->dequeue($queue));
51
    }
52
53
    public function testPopEmpty()
54
    {
55
        $queue = 'test-queue';
56
57
        $this->redis
58
            ->expects($this->once())
59
            ->method('blPop')
60
            ->with($queue, 5)
61
            ->willReturn(null);
62
63
        $this->assertNull($this->driver->dequeue($queue));
64
    }
65
}
66