commiting uncommited changes on live site
[weblabels.fsf.org.git] / crm.fsf.org / 20131203 / files / sites / all / modules-new / civicrm / packages / When / Tests / When_Daily_Test.php
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 }