66 lines
2.0 KiB
PHP
66 lines
2.0 KiB
PHP
<?php
|
|
namespace Incoviba\Test\Service;
|
|
|
|
use Psr\Log\LoggerInterface;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Incoviba\Service\Job;
|
|
use Incoviba\Service\Queue;
|
|
use Incoviba\Service\Worker;
|
|
use Incoviba\Model;
|
|
|
|
class QueueTest extends TestCase
|
|
{
|
|
protected LoggerInterface $logger;
|
|
protected Job $jobService;
|
|
protected Worker $defaultWorker;
|
|
protected function setUp(): void
|
|
{
|
|
$this->logger = $this->getMockBuilder(LoggerInterface::class)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$this->jobService = $this->getMockBuilder(Job::class)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$this->defaultWorker = $this->getMockBuilder(Worker::class)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
}
|
|
|
|
public function testRegister(): void
|
|
{
|
|
$queue = new Queue($this->logger, $this->jobService, $this->defaultWorker);
|
|
$worker = $this->getMockBuilder(Worker::class)
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
$queue->register('test', $worker);
|
|
$this->assertTrue(true);
|
|
}
|
|
public function testEnqueue(): void
|
|
{
|
|
$queue = new Queue($this->logger, $this->jobService, $this->defaultWorker);
|
|
$jobData = ['test' => 'test'];
|
|
$result = $queue->enqueue($jobData);
|
|
$this->assertTrue($result);
|
|
|
|
$result = $queue->push($jobData);
|
|
$this->assertTrue($result);
|
|
}
|
|
public function testRun(): void
|
|
{
|
|
$queue = new Queue($this->logger, $this->jobService, $this->defaultWorker);
|
|
$result = $queue->run();
|
|
$this->assertTrue($result);
|
|
|
|
|
|
$jobData = [
|
|
'type' => 'test',
|
|
];
|
|
$job = new Model\Job();
|
|
$job->id = 1;
|
|
$job->configuration = $jobData;
|
|
$this->jobService->method('isPending')->willReturn(true);
|
|
$this->jobService->method('get')->willReturn($job);
|
|
$result = $queue->run();
|
|
$this->assertTrue($result);
|
|
}
|
|
} |