1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- namespace Cron\Tests;
- use Cron\DayOfMonthField;
- use DateTime;
- use DateTimeImmutable;
- use PHPUnit\Framework\TestCase;
- /**
- * @author Michael Dowling <mtdowling@gmail.com>
- */
- class DayOfMonthFieldTest extends TestCase
- {
- /**
- * @covers \Cron\DayOfMonthField::validate
- */
- public function testValidatesField()
- {
- $f = new DayOfMonthField();
- $this->assertTrue($f->validate('1'));
- $this->assertTrue($f->validate('*'));
- $this->assertTrue($f->validate('L'));
- $this->assertTrue($f->validate('5W'));
- $this->assertTrue($f->validate('01'));
- $this->assertFalse($f->validate('5W,L'));
- $this->assertFalse($f->validate('1.'));
- }
- /**
- * @covers \Cron\DayOfMonthField::isSatisfiedBy
- */
- public function testChecksIfSatisfied()
- {
- $f = new DayOfMonthField();
- $this->assertTrue($f->isSatisfiedBy(new DateTime(), '?'));
- $this->assertTrue($f->isSatisfiedBy(new DateTimeImmutable(), '?'));
- }
- /**
- * @covers \Cron\DayOfMonthField::increment
- */
- public function testIncrementsDate()
- {
- $d = new DateTime('2011-03-15 11:15:00');
- $f = new DayOfMonthField();
- $f->increment($d);
- $this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));
- $d = new DateTime('2011-03-15 11:15:00');
- $f->increment($d, true);
- $this->assertSame('2011-03-14 23:59:00', $d->format('Y-m-d H:i:s'));
- }
- /**
- * @covers \Cron\DayOfMonthField::increment
- */
- public function testIncrementsDateTimeImmutable()
- {
- $d = new DateTimeImmutable('2011-03-15 11:15:00');
- $f = new DayOfMonthField();
- $f->increment($d);
- $this->assertSame('2011-03-16 00:00:00', $d->format('Y-m-d H:i:s'));
- }
- /**
- * Day of the month cannot accept a 0 value, it must be between 1 and 31
- * See Github issue #120
- *
- * @since 2017-01-22
- */
- public function testDoesNotAccept0Date()
- {
- $f = new DayOfMonthField();
- $this->assertFalse($f->validate(0));
- }
- }
|