Passed
Pull Request — master (#57)
by Matthew
07:32
created

JobManagerTest::setUpBeforeClass()   B

Complexity

Conditions 4
Paths 4

Size

Total Lines 28
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 28
rs 8.5806
c 0
b 0
f 0
cc 4
eloc 21
nc 4
nop 0
1
<?php
2
3
namespace Dtc\QueueBundle\Tests\Beanstalkd;
4
5
use Dtc\QueueBundle\Beanstalkd\JobManager;
6
use Dtc\QueueBundle\Manager\JobTimingManager;
7
use Dtc\QueueBundle\Manager\RunManager;
8
use Dtc\QueueBundle\Tests\FibonacciWorker;
9
use Dtc\QueueBundle\Tests\Manager\AutoRetryTrait;
10
use Dtc\QueueBundle\Tests\Manager\BaseJobManagerTest;
11
use Dtc\QueueBundle\Tests\Manager\RetryableTrait;
12
use Pheanstalk\Pheanstalk;
13
14
/**
15
 * @author David
16
 *
17
 * This test requires local beanstalkd running
18
 */
19
class JobManagerTest extends BaseJobManagerTest
20
{
21
    use AutoRetryTrait;
22
    use RetryableTrait;
23
    public static $beanstalkd;
24
25
    public static function setUpBeforeClass()
26
    {
27
        $host = getenv('BEANSTALKD_HOST');
28
        $className = 'Dtc\QueueBundle\Beanstalkd\Job';
29
        $jobTimingClass = 'Dtc\QueueBundle\Model\JobTiming';
30
        $runClass = 'Dtc\QueueBundle\Model\Run';
31
32
        self::$beanstalkd = new Pheanstalk($host);
33
        self::$jobTimingManager = new JobTimingManager($jobTimingClass, false);
34
        self::$runManager = new RunManager($runClass);
35
        self::$jobManager = new JobManager(self::$runManager, self::$jobTimingManager, $className);
36
        self::$jobManager->setBeanstalkd(self::$beanstalkd);
37
        self::$worker = new FibonacciWorker();
38
39
        $drained = 0;
40
        do {
41
            $beanJob = self::$beanstalkd->reserve(1);
42
            if ($beanJob) {
43
                self::$beanstalkd->delete($beanJob);
44
                ++$drained;
45
            }
46
        } while ($beanJob);
47
48
        if ($drained) {
49
            echo "\nbeanstalkd: drained $drained prior to test\n";
50
        }
51
        parent::setUpBeforeClass();
52
    }
53
54
    public function testGetJobByWorker()
55
    {
56
        $failed = false;
57
        try {
58
            self::$jobManager->getJob(self::$worker->getName());
59
            $failed = true;
60
        } catch (\Exception $exception) {
61
            self::assertTrue(true);
62
        }
63
        self::assertFalse($failed);
64
    }
65
}
66