xref: /plugin/combo/vendor/dragonmantank/cron-expression/tests/Cron/AbstractFieldTest.php (revision 37748cd8654635afbeca80942126742f0f4cc346)
1*37748cd8SNickeau<?php
2*37748cd8SNickeau
3*37748cd8SNickeaunamespace Cron\Tests;
4*37748cd8SNickeau
5*37748cd8SNickeauuse Cron\DayOfWeekField;
6*37748cd8SNickeauuse PHPUnit_Framework_TestCase;
7*37748cd8SNickeau
8*37748cd8SNickeau/**
9*37748cd8SNickeau * @author Michael Dowling <mtdowling@gmail.com>
10*37748cd8SNickeau */
11*37748cd8SNickeauclass AbstractFieldTest extends PHPUnit_Framework_TestCase
12*37748cd8SNickeau{
13*37748cd8SNickeau    /**
14*37748cd8SNickeau     * @covers Cron\AbstractField::isRange
15*37748cd8SNickeau     */
16*37748cd8SNickeau    public function testTestsIfRange()
17*37748cd8SNickeau    {
18*37748cd8SNickeau        $f = new DayOfWeekField();
19*37748cd8SNickeau        $this->assertTrue($f->isRange('1-2'));
20*37748cd8SNickeau        $this->assertFalse($f->isRange('2'));
21*37748cd8SNickeau    }
22*37748cd8SNickeau
23*37748cd8SNickeau    /**
24*37748cd8SNickeau     * @covers Cron\AbstractField::isIncrementsOfRanges
25*37748cd8SNickeau     */
26*37748cd8SNickeau    public function testTestsIfIncrementsOfRanges()
27*37748cd8SNickeau    {
28*37748cd8SNickeau        $f = new DayOfWeekField();
29*37748cd8SNickeau        $this->assertFalse($f->isIncrementsOfRanges('1-2'));
30*37748cd8SNickeau        $this->assertTrue($f->isIncrementsOfRanges('1/2'));
31*37748cd8SNickeau        $this->assertTrue($f->isIncrementsOfRanges('*/2'));
32*37748cd8SNickeau        $this->assertTrue($f->isIncrementsOfRanges('3-12/2'));
33*37748cd8SNickeau    }
34*37748cd8SNickeau
35*37748cd8SNickeau    /**
36*37748cd8SNickeau     * @covers Cron\AbstractField::isInRange
37*37748cd8SNickeau     */
38*37748cd8SNickeau    public function testTestsIfInRange()
39*37748cd8SNickeau    {
40*37748cd8SNickeau        $f = new DayOfWeekField();
41*37748cd8SNickeau        $this->assertTrue($f->isInRange('1', '1-2'));
42*37748cd8SNickeau        $this->assertTrue($f->isInRange('2', '1-2'));
43*37748cd8SNickeau        $this->assertTrue($f->isInRange('5', '4-12'));
44*37748cd8SNickeau        $this->assertFalse($f->isInRange('3', '4-12'));
45*37748cd8SNickeau        $this->assertFalse($f->isInRange('13', '4-12'));
46*37748cd8SNickeau    }
47*37748cd8SNickeau
48*37748cd8SNickeau    /**
49*37748cd8SNickeau     * @covers Cron\AbstractField::isInIncrementsOfRanges
50*37748cd8SNickeau     */
51*37748cd8SNickeau    public function testTestsIfInIncrementsOfRanges()
52*37748cd8SNickeau    {
53*37748cd8SNickeau        $f = new DayOfWeekField();
54*37748cd8SNickeau        $this->assertTrue($f->isInIncrementsOfRanges('3', '3-59/2'));
55*37748cd8SNickeau        $this->assertTrue($f->isInIncrementsOfRanges('13', '3-59/2'));
56*37748cd8SNickeau        $this->assertTrue($f->isInIncrementsOfRanges('15', '3-59/2'));
57*37748cd8SNickeau        $this->assertTrue($f->isInIncrementsOfRanges('14', '*/2'));
58*37748cd8SNickeau        $this->assertFalse($f->isInIncrementsOfRanges('2', '3-59/13'));
59*37748cd8SNickeau        $this->assertFalse($f->isInIncrementsOfRanges('14', '*/13'));
60*37748cd8SNickeau        $this->assertFalse($f->isInIncrementsOfRanges('14', '3-59/2'));
61*37748cd8SNickeau        $this->assertFalse($f->isInIncrementsOfRanges('3', '2-59'));
62*37748cd8SNickeau        $this->assertFalse($f->isInIncrementsOfRanges('3', '2'));
63*37748cd8SNickeau        $this->assertFalse($f->isInIncrementsOfRanges('3', '*'));
64*37748cd8SNickeau        $this->assertFalse($f->isInIncrementsOfRanges('0', '*/0'));
65*37748cd8SNickeau        $this->assertFalse($f->isInIncrementsOfRanges('1', '*/0'));
66*37748cd8SNickeau
67*37748cd8SNickeau        $this->assertTrue($f->isInIncrementsOfRanges('4', '4/10'));
68*37748cd8SNickeau        $this->assertTrue($f->isInIncrementsOfRanges('14', '4/10'));
69*37748cd8SNickeau        $this->assertTrue($f->isInIncrementsOfRanges('34', '4/10'));
70*37748cd8SNickeau    }
71*37748cd8SNickeau
72*37748cd8SNickeau    /**
73*37748cd8SNickeau     * @covers Cron\AbstractField::isSatisfied
74*37748cd8SNickeau     */
75*37748cd8SNickeau    public function testTestsIfSatisfied()
76*37748cd8SNickeau    {
77*37748cd8SNickeau        $f = new DayOfWeekField();
78*37748cd8SNickeau        $this->assertTrue($f->isSatisfied('12', '3-13'));
79*37748cd8SNickeau        $this->assertTrue($f->isSatisfied('15', '3-59/12'));
80*37748cd8SNickeau        $this->assertTrue($f->isSatisfied('12', '*'));
81*37748cd8SNickeau        $this->assertTrue($f->isSatisfied('12', '12'));
82*37748cd8SNickeau        $this->assertFalse($f->isSatisfied('12', '3-11'));
83*37748cd8SNickeau        $this->assertFalse($f->isSatisfied('12', '3-59/13'));
84*37748cd8SNickeau        $this->assertFalse($f->isSatisfied('12', '11'));
85*37748cd8SNickeau    }
86*37748cd8SNickeau}
87