Spaces:
No application file
No application file
namespace Mautic\ReportBundle\Tests\Scheduler\Builder; | |
use Mautic\ReportBundle\Scheduler\Builder\SchedulerDailyBuilder; | |
use Mautic\ReportBundle\Scheduler\Entity\SchedulerEntity; | |
use Mautic\ReportBundle\Scheduler\Enum\SchedulerEnum; | |
use Mautic\ReportBundle\Scheduler\Exception\InvalidSchedulerException; | |
use Recurr\Exception\InvalidArgument; | |
use Recurr\Rule; | |
class SchedulerDailyBuilderTest extends \PHPUnit\Framework\TestCase | |
{ | |
public function testBuilEvent(): void | |
{ | |
$schedulerDailyBuilder = new SchedulerDailyBuilder(); | |
$schedulerEntity = new SchedulerEntity(true, SchedulerEnum::UNIT_DAILY, null, null); | |
$startDate = (new \DateTime())->setTime(0, 0)->modify('+1 day'); | |
$rule = new Rule(); | |
$rule->setStartDate($startDate) | |
->setCount(1); | |
$schedulerDailyBuilder->build($rule, $schedulerEntity); | |
$this->assertEquals(Rule::$freqs['DAILY'], $rule->getFreq()); | |
} | |
public function testBuilEventFails(): void | |
{ | |
$schedulerDailyBuilder = new SchedulerDailyBuilder(); | |
$schedulerEntity = new SchedulerEntity(true, SchedulerEnum::UNIT_DAILY, null, null); | |
$rule = $this->getMockBuilder(Rule::class) | |
->disableOriginalConstructor() | |
->getMock(); | |
$rule->expects($this->once()) | |
->method('setFreq') | |
->with('DAILY') | |
->willThrowException(new InvalidArgument()); | |
$this->expectException(InvalidSchedulerException::class); | |
$schedulerDailyBuilder->build($rule, $schedulerEntity); | |
} | |
} | |