Commit | Line | Data |
---|---|---|
7f254ad8 AE |
1 | <?php |
2 | ||
3 | require_once 'PHPUnit/Framework.php'; | |
4 | ||
5 | require_once './When.php'; | |
6 | ||
7 | class When_Daily_Test extends PHPUnit_Framework_TestCase | |
8 | { | |
9 | /** | |
10 | * Daily for 10 occurrences: | |
11 | * DTSTART;TZID=America/New_York:19970902T090000 | |
12 | * RRULE:FREQ=DAILY;COUNT=10 | |
13 | */ | |
14 | function testThirtyThree() | |
15 | { | |
16 | $results[] = new DateTime('1997-09-02 09:00:00'); | |
17 | $results[] = new DateTime('1997-09-03 09:00:00'); | |
18 | $results[] = new DateTime('1997-09-04 09:00:00'); | |
19 | $results[] = new DateTime('1997-09-05 09:00:00'); | |
20 | $results[] = new DateTime('1997-09-06 09:00:00'); | |
21 | $results[] = new DateTime('1997-09-07 09:00:00'); | |
22 | $results[] = new DateTime('1997-09-08 09:00:00'); | |
23 | $results[] = new DateTime('1997-09-09 09:00:00'); | |
24 | $results[] = new DateTime('1997-09-10 09:00:00'); | |
25 | $results[] = new DateTime('1997-09-11 09:00:00'); | |
26 | ||
27 | $r = new When(); | |
28 | $r->recur('19970902T090000', 'daily')->count(10); | |
29 | ||
30 | foreach($results as $result) | |
31 | { | |
32 | $this->assertEquals($result, $r->next()); | |
33 | } | |
34 | } | |
35 | ||
36 | /** | |
37 | * Daily until December 24, 1997: | |
38 | * DTSTART;TZID=America/New_York:19970902T090000 | |
39 | * RRULE:FREQ=DAILY;UNTIL=19971224T000000Z | |
40 | */ | |
41 | function testThirtyFour() | |
42 | { | |
43 | $results[] = new DateTime('1997-09-02 09:00:00'); | |
44 | $results[] = new DateTime('1997-09-03 09:00:00'); | |
45 | $results[] = new DateTime('1997-09-04 09:00:00'); | |
46 | $results[] = new DateTime('1997-09-05 09:00:00'); | |
47 | $results[] = new DateTime('1997-09-06 09:00:00'); | |
48 | $results[] = new DateTime('1997-09-07 09:00:00'); | |
49 | $results[] = new DateTime('1997-09-08 09:00:00'); | |
50 | $results[] = new DateTime('1997-09-09 09:00:00'); | |
51 | $results[] = new DateTime('1997-09-10 09:00:00'); | |
52 | $results[] = new DateTime('1997-09-11 09:00:00'); | |
53 | $results[] = new DateTime('1997-09-12 09:00:00'); | |
54 | $results[] = new DateTime('1997-09-13 09:00:00'); | |
55 | $results[] = new DateTime('1997-09-14 09:00:00'); | |
56 | $results[] = new DateTime('1997-09-15 09:00:00'); | |
57 | $results[] = new DateTime('1997-09-16 09:00:00'); | |
58 | $results[] = new DateTime('1997-09-17 09:00:00'); | |
59 | $results[] = new DateTime('1997-09-18 09:00:00'); | |
60 | $results[] = new DateTime('1997-09-19 09:00:00'); | |
61 | $results[] = new DateTime('1997-09-20 09:00:00'); | |
62 | $results[] = new DateTime('1997-09-21 09:00:00'); | |
63 | $results[] = new DateTime('1997-09-22 09:00:00'); | |
64 | $results[] = new DateTime('1997-09-23 09:00:00'); | |
65 | $results[] = new DateTime('1997-09-24 09:00:00'); | |
66 | $results[] = new DateTime('1997-09-25 09:00:00'); | |
67 | $results[] = new DateTime('1997-09-26 09:00:00'); | |
68 | $results[] = new DateTime('1997-09-27 09:00:00'); | |
69 | $results[] = new DateTime('1997-09-28 09:00:00'); | |
70 | $results[] = new DateTime('1997-09-29 09:00:00'); | |
71 | $results[] = new DateTime('1997-09-30 09:00:00'); | |
72 | $results[] = new DateTime('1997-10-01 09:00:00'); | |
73 | $results[] = new DateTime('1997-10-02 09:00:00'); | |
74 | $results[] = new DateTime('1997-10-03 09:00:00'); | |
75 | $results[] = new DateTime('1997-10-04 09:00:00'); | |
76 | $results[] = new DateTime('1997-10-05 09:00:00'); | |
77 | $results[] = new DateTime('1997-10-06 09:00:00'); | |
78 | $results[] = new DateTime('1997-10-07 09:00:00'); | |
79 | $results[] = new DateTime('1997-10-08 09:00:00'); | |
80 | $results[] = new DateTime('1997-10-09 09:00:00'); | |
81 | $results[] = new DateTime('1997-10-10 09:00:00'); | |
82 | $results[] = new DateTime('1997-10-11 09:00:00'); | |
83 | $results[] = new DateTime('1997-10-12 09:00:00'); | |
84 | $results[] = new DateTime('1997-10-13 09:00:00'); | |
85 | $results[] = new DateTime('1997-10-14 09:00:00'); | |
86 | $results[] = new DateTime('1997-10-15 09:00:00'); | |
87 | $results[] = new DateTime('1997-10-16 09:00:00'); | |
88 | $results[] = new DateTime('1997-10-17 09:00:00'); | |
89 | $results[] = new DateTime('1997-10-18 09:00:00'); | |
90 | $results[] = new DateTime('1997-10-19 09:00:00'); | |
91 | $results[] = new DateTime('1997-10-20 09:00:00'); | |
92 | $results[] = new DateTime('1997-10-21 09:00:00'); | |
93 | $results[] = new DateTime('1997-10-22 09:00:00'); | |
94 | $results[] = new DateTime('1997-10-23 09:00:00'); | |
95 | $results[] = new DateTime('1997-10-24 09:00:00'); | |
96 | $results[] = new DateTime('1997-10-25 09:00:00'); | |
97 | $results[] = new DateTime('1997-10-26 09:00:00'); | |
98 | $results[] = new DateTime('1997-10-27 09:00:00'); | |
99 | $results[] = new DateTime('1997-10-28 09:00:00'); | |
100 | $results[] = new DateTime('1997-10-29 09:00:00'); | |
101 | $results[] = new DateTime('1997-10-30 09:00:00'); | |
102 | $results[] = new DateTime('1997-10-31 09:00:00'); | |
103 | $results[] = new DateTime('1997-11-01 09:00:00'); | |
104 | $results[] = new DateTime('1997-11-02 09:00:00'); | |
105 | $results[] = new DateTime('1997-11-03 09:00:00'); | |
106 | $results[] = new DateTime('1997-11-04 09:00:00'); | |
107 | $results[] = new DateTime('1997-11-05 09:00:00'); | |
108 | $results[] = new DateTime('1997-11-06 09:00:00'); | |
109 | $results[] = new DateTime('1997-11-07 09:00:00'); | |
110 | $results[] = new DateTime('1997-11-08 09:00:00'); | |
111 | $results[] = new DateTime('1997-11-09 09:00:00'); | |
112 | $results[] = new DateTime('1997-11-10 09:00:00'); | |
113 | $results[] = new DateTime('1997-11-11 09:00:00'); | |
114 | $results[] = new DateTime('1997-11-12 09:00:00'); | |
115 | $results[] = new DateTime('1997-11-13 09:00:00'); | |
116 | $results[] = new DateTime('1997-11-14 09:00:00'); | |
117 | $results[] = new DateTime('1997-11-15 09:00:00'); | |
118 | $results[] = new DateTime('1997-11-16 09:00:00'); | |
119 | $results[] = new DateTime('1997-11-17 09:00:00'); | |
120 | $results[] = new DateTime('1997-11-18 09:00:00'); | |
121 | $results[] = new DateTime('1997-11-19 09:00:00'); | |
122 | $results[] = new DateTime('1997-11-20 09:00:00'); | |
123 | $results[] = new DateTime('1997-11-21 09:00:00'); | |
124 | $results[] = new DateTime('1997-11-22 09:00:00'); | |
125 | $results[] = new DateTime('1997-11-23 09:00:00'); | |
126 | $results[] = new DateTime('1997-11-24 09:00:00'); | |
127 | $results[] = new DateTime('1997-11-25 09:00:00'); | |
128 | $results[] = new DateTime('1997-11-26 09:00:00'); | |
129 | $results[] = new DateTime('1997-11-27 09:00:00'); | |
130 | $results[] = new DateTime('1997-11-28 09:00:00'); | |
131 | $results[] = new DateTime('1997-11-29 09:00:00'); | |
132 | $results[] = new DateTime('1997-11-30 09:00:00'); | |
133 | $results[] = new DateTime('1997-12-01 09:00:00'); | |
134 | $results[] = new DateTime('1997-12-02 09:00:00'); | |
135 | $results[] = new DateTime('1997-12-03 09:00:00'); | |
136 | $results[] = new DateTime('1997-12-04 09:00:00'); | |
137 | $results[] = new DateTime('1997-12-05 09:00:00'); | |
138 | $results[] = new DateTime('1997-12-06 09:00:00'); | |
139 | $results[] = new DateTime('1997-12-07 09:00:00'); | |
140 | $results[] = new DateTime('1997-12-08 09:00:00'); | |
141 | $results[] = new DateTime('1997-12-09 09:00:00'); | |
142 | $results[] = new DateTime('1997-12-10 09:00:00'); | |
143 | $results[] = new DateTime('1997-12-11 09:00:00'); | |
144 | $results[] = new DateTime('1997-12-12 09:00:00'); | |
145 | $results[] = new DateTime('1997-12-13 09:00:00'); | |
146 | $results[] = new DateTime('1997-12-14 09:00:00'); | |
147 | $results[] = new DateTime('1997-12-15 09:00:00'); | |
148 | $results[] = new DateTime('1997-12-16 09:00:00'); | |
149 | $results[] = new DateTime('1997-12-17 09:00:00'); | |
150 | $results[] = new DateTime('1997-12-18 09:00:00'); | |
151 | $results[] = new DateTime('1997-12-19 09:00:00'); | |
152 | $results[] = new DateTime('1997-12-20 09:00:00'); | |
153 | $results[] = new DateTime('1997-12-21 09:00:00'); | |
154 | $results[] = new DateTime('1997-12-22 09:00:00'); | |
155 | $results[] = new DateTime('1997-12-23 09:00:00'); | |
156 | ||
157 | $r = new When(); | |
158 | $r->recur('19970902T090000', 'daily')->until('19971224T000000'); | |
159 | ||
160 | foreach($results as $result) | |
161 | { | |
162 | $this->assertEquals($result, $r->next()); | |
163 | } | |
164 | } | |
165 | ||
166 | /** | |
167 | * Every other day - forever: | |
168 | * DTSTART;TZID=America/New_York:19970902T090000 | |
169 | * RRULE:FREQ=DAILY;INTERVAL=2 | |
170 | */ | |
171 | function testThirtyFive() | |
172 | { | |
173 | $results[] = new DateTime('1997-09-02 09:00:00'); | |
174 | $results[] = new DateTime('1997-09-04 09:00:00'); | |
175 | $results[] = new DateTime('1997-09-06 09:00:00'); | |
176 | $results[] = new DateTime('1997-09-08 09:00:00'); | |
177 | $results[] = new DateTime('1997-09-10 09:00:00'); | |
178 | $results[] = new DateTime('1997-09-12 09:00:00'); | |
179 | $results[] = new DateTime('1997-09-14 09:00:00'); | |
180 | $results[] = new DateTime('1997-09-16 09:00:00'); | |
181 | $results[] = new DateTime('1997-09-18 09:00:00'); | |
182 | $results[] = new DateTime('1997-09-20 09:00:00'); | |
183 | $results[] = new DateTime('1997-09-22 09:00:00'); | |
184 | $results[] = new DateTime('1997-09-24 09:00:00'); | |
185 | $results[] = new DateTime('1997-09-26 09:00:00'); | |
186 | $results[] = new DateTime('1997-09-28 09:00:00'); | |
187 | $results[] = new DateTime('1997-09-30 09:00:00'); | |
188 | $results[] = new DateTime('1997-10-02 09:00:00'); | |
189 | $results[] = new DateTime('1997-10-04 09:00:00'); | |
190 | $results[] = new DateTime('1997-10-06 09:00:00'); | |
191 | $results[] = new DateTime('1997-10-08 09:00:00'); | |
192 | $results[] = new DateTime('1997-10-10 09:00:00'); | |
193 | $results[] = new DateTime('1997-10-12 09:00:00'); | |
194 | $results[] = new DateTime('1997-10-14 09:00:00'); | |
195 | $results[] = new DateTime('1997-10-16 09:00:00'); | |
196 | $results[] = new DateTime('1997-10-18 09:00:00'); | |
197 | $results[] = new DateTime('1997-10-20 09:00:00'); | |
198 | $results[] = new DateTime('1997-10-22 09:00:00'); | |
199 | $results[] = new DateTime('1997-10-24 09:00:00'); | |
200 | $results[] = new DateTime('1997-10-26 09:00:00'); | |
201 | $results[] = new DateTime('1997-10-28 09:00:00'); | |
202 | $results[] = new DateTime('1997-10-30 09:00:00'); | |
203 | $results[] = new DateTime('1997-11-01 09:00:00'); | |
204 | $results[] = new DateTime('1997-11-03 09:00:00'); | |
205 | $results[] = new DateTime('1997-11-05 09:00:00'); | |
206 | $results[] = new DateTime('1997-11-07 09:00:00'); | |
207 | $results[] = new DateTime('1997-11-09 09:00:00'); | |
208 | $results[] = new DateTime('1997-11-11 09:00:00'); | |
209 | $results[] = new DateTime('1997-11-13 09:00:00'); | |
210 | $results[] = new DateTime('1997-11-15 09:00:00'); | |
211 | $results[] = new DateTime('1997-11-17 09:00:00'); | |
212 | $results[] = new DateTime('1997-11-19 09:00:00'); | |
213 | $results[] = new DateTime('1997-11-21 09:00:00'); | |
214 | $results[] = new DateTime('1997-11-23 09:00:00'); | |
215 | $results[] = new DateTime('1997-11-25 09:00:00'); | |
216 | $results[] = new DateTime('1997-11-27 09:00:00'); | |
217 | $results[] = new DateTime('1997-11-29 09:00:00'); | |
218 | $results[] = new DateTime('1997-12-01 09:00:00'); | |
219 | $results[] = new DateTime('1997-12-03 09:00:00'); | |
220 | ||
221 | $r = new When(); | |
222 | $r->recur('19970902T090000', 'daily')->interval(2)->count(47); | |
223 | ||
224 | foreach($results as $result) | |
225 | { | |
226 | $this->assertEquals($result, $r->next()); | |
227 | } | |
228 | } | |
229 | ||
230 | /** | |
231 | * Every 10 days, 5 occurrences: | |
232 | * DTSTART;TZID=America/New_York:19970902T090000 | |
233 | * RRULE:FREQ=DAILY;INTERVAL=10;COUNT=5 | |
234 | */ | |
235 | function testThirtySix() | |
236 | { | |
237 | $results[] = new DateTime('1997-09-02 09:00:00'); | |
238 | $results[] = new DateTime('1997-09-12 09:00:00'); | |
239 | $results[] = new DateTime('1997-09-22 09:00:00'); | |
240 | $results[] = new DateTime('1997-10-02 09:00:00'); | |
241 | $results[] = new DateTime('1997-10-12 09:00:00'); | |
242 | ||
243 | $r = new When(); | |
244 | $r->recur('19970902T090000', 'daily')->interval(10)->count(5); | |
245 | ||
246 | foreach($results as $result) | |
247 | { | |
248 | $this->assertEquals($result, $r->next()); | |
249 | } | |
250 | } | |
251 | ||
252 | /** | |
253 | * Every day in January, for 3 years: | |
254 | * DTSTART;TZID=America/New_York:19980101T090000 | |
255 | * RRULE:FREQ=DAILY;UNTIL=20000131T140000Z;BYMONTH=1 | |
256 | */ | |
257 | function testThirtySeven() | |
258 | { | |
259 | $results[] = new DateTime('1998-01-01 09:00:00'); | |
260 | $results[] = new DateTime('1998-01-02 09:00:00'); | |
261 | $results[] = new DateTime('1998-01-03 09:00:00'); | |
262 | $results[] = new DateTime('1998-01-04 09:00:00'); | |
263 | $results[] = new DateTime('1998-01-05 09:00:00'); | |
264 | $results[] = new DateTime('1998-01-06 09:00:00'); | |
265 | $results[] = new DateTime('1998-01-07 09:00:00'); | |
266 | $results[] = new DateTime('1998-01-08 09:00:00'); | |
267 | $results[] = new DateTime('1998-01-09 09:00:00'); | |
268 | $results[] = new DateTime('1998-01-10 09:00:00'); | |
269 | $results[] = new DateTime('1998-01-11 09:00:00'); | |
270 | $results[] = new DateTime('1998-01-12 09:00:00'); | |
271 | $results[] = new DateTime('1998-01-13 09:00:00'); | |
272 | $results[] = new DateTime('1998-01-14 09:00:00'); | |
273 | $results[] = new DateTime('1998-01-15 09:00:00'); | |
274 | $results[] = new DateTime('1998-01-16 09:00:00'); | |
275 | $results[] = new DateTime('1998-01-17 09:00:00'); | |
276 | $results[] = new DateTime('1998-01-18 09:00:00'); | |
277 | $results[] = new DateTime('1998-01-19 09:00:00'); | |
278 | $results[] = new DateTime('1998-01-20 09:00:00'); | |
279 | $results[] = new DateTime('1998-01-21 09:00:00'); | |
280 | $results[] = new DateTime('1998-01-22 09:00:00'); | |
281 | $results[] = new DateTime('1998-01-23 09:00:00'); | |
282 | $results[] = new DateTime('1998-01-24 09:00:00'); | |
283 | $results[] = new DateTime('1998-01-25 09:00:00'); | |
284 | $results[] = new DateTime('1998-01-26 09:00:00'); | |
285 | $results[] = new DateTime('1998-01-27 09:00:00'); | |
286 | $results[] = new DateTime('1998-01-28 09:00:00'); | |
287 | $results[] = new DateTime('1998-01-29 09:00:00'); | |
288 | $results[] = new DateTime('1998-01-30 09:00:00'); | |
289 | $results[] = new DateTime('1998-01-31 09:00:00'); | |
290 | $results[] = new DateTime('1999-01-01 09:00:00'); | |
291 | $results[] = new DateTime('1999-01-02 09:00:00'); | |
292 | $results[] = new DateTime('1999-01-03 09:00:00'); | |
293 | $results[] = new DateTime('1999-01-04 09:00:00'); | |
294 | $results[] = new DateTime('1999-01-05 09:00:00'); | |
295 | $results[] = new DateTime('1999-01-06 09:00:00'); | |
296 | $results[] = new DateTime('1999-01-07 09:00:00'); | |
297 | $results[] = new DateTime('1999-01-08 09:00:00'); | |
298 | $results[] = new DateTime('1999-01-09 09:00:00'); | |
299 | $results[] = new DateTime('1999-01-10 09:00:00'); | |
300 | $results[] = new DateTime('1999-01-11 09:00:00'); | |
301 | $results[] = new DateTime('1999-01-12 09:00:00'); | |
302 | $results[] = new DateTime('1999-01-13 09:00:00'); | |
303 | $results[] = new DateTime('1999-01-14 09:00:00'); | |
304 | $results[] = new DateTime('1999-01-15 09:00:00'); | |
305 | $results[] = new DateTime('1999-01-16 09:00:00'); | |
306 | $results[] = new DateTime('1999-01-17 09:00:00'); | |
307 | $results[] = new DateTime('1999-01-18 09:00:00'); | |
308 | $results[] = new DateTime('1999-01-19 09:00:00'); | |
309 | $results[] = new DateTime('1999-01-20 09:00:00'); | |
310 | $results[] = new DateTime('1999-01-21 09:00:00'); | |
311 | $results[] = new DateTime('1999-01-22 09:00:00'); | |
312 | $results[] = new DateTime('1999-01-23 09:00:00'); | |
313 | $results[] = new DateTime('1999-01-24 09:00:00'); | |
314 | $results[] = new DateTime('1999-01-25 09:00:00'); | |
315 | $results[] = new DateTime('1999-01-26 09:00:00'); | |
316 | $results[] = new DateTime('1999-01-27 09:00:00'); | |
317 | $results[] = new DateTime('1999-01-28 09:00:00'); | |
318 | $results[] = new DateTime('1999-01-29 09:00:00'); | |
319 | $results[] = new DateTime('1999-01-30 09:00:00'); | |
320 | $results[] = new DateTime('1999-01-31 09:00:00'); | |
321 | $results[] = new DateTime('2000-01-01 09:00:00'); | |
322 | $results[] = new DateTime('2000-01-02 09:00:00'); | |
323 | $results[] = new DateTime('2000-01-03 09:00:00'); | |
324 | $results[] = new DateTime('2000-01-04 09:00:00'); | |
325 | $results[] = new DateTime('2000-01-05 09:00:00'); | |
326 | $results[] = new DateTime('2000-01-06 09:00:00'); | |
327 | $results[] = new DateTime('2000-01-07 09:00:00'); | |
328 | $results[] = new DateTime('2000-01-08 09:00:00'); | |
329 | $results[] = new DateTime('2000-01-09 09:00:00'); | |
330 | $results[] = new DateTime('2000-01-10 09:00:00'); | |
331 | $results[] = new DateTime('2000-01-11 09:00:00'); | |
332 | $results[] = new DateTime('2000-01-12 09:00:00'); | |
333 | $results[] = new DateTime('2000-01-13 09:00:00'); | |
334 | $results[] = new DateTime('2000-01-14 09:00:00'); | |
335 | $results[] = new DateTime('2000-01-15 09:00:00'); | |
336 | $results[] = new DateTime('2000-01-16 09:00:00'); | |
337 | $results[] = new DateTime('2000-01-17 09:00:00'); | |
338 | $results[] = new DateTime('2000-01-18 09:00:00'); | |
339 | $results[] = new DateTime('2000-01-19 09:00:00'); | |
340 | $results[] = new DateTime('2000-01-20 09:00:00'); | |
341 | $results[] = new DateTime('2000-01-21 09:00:00'); | |
342 | $results[] = new DateTime('2000-01-22 09:00:00'); | |
343 | $results[] = new DateTime('2000-01-23 09:00:00'); | |
344 | $results[] = new DateTime('2000-01-24 09:00:00'); | |
345 | $results[] = new DateTime('2000-01-25 09:00:00'); | |
346 | $results[] = new DateTime('2000-01-26 09:00:00'); | |
347 | $results[] = new DateTime('2000-01-27 09:00:00'); | |
348 | $results[] = new DateTime('2000-01-28 09:00:00'); | |
349 | $results[] = new DateTime('2000-01-29 09:00:00'); | |
350 | $results[] = new DateTime('2000-01-30 09:00:00'); | |
351 | $results[] = new DateTime('2000-01-31 09:00:00'); | |
352 | ||
353 | $r = new When(); | |
354 | $r->recur('19980101T090000', 'daily')->until('20000131T140000')->bymonth(array(1)); | |
355 | ||
356 | foreach($results as $result) | |
357 | { | |
358 | $this->assertEquals($result, $r->next()); | |
359 | } | |
360 | } | |
361 | } |