Spaces:
No application file
No application file
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()); | |
} | |
} | |