ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
BirthdayCalendarGeneratorTest.php
Go to the documentation of this file.
1<?php
2
3namespace Sabre\VObject;
4
5use PHPUnit\Framework\TestCase;
6
7class BirthdayCalendarGeneratorTest extends TestCase {
8
9 use PHPUnitAssertions;
10
12
13 $generator = new BirthdayCalendarGenerator();
14 $input = <<<VCF
15BEGIN:VCARD
16VERSION:3.0
17N:Gump;Forrest;;Mr.
18FN:Forrest Gump
19BDAY:19850407
20UID:foo
21END:VCARD
22VCF;
23
24 $expected = <<<ICS
25BEGIN:VCALENDAR
26VERSION:2.0
27BEGIN:VEVENT
28UID:**ANY**
29DTSTAMP:**ANY**
30SUMMARY:Forrest Gump's Birthday
31DTSTART;VALUE=DATE:19850407
32RRULE:FREQ=YEARLY
33TRANSP:TRANSPARENT
34X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
35END:VEVENT
36END:VCALENDAR
37ICS;
38
39 $generator->setObjects($input);
40 $output = $generator->getResult();
41
42 $this->assertVObjectEqualsVObject(
43 $expected,
44 $output
45 );
46
47 }
48
49 function testArrayOfVcardStringsWithValidBirthdays() {
50
51 $generator = new BirthdayCalendarGenerator();
52 $input = [];
53
54 $input[] = <<<VCF
55BEGIN:VCARD
56VERSION:3.0
57N:Gump;Forrest;;Mr.
58FN:Forrest Gump
59BDAY:19850407
60UID:foo
61END:VCARD
62VCF;
63
64 $input[] = <<<VCF
65BEGIN:VCARD
66VERSION:3.0
67N:Doe;John;;Mr.
68FN:John Doe
69BDAY:19820210
70UID:bar
71END:VCARD
72VCF;
73
74 $expected = <<<ICS
75BEGIN:VCALENDAR
76VERSION:2.0
77BEGIN:VEVENT
78UID:**ANY**
79DTSTAMP:**ANY**
80SUMMARY:Forrest Gump's Birthday
81DTSTART;VALUE=DATE:19850407
82RRULE:FREQ=YEARLY
83TRANSP:TRANSPARENT
84X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
85END:VEVENT
86BEGIN:VEVENT
87UID:**ANY**
88DTSTAMP:**ANY**
89SUMMARY:John Doe's Birthday
90DTSTART;VALUE=DATE:19820210
91RRULE:FREQ=YEARLY
92TRANSP:TRANSPARENT
93X-SABRE-BDAY;X-SABRE-VCARD-UID=bar;X-SABRE-VCARD-FN=John Doe:BDAY
94END:VEVENT
95END:VCALENDAR
96ICS;
97
98 $generator->setObjects($input);
99 $output = $generator->getResult();
100
101 $this->assertVObjectEqualsVObject(
102 $expected,
103 $output
104 );
105
106 }
107
108 function testArrayOfVcardStringsWithValidBirthdaysViaConstructor() {
109
110 $input = [];
111
112 $input[] = <<<VCF
113BEGIN:VCARD
114VERSION:3.0
115N:Gump;Forrest;;Mr.
116FN:Forrest Gump
117BDAY:19850407
118UID:foo
119END:VCARD
120VCF;
121
122 $input[] = <<<VCF
123BEGIN:VCARD
124VERSION:3.0
125N:Doe;John;;Mr.
126FN:John Doe
127BDAY:19820210
128UID:bar
129END:VCARD
130VCF;
131
132 $generator = new BirthdayCalendarGenerator($input);
133
134 $expected = <<<ICS
135BEGIN:VCALENDAR
136VERSION:2.0
137BEGIN:VEVENT
138UID:**ANY**
139DTSTAMP:**ANY**
140SUMMARY:Forrest Gump's Birthday
141DTSTART;VALUE=DATE:19850407
142RRULE:FREQ=YEARLY
143TRANSP:TRANSPARENT
144X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
145END:VEVENT
146BEGIN:VEVENT
147UID:**ANY**
148DTSTAMP:**ANY**
149SUMMARY:John Doe's Birthday
150DTSTART;VALUE=DATE:19820210
151RRULE:FREQ=YEARLY
152TRANSP:TRANSPARENT
153X-SABRE-BDAY;X-SABRE-VCARD-UID=bar;X-SABRE-VCARD-FN=John Doe:BDAY
154END:VEVENT
155END:VCALENDAR
156ICS;
157
158 $generator->setObjects($input);
159 $output = $generator->getResult();
160
161 $this->assertVObjectEqualsVObject(
162 $expected,
163 $output
164 );
165
166 }
167
168 function testVcardObjectWithValidBirthday() {
169
170 $generator = new BirthdayCalendarGenerator();
171 $input = <<<VCF
172BEGIN:VCARD
173VERSION:3.0
174N:Gump;Forrest;;Mr.
175FN:Forrest Gump
176BDAY:19850407
177UID:foo
178END:VCARD
179VCF;
180
181 $input = Reader::read($input);
182
183 $expected = <<<ICS
184BEGIN:VCALENDAR
185VERSION:2.0
186BEGIN:VEVENT
187UID:**ANY**
188DTSTAMP:**ANY**
189SUMMARY:Forrest Gump's Birthday
190DTSTART;VALUE=DATE:19850407
191RRULE:FREQ=YEARLY
192TRANSP:TRANSPARENT
193X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
194END:VEVENT
195END:VCALENDAR
196ICS;
197
198 $generator->setObjects($input);
199 $output = $generator->getResult();
200
201 $this->assertVObjectEqualsVObject(
202 $expected,
203 $output
204 );
205
206 }
207
209
210 $generator = new BirthdayCalendarGenerator();
211 $input = [];
212
213 $input[] = <<<VCF
214BEGIN:VCARD
215VERSION:3.0
216N:Gump;Forrest;;Mr.
217FN:Forrest Gump
218BDAY:19850407
219UID:foo
220END:VCARD
221VCF;
222
223 $input[] = <<<VCF
224BEGIN:VCARD
225VERSION:3.0
226N:Doe;John;;Mr.
227FN:John Doe
228BDAY:19820210
229UID:bar
230END:VCARD
231VCF;
232
233 foreach ($input as $key => $value) {
234 $input[$key] = Reader::read($value);
235 }
236
237 $expected = <<<ICS
238BEGIN:VCALENDAR
239VERSION:2.0
240BEGIN:VEVENT
241UID:**ANY**
242DTSTAMP:**ANY**
243SUMMARY:Forrest Gump's Birthday
244DTSTART;VALUE=DATE:19850407
245RRULE:FREQ=YEARLY
246TRANSP:TRANSPARENT
247X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
248END:VEVENT
249BEGIN:VEVENT
250UID:**ANY**
251DTSTAMP:**ANY**
252SUMMARY:John Doe's Birthday
253DTSTART;VALUE=DATE:19820210
254RRULE:FREQ=YEARLY
255TRANSP:TRANSPARENT
256X-SABRE-BDAY;X-SABRE-VCARD-UID=bar;X-SABRE-VCARD-FN=John Doe:BDAY
257END:VEVENT
258END:VCALENDAR
259ICS;
260
261 $generator->setObjects($input);
262 $output = $generator->getResult();
263
264 $this->assertVObjectEqualsVObject(
265 $expected,
266 $output
267 );
268
269 }
270
272
273 $generator = new BirthdayCalendarGenerator();
274 $input = <<<VCF
275BEGIN:VCARD
276VERSION:3.0
277N:Gump;Forrest;;Mr.
278FN:Forrest Gump
279BDAY;X-APPLE-OMIT-YEAR=1604:1604-04-07
280UID:foo
281END:VCARD
282VCF;
283
284 $expected = <<<ICS
285BEGIN:VCALENDAR
286VERSION:2.0
287BEGIN:VEVENT
288UID:**ANY**
289DTSTAMP:**ANY**
290SUMMARY:Forrest Gump's Birthday
291DTSTART;VALUE=DATE:20000407
292RRULE:FREQ=YEARLY
293TRANSP:TRANSPARENT
294X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump;X-SABRE-OMIT-YEAR=2000:BDAY
295END:VEVENT
296END:VCALENDAR
297ICS;
298
299 $generator->setObjects($input);
300 $output = $generator->getResult();
301
302 $this->assertVObjectEqualsVObject(
303 $expected,
304 $output
305 );
306
307 }
308
309 function testVcardStringWithValidBirthdayWithoutYear() {
310
311 $generator = new BirthdayCalendarGenerator();
312 $input = <<<VCF
313BEGIN:VCARD
314VERSION:4.0
315N:Gump;Forrest;;Mr.
316FN:Forrest Gump
317BDAY:--04-07
318UID:foo
319END:VCARD
320VCF;
321
322 $expected = <<<ICS
323BEGIN:VCALENDAR
324VERSION:2.0
325BEGIN:VEVENT
326UID:**ANY**
327DTSTAMP:**ANY**
328SUMMARY:Forrest Gump's Birthday
329DTSTART;VALUE=DATE:20000407
330RRULE:FREQ=YEARLY
331TRANSP:TRANSPARENT
332X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump;X-SABRE-OMIT-YEAR=2000:BDAY
333END:VEVENT
334END:VCALENDAR
335ICS;
336
337 $generator->setObjects($input);
338 $output = $generator->getResult();
339
340 $this->assertVObjectEqualsVObject(
341 $expected,
342 $output
343 );
344
345 }
346
348
349 $generator = new BirthdayCalendarGenerator();
350 $input = <<<VCF
351BEGIN:VCARD
352VERSION:3.0
353N:Gump;Forrest;;Mr.
354FN:Forrest Gump
355BDAY:foo
356X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
357END:VCARD
358VCF;
359
360 $expected = <<<ICS
361BEGIN:VCALENDAR
362VERSION:2.0
363END:VCALENDAR
364ICS;
365
366 $generator->setObjects($input);
367 $output = $generator->getResult();
368
369 $this->assertVObjectEqualsVObject(
370 $expected,
371 $output
372 );
373
374 }
375
377
378 $generator = new BirthdayCalendarGenerator();
379 $input = <<<VCF
380BEGIN:VCARD
381VERSION:3.0
382N:Gump;Forrest;;Mr.
383FN:Forrest Gump
384UID:foo
385END:VCARD
386VCF;
387
388 $expected = <<<ICS
389BEGIN:VCALENDAR
390VERSION:2.0
391END:VCALENDAR
392ICS;
393
394 $generator->setObjects($input);
395 $output = $generator->getResult();
396
397 $this->assertVObjectEqualsVObject(
398 $expected,
399 $output
400 );
401
402 }
403
405
406 $generator = new BirthdayCalendarGenerator();
407 $input = <<<VCF
408BEGIN:VCARD
409VERSION:3.0
410N:Gump;Forrest;;Mr.
411FN:Forrest Gump
412BDAY:19850407
413UID:foo
414END:VCARD
415VCF;
416
417 $expected = <<<ICS
418BEGIN:VCALENDAR
419VERSION:2.0
420BEGIN:VEVENT
421UID:**ANY**
422DTSTAMP:**ANY**
423SUMMARY:Forrest Gump's Geburtstag
424DTSTART;VALUE=DATE:19850407
425RRULE:FREQ=YEARLY
426TRANSP:TRANSPARENT
427X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
428END:VEVENT
429END:VCALENDAR
430ICS;
431
432 $generator->setObjects($input);
433 $generator->setFormat('%1$s\'s Geburtstag');
434 $output = $generator->getResult();
435
436 $this->assertVObjectEqualsVObject(
437 $expected,
438 $output
439 );
440
441 }
442
444
445 $generator = new BirthdayCalendarGenerator();
446 $input = <<<VCF
447BEGIN:VCARD
448VERSION:3.0
449N:Gump;Forrest;;Mr.
450FN:Forrest Gump
451BDAY:
452UID:foo
453END:VCARD
454VCF;
455
456 $expected = <<<ICS
457BEGIN:VCALENDAR
458VERSION:2.0
459END:VCALENDAR
460ICS;
461
462 $generator->setObjects($input);
463 $output = $generator->getResult();
464
465 $this->assertVObjectEqualsVObject(
466 $expected,
467 $output
468 );
469
470 }
471
476
477 $generator = new BirthdayCalendarGenerator();
478 $input = <<<FOO
479BEGIN:FOO
480FOO:Bar
481END:FOO
482FOO;
483
484 $generator->setObjects($input);
485
486 }
487
492
493 $generator = new BirthdayCalendarGenerator();
494 $input = <<<ICS
495BEGIN:VCALENDAR
496VERSION:2.0
497BEGIN:VEVENT
498SUMMARY:Foo
499DTSTART;VALUE=DATE:19850407
500END:VEVENT
501END:VCALENDAR
502ICS;
503
504 $generator->setObjects($input);
505
506 }
507
512
513 $generator = new BirthdayCalendarGenerator();
514 $input = [];
515
516 $input[] = <<<VCF
517BEGIN:VCARD
518VERSION:3.0
519N:Gump;Forrest;;Mr.
520FN:Forrest Gump
521BDAY:19850407
522UID:foo
523END:VCARD
524VCF;
525 $calendar = new Component\VCalendar();
526
527 $input = $calendar->add('VEVENT', [
528 'SUMMARY' => 'Foo',
529 'DTSTART' => new \DateTime('NOW'),
530 ]);
531
532 $generator->setObjects($input);
533
534 }
535
537
538 $generator = new BirthdayCalendarGenerator();
539 $input = <<<VCF
540BEGIN:VCARD
541VERSION:3.0
542N:Gump;Forrest;;Mr.
543BDAY:19850407
544UID:foo
545END:VCARD
546VCF;
547
548 $expected = <<<ICS
549BEGIN:VCALENDAR
550VERSION:2.0
551END:VCALENDAR
552ICS;
553
554 $generator->setObjects($input);
555 $output = $generator->getResult();
556
557 $this->assertVObjectEqualsVObject(
558 $expected,
559 $output
560 );
561
562 }
563
564}
An exception for terminatinating execution or to throw for unit testing.
testParseException()
@expectedException \Sabre\VObject\ParseException
testInvalidArgumentException()
@expectedException \InvalidArgumentException
testInvalidArgumentExceptionForPartiallyInvalidArray()
@expectedException \InvalidArgumentException
This class generates birthday calendars.
static read($data, $options=0, $charset='UTF-8')
Parses a vCard or iCalendar object, and returns the top component.
Definition: Reader.php:42
$key
Definition: croninfo.php:18
foreach($paths as $path) if($argc< 3) $input
$s
Definition: pwgen.php:45