Spaces:
No application file
No application file
namespace Mautic\ReportBundle\Tests\Entity; | |
use Doctrine\ORM\AbstractQuery; | |
use Doctrine\ORM\QueryBuilder; | |
use Mautic\CoreBundle\Test\Doctrine\RepositoryConfiguratorTrait; | |
use Mautic\ReportBundle\Entity\Scheduler; | |
use Mautic\ReportBundle\Scheduler\Option\ExportOption; | |
use PHPUnit\Framework\MockObject\MockObject; | |
class SchedulerRepositoryTest extends \PHPUnit\Framework\TestCase | |
{ | |
use RepositoryConfiguratorTrait; | |
public function testGetScheduledReportsForExportNoID(): void | |
{ | |
$schedulerRepository = $this->configureRepository(Scheduler::class); | |
$this->entityManager->expects($this->once()) | |
->method('createQueryBuilder') | |
->with() | |
->willReturn($this->getQueryBuilderMock()); | |
$result = $schedulerRepository->getScheduledReportsForExport(new ExportOption(null)); | |
$this->assertSame([], $result); | |
} | |
/** | |
* @return QueryBuilder|MockObject | |
*/ | |
private function getQueryBuilderMock() | |
{ | |
$queryBuilderMock = $this->getMockBuilder(QueryBuilder::class) | |
->disableOriginalConstructor() | |
->getMock(); | |
$queryBuilderMock->expects($this->once()) | |
->method('select') | |
->with('scheduler') | |
->willReturn($queryBuilderMock); | |
$queryBuilderMock->expects($this->once()) | |
->method('from') | |
->willReturn($queryBuilderMock); | |
$queryBuilderMock->expects($this->once()) | |
->method('addSelect') | |
->with('report') | |
->willReturn($queryBuilderMock); | |
$queryBuilderMock->expects($this->once()) | |
->method('leftJoin') | |
->with('scheduler.report', 'report') | |
->willReturn($queryBuilderMock); | |
$queryBuilderMock->expects($this->once()) | |
->method('andWhere') | |
->with('scheduler.scheduleDate <= :scheduleDate') | |
->willReturn($queryBuilderMock); | |
$queryBuilderMock->expects($this->once()) | |
->method('setParameter') | |
->with('scheduleDate', $this->callback(function ($date) { | |
$today = new \DateTime(); | |
$today->modify('+1 seconds'); // make sure our date is bigger | |
return $date instanceof \DateTime && $date < $today; | |
})) | |
->willReturn($queryBuilderMock); | |
$abstractQueryMock = $this->getMockBuilder(AbstractQuery::class) | |
->disableOriginalConstructor() | |
->getMock(); | |
$queryBuilderMock->expects($this->once()) | |
->method('getQuery') | |
->with() | |
->willReturn($abstractQueryMock); | |
$abstractQueryMock->expects($this->once()) | |
->method('getResult') | |
->with() | |
->willReturn([]); | |
return $queryBuilderMock; | |
} | |
} | |