Add unit test for ProjectMetricJob
This commit is contained in:
@@ -157,6 +157,7 @@ use Pimple\Container;
|
|||||||
* @property \Kanboard\Job\TaskLinkEventJob $taskLinkEventJob
|
* @property \Kanboard\Job\TaskLinkEventJob $taskLinkEventJob
|
||||||
* @property \Kanboard\Job\ProjectFileEventJob $projectFileEventJob
|
* @property \Kanboard\Job\ProjectFileEventJob $projectFileEventJob
|
||||||
* @property \Kanboard\Job\NotificationJob $notificationJob
|
* @property \Kanboard\Job\NotificationJob $notificationJob
|
||||||
|
* @property \Kanboard\Job\ProjectMetricJob $projectMetricJob
|
||||||
* @property \Psr\Log\LoggerInterface $logger
|
* @property \Psr\Log\LoggerInterface $logger
|
||||||
* @property \PicoDb\Database $db
|
* @property \PicoDb\Database $db
|
||||||
* @property \Symfony\Component\EventDispatcher\EventDispatcher $dispatcher
|
* @property \Symfony\Component\EventDispatcher\EventDispatcher $dispatcher
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace Kanboard\ServiceProvider;
|
|||||||
use Kanboard\Job\CommentEventJob;
|
use Kanboard\Job\CommentEventJob;
|
||||||
use Kanboard\Job\NotificationJob;
|
use Kanboard\Job\NotificationJob;
|
||||||
use Kanboard\Job\ProjectFileEventJob;
|
use Kanboard\Job\ProjectFileEventJob;
|
||||||
|
use Kanboard\Job\ProjectMetricJob;
|
||||||
use Kanboard\Job\SubtaskEventJob;
|
use Kanboard\Job\SubtaskEventJob;
|
||||||
use Kanboard\Job\TaskEventJob;
|
use Kanboard\Job\TaskEventJob;
|
||||||
use Kanboard\Job\TaskFileEventJob;
|
use Kanboard\Job\TaskFileEventJob;
|
||||||
@@ -57,6 +58,10 @@ class JobProvider implements ServiceProviderInterface
|
|||||||
return new NotificationJob($c);
|
return new NotificationJob($c);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$container['projectMetricJob'] = $container->factory(function ($c) {
|
||||||
|
return new ProjectMetricJob($c);
|
||||||
|
});
|
||||||
|
|
||||||
return $container;
|
return $container;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
namespace Kanboard\Subscriber;
|
namespace Kanboard\Subscriber;
|
||||||
|
|
||||||
use Kanboard\Event\TaskEvent;
|
use Kanboard\Event\TaskEvent;
|
||||||
use Kanboard\Job\ProjectMetricJob;
|
|
||||||
use Kanboard\Model\TaskModel;
|
use Kanboard\Model\TaskModel;
|
||||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||||
|
|
||||||
@@ -22,9 +21,7 @@ class ProjectDailySummarySubscriber extends BaseSubscriber implements EventSubsc
|
|||||||
|
|
||||||
public function execute(TaskEvent $event)
|
public function execute(TaskEvent $event)
|
||||||
{
|
{
|
||||||
if (isset($event['project_id'])) {
|
$this->logger->debug('Subscriber executed: '.__METHOD__);
|
||||||
$this->logger->debug('Subscriber executed: '.__METHOD__);
|
$this->queueManager->push($this->projectMetricJob->withParams($event['task']['project_id']));
|
||||||
$this->queueManager->push(ProjectMetricJob::getInstance($this->container)->withParams($event['project_id']));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
47
tests/units/Job/ProjectMetricJobTest.php
Normal file
47
tests/units/Job/ProjectMetricJobTest.php
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Kanboard\Job\ProjectMetricJob;
|
||||||
|
|
||||||
|
require_once __DIR__.'/../Base.php';
|
||||||
|
|
||||||
|
class ProjectMetricJobTest extends Base
|
||||||
|
{
|
||||||
|
public function testJobParams()
|
||||||
|
{
|
||||||
|
$projectMetricJob = new ProjectMetricJob($this->container);
|
||||||
|
$projectMetricJob->withParams(123);
|
||||||
|
|
||||||
|
$this->assertSame(
|
||||||
|
array(123),
|
||||||
|
$projectMetricJob->getJobParams()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testJob()
|
||||||
|
{
|
||||||
|
$this->container['projectDailyColumnStatsModel'] = $this
|
||||||
|
->getMockBuilder('\Kanboard\Model\ProjectDailyColumnStatsModel')
|
||||||
|
->setConstructorArgs(array($this->container))
|
||||||
|
->setMethods(array('updateTotals'))
|
||||||
|
->getMock();
|
||||||
|
|
||||||
|
$this->container['projectDailyStatsModel'] = $this
|
||||||
|
->getMockBuilder('\Kanboard\Model\ProjectDailyStatsModel')
|
||||||
|
->setConstructorArgs(array($this->container))
|
||||||
|
->setMethods(array('updateTotals'))
|
||||||
|
->getMock();
|
||||||
|
|
||||||
|
$this->container['projectDailyColumnStatsModel']
|
||||||
|
->expects($this->once())
|
||||||
|
->method('updateTotals')
|
||||||
|
->with(42, date('Y-m-d'));
|
||||||
|
|
||||||
|
$this->container['projectDailyStatsModel']
|
||||||
|
->expects($this->once())
|
||||||
|
->method('updateTotals')
|
||||||
|
->with(42, date('Y-m-d'));
|
||||||
|
|
||||||
|
$job = new ProjectMetricJob($this->container);
|
||||||
|
$job->execute(42);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user