Spaces:
No application file
No application file
File size: 2,602 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
<?php
namespace Mautic\ReportBundle\Tests\Model;
use Doctrine\ORM\EntityManager;
use Mautic\ReportBundle\Entity\Report;
use Mautic\ReportBundle\Entity\Scheduler;
use Mautic\ReportBundle\Entity\SchedulerRepository;
use Mautic\ReportBundle\Model\ScheduleModel;
use Mautic\ReportBundle\Scheduler\Model\SchedulerPlanner;
use Mautic\ReportBundle\Scheduler\Option\ExportOption;
use PHPUnit\Framework\MockObject\MockObject;
class ScheduleModelTest extends \PHPUnit\Framework\TestCase
{
/**
* @var MockObject|SchedulerRepository
*/
private MockObject $schedulerRepository;
/**
* @var MockObject|EntityManager
*/
private MockObject $entityManager;
/**
* @var MockObject|SchedulerPlanner
*/
private MockObject $schedulerPlanner;
/**
* @var MockObject|ExportOption
*/
private MockObject $exportOption;
private ScheduleModel $scheduleModel;
protected function setUp(): void
{
$this->schedulerRepository = $this->createMock(SchedulerRepository::class);
$this->entityManager = $this->createMock(EntityManager::class);
$this->schedulerPlanner = $this->createMock(SchedulerPlanner::class);
$this->exportOption = $this->createMock(ExportOption::class);
$this->entityManager->expects($this->once())
->method('getRepository')
->with(Scheduler::class)
->willReturn($this->schedulerRepository);
$this->scheduleModel = new ScheduleModel($this->entityManager, $this->schedulerPlanner);
}
public function testGetScheduledReportsForExport(): void
{
$this->schedulerRepository->expects($this->once())
->method('getScheduledReportsForExport')
->with($this->exportOption);
$this->scheduleModel->getScheduledReportsForExport($this->exportOption);
}
public function testReportWasScheduled(): void
{
$report = new Report();
$this->schedulerPlanner->expects($this->once())
->method('computeScheduler')
->with($report);
$this->scheduleModel->reportWasScheduled($report);
}
public function testTurnOffScheduler(): void
{
$report = new Report();
$report->setIsScheduled(true);
$this->entityManager->expects($this->once())
->method('persist')
->with($report);
$this->entityManager->expects($this->once())
->method('flush');
$this->scheduleModel->turnOffScheduler($report);
$this->assertFalse($report->isScheduled());
}
}
|