create bzipped phar file
[bdrem.git] / tests / bdrem / EventTest.php
1 <?php
2 namespace bdrem;
3
4 class EventTest extends \PHPUnit_Framework_TestCase
5 {
6     public function testIsWithinSameDaySameYear()
7     {
8         $event = new Event('Amy', 'birthday', '1995-02-24');
9         $this->assertTrue($event->isWithin('1995-02-24', 0, 0));
10         $this->assertTrue($event->isWithin('1995-02-24', 3, 7));
11     }
12
13     public function testIsWithinSameDayDifferentYear()
14     {
15         $event = new Event('Amy', 'birthday', '1995-02-24');
16         $this->assertTrue($event->isWithin('2019-02-24', 0, 0));
17         $this->assertTrue($event->isWithin('1996-02-24', 3, 7));
18     }
19
20     public function testIsWithinOneDayAfterSameYear()
21     {
22         $event = new Event('Amy', 'birthday', '1995-02-24');
23         $this->assertFalse($event->isWithin('1995-02-23', 0, 0));
24         $this->assertTrue($event->isWithin('1995-02-23', 3, 7));
25     }
26
27     public function testIsWithinOneDayBeforeSameYear()
28     {
29         $event = new Event('Amy', 'birthday', '1995-02-24');
30         $this->assertFalse($event->isWithin('1995-02-25', 0, 0));
31         $this->assertTrue($event->isWithin('1995-02-25', 3, 7));
32     }
33
34     public function testIsWithinOneDayBeforeDifferentYear()
35     {
36         $event = new Event('Amy', 'birthday', '1995-02-24');
37         $this->assertFalse($event->isWithin('1999-02-25', 0, 0));
38         $this->assertTrue($event->isWithin('1990-02-25', 3, 7));
39     }
40
41     public function testIsWithinThreeDaysBeforeSameYear()
42     {
43         $event = new Event('Amy', 'birthday', '1995-02-24');
44         $this->assertFalse($event->isWithin('1999-02-27', 0, 0));
45         $this->assertFalse($event->isWithin('1999-02-27', 1, 0));
46         $this->assertFalse($event->isWithin('1999-02-27', 2, 0));
47         $this->assertTrue( $event->isWithin('1990-02-27', 3, 0));
48
49         $this->assertFalse($event->isWithin('1999-02-27', 0, 3));
50     }
51
52     public function testIsWithinYearOverflowAfter()
53     {
54         $event = new Event('Amy', 'birthday', '1995-01-01');
55         $this->assertTrue($event->isWithin('2019-12-31', 0, 1));
56         $this->assertFalse($event->isWithin('1996-12-30', 0, 1));
57     }
58
59     public function testIsWithinYearOverflowBefore()
60     {
61         $event = new Event('Amy', 'birthday', '1995-12-30');
62         $this->assertTrue($event->isWithin('2019-01-02', 3, 0));
63         $this->assertFalse($event->isWithin('1996-01-02', 2, 0));
64         $this->assertTrue($event->isWithin('1996-01-01', 2, 0));
65     }
66
67     public function testCompareDifferentMonths()
68     {
69         $this->assertLessThan(
70             0, 
71             Event::compare(
72                 new Event('Amy', 'birthday', '2013-05-10'),
73                 new Event('Bob', 'birthday', '2013-06-10')
74             )
75         );
76         $this->assertGreaterThan(
77             0, 
78             Event::compare(
79                 new Event('Amy', 'birthday', '2013-10-10'),
80                 new Event('Bob', 'birthday', '2013-08-10')
81             )
82         );
83     }
84
85     public function testCompareDifferentMonthsYearOverflow()
86     {
87         $this->assertGreaterThan(
88             0, 
89             Event::compare(
90                 new Event('Amy', 'birthday', '2013-01-10'),
91                 new Event('Bob', 'birthday', '2013-12-10')
92             )
93         );
94         $this->assertLessThan(
95             0, 
96             Event::compare(
97                 new Event('Amy', 'birthday', '2013-12-10'),
98                 new Event('Bob', 'birthday', '2013-02-10')
99             )
100         );
101     }
102
103     public function testCompareDifferentDays()
104     {
105         $this->assertLessThan(
106             0, 
107             Event::compare(
108                 new Event('Amy', 'birthday', '1950-05-10'),
109                 new Event('Bob', 'birthday', '2013-05-11')
110             )
111         );
112         $this->assertGreaterThan(
113             0, 
114             Event::compare(
115                 new Event('Amy', 'birthday', '2013-10-20'),
116                 new Event('Bob', 'birthday', '1992-10-02')
117             )
118         );
119     }
120
121     public function testCompareSameDay()
122     {
123         $this->assertLessThan(
124             0, 
125             Event::compare(
126                 new Event('Amy', 'birthday', '1950-05-10'),
127                 new Event('Bob', 'birthday', '2013-05-10')
128             )
129         );
130         $this->assertGreaterThan(
131             0, 
132             Event::compare(
133                 new Event('Bob', 'birthday', '1992-10-02'),
134                 new Event('Amy', 'birthday', '2013-10-02')
135             )
136         );
137     }
138 }
139 ?>