Spaces:
No application file
No application file
File size: 2,831 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 |
<?php
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;
}
}
|