Merge pull request #3689 from nextcloud/bugfix/noid/fix-cron-jobs

Fix cron jobs
This commit is contained in:
Julius Härtl
2022-04-08 21:47:48 +02:00
committed by GitHub
5 changed files with 32 additions and 13 deletions

View File

@@ -24,6 +24,7 @@
namespace OCA\Deck\Cron; namespace OCA\Deck\Cron;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\Job; use OCP\BackgroundJob\Job;
use OCA\Deck\Activity\ActivityManager; use OCA\Deck\Activity\ActivityManager;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
@@ -35,7 +36,8 @@ class CardDescriptionActivity extends Job {
/** @var CardMapper */ /** @var CardMapper */
private $cardMapper; private $cardMapper;
public function __construct(ActivityManager $activityManager, CardMapper $cardMapper) { public function __construct(ITimeFactory $time, ActivityManager $activityManager, CardMapper $cardMapper) {
parent::__construct($time);
$this->activityManager = $activityManager; $this->activityManager = $activityManager;
$this->cardMapper = $cardMapper; $this->cardMapper = $cardMapper;
} }

View File

@@ -24,6 +24,7 @@
namespace OCA\Deck\Cron; namespace OCA\Deck\Cron;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob; use OCP\BackgroundJob\TimedJob;
use OCA\Deck\Db\AttachmentMapper; use OCA\Deck\Db\AttachmentMapper;
use OCA\Deck\Db\BoardMapper; use OCA\Deck\Db\BoardMapper;
@@ -40,7 +41,8 @@ class DeleteCron extends TimedJob {
/** @var AttachmentMapper */ /** @var AttachmentMapper */
private $attachmentMapper; private $attachmentMapper;
public function __construct(BoardMapper $boardMapper, AttachmentService $attachmentService, AttachmentMapper $attachmentMapper) { public function __construct(ITimeFactory $time, BoardMapper $boardMapper, AttachmentService $attachmentService, AttachmentMapper $attachmentMapper) {
parent::__construct($time);
$this->boardMapper = $boardMapper; $this->boardMapper = $boardMapper;
$this->attachmentService = $attachmentService; $this->attachmentService = $attachmentService;
$this->attachmentMapper = $attachmentMapper; $this->attachmentMapper = $attachmentMapper;

View File

@@ -23,6 +23,7 @@
namespace OCA\Deck\Cron; namespace OCA\Deck\Cron;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\Job; use OCP\BackgroundJob\Job;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
@@ -40,10 +41,12 @@ class ScheduledNotifications extends Job {
protected $logger; protected $logger;
public function __construct( public function __construct(
ITimeFactory $time,
CardMapper $cardMapper, CardMapper $cardMapper,
NotificationHelper $notificationHelper, NotificationHelper $notificationHelper,
ILogger $logger ILogger $logger
) { ) {
parent::__construct($time);
$this->cardMapper = $cardMapper; $this->cardMapper = $cardMapper;
$this->notificationHelper = $notificationHelper; $this->notificationHelper = $notificationHelper;
$this->logger = $logger; $this->logger = $logger;

View File

@@ -30,24 +30,30 @@ use OCA\Deck\Db\BoardMapper;
use OCA\Deck\InvalidAttachmentType; use OCA\Deck\InvalidAttachmentType;
use OCA\Deck\Service\AttachmentService; use OCA\Deck\Service\AttachmentService;
use OCA\Deck\Service\IAttachmentService; use OCA\Deck\Service\IAttachmentService;
use OCP\AppFramework\Utility\ITimeFactory;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class DeleteCronTest extends \Test\TestCase { class DeleteCronTest extends TestCase {
/** @var BoardMapper|\PHPUnit\Framework\MockObject\MockObject */ /** @var ITimeFactory|MockObject */
private $timeFactory;
/** @var BoardMapper|MockObject */
protected $boardMapper; protected $boardMapper;
/** @var AttachmentService|\PHPUnit\Framework\MockObject\MockObject */ /** @var AttachmentService|MockObject */
private $attachmentService; private $attachmentService;
/** @var AttachmentMapper|\PHPUnit\Framework\MockObject\MockObject */ /** @var AttachmentMapper|MockObject */
private $attachmentMapper; private $attachmentMapper;
/** @var DeleteCron */ /** @var DeleteCron */
protected $deleteCron; protected $deleteCron;
public function setUp(): void { public function setUp(): void {
parent::setUp(); parent::setUp();
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->boardMapper = $this->createMock(BoardMapper::class); $this->boardMapper = $this->createMock(BoardMapper::class);
$this->attachmentService = $this->createMock(AttachmentService::class); $this->attachmentService = $this->createMock(AttachmentService::class);
$this->attachmentMapper = $this->createMock(AttachmentMapper::class); $this->attachmentMapper = $this->createMock(AttachmentMapper::class);
$this->deleteCron = new DeleteCron($this->boardMapper, $this->attachmentService, $this->attachmentMapper); $this->deleteCron = new DeleteCron($this->timeFactory, $this->boardMapper, $this->attachmentService, $this->attachmentMapper);
} }
protected function getBoard($id) { protected function getBoard($id) {

View File

@@ -26,28 +26,34 @@ namespace OCA\Deck\Cron;
use OCA\Deck\Db\Card; use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper; use OCA\Deck\Db\CardMapper;
use OCA\Deck\Notification\NotificationHelper; use OCA\Deck\Notification\NotificationHelper;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\ILogger; use OCP\ILogger;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class ScheduledNoificationsTest extends \Test\TestCase { class ScheduledNoificationsTest extends TestCase {
/** @var CardMapper|\PHPUnit\Framework\MockObject\MockObject */ /** @var ITimeFactory|MockObject */
protected $timeFactory;
/** @var CardMapper|MockObject */
protected $cardMapper; protected $cardMapper;
/** @var NotificationHelper|\PHPUnit\Framework\MockObject\MockObject */ /** @var NotificationHelper|MockObject */
protected $notificationHelper; protected $notificationHelper;
/** @var ILogger|\PHPUnit\Framework\MockObject\MockObject */ /** @var ILogger|MockObject */
protected $logger; protected $logger;
/** @var ScheduledNotifications */ /** @var ScheduledNotifications */
protected $scheduledNotifications; protected $scheduledNotifications;
public function setUp(): void { public function setUp(): void {
parent::setUp(); parent::setUp();
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->cardMapper = $this->createMock(CardMapper::class); $this->cardMapper = $this->createMock(CardMapper::class);
$this->notificationHelper = $this->createMock(NotificationHelper::class); $this->notificationHelper = $this->createMock(NotificationHelper::class);
$this->logger = $this->createMock(ILogger::class); $this->logger = $this->createMock(ILogger::class);
$this->scheduledNotifications = new ScheduledNotifications($this->cardMapper, $this->notificationHelper, $this->logger); $this->scheduledNotifications = new ScheduledNotifications($this->timeFactory, $this->cardMapper, $this->notificationHelper, $this->logger);
} }
public function testDeleteCron() { public function testScheduledCron() {
$c1 = new Card(); $c1 = new Card();
$c2 = new Card(); $c2 = new Card();
$cards = [$c1, $c2]; $cards = [$c1, $c2];