xref: /plugin/davcal/vendor/sabre/vobject/tests/VObject/FreeBusyGeneratorTest.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
1*a1a3b679SAndreas Boehler<?php
2*a1a3b679SAndreas Boehler
3*a1a3b679SAndreas Boehlernamespace Sabre\VObject;
4*a1a3b679SAndreas Boehler
5*a1a3b679SAndreas Boehlerclass FreeBusyGeneratorTest extends \PHPUnit_Framework_TestCase {
6*a1a3b679SAndreas Boehler
7*a1a3b679SAndreas Boehler    function getInput() {
8*a1a3b679SAndreas Boehler
9*a1a3b679SAndreas Boehler        $tests = array();
10*a1a3b679SAndreas Boehler
11*a1a3b679SAndreas Boehler        $blob = <<<ICS
12*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
13*a1a3b679SAndreas BoehlerBEGIN:VEVENT
14*a1a3b679SAndreas BoehlerUID:foobar
15*a1a3b679SAndreas BoehlerDTSTART:20110101T120000Z
16*a1a3b679SAndreas BoehlerDTEND:20110101T130000Z
17*a1a3b679SAndreas BoehlerEND:VEVENT
18*a1a3b679SAndreas BoehlerEND:VCALENDAR
19*a1a3b679SAndreas BoehlerICS;
20*a1a3b679SAndreas Boehler
21*a1a3b679SAndreas Boehler        $tests[] = array(
22*a1a3b679SAndreas Boehler            $blob,
23*a1a3b679SAndreas Boehler            "20110101T120000Z/20110101T130000Z"
24*a1a3b679SAndreas Boehler        );
25*a1a3b679SAndreas Boehler
26*a1a3b679SAndreas Boehler        // opaque, shows up
27*a1a3b679SAndreas Boehler        $blob = <<<ICS
28*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
29*a1a3b679SAndreas BoehlerBEGIN:VEVENT
30*a1a3b679SAndreas BoehlerUID:foobar2
31*a1a3b679SAndreas BoehlerTRANSP:OPAQUE
32*a1a3b679SAndreas BoehlerDTSTART:20110101T130000Z
33*a1a3b679SAndreas BoehlerDTEND:20110101T140000Z
34*a1a3b679SAndreas BoehlerEND:VEVENT
35*a1a3b679SAndreas BoehlerEND:VCALENDAR
36*a1a3b679SAndreas BoehlerICS;
37*a1a3b679SAndreas Boehler
38*a1a3b679SAndreas Boehler        $tests[] = array(
39*a1a3b679SAndreas Boehler            $blob,
40*a1a3b679SAndreas Boehler            "20110101T130000Z/20110101T140000Z"
41*a1a3b679SAndreas Boehler        );
42*a1a3b679SAndreas Boehler
43*a1a3b679SAndreas Boehler        // transparent, hidden
44*a1a3b679SAndreas Boehler        $blob = <<<ICS
45*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
46*a1a3b679SAndreas BoehlerBEGIN:VEVENT
47*a1a3b679SAndreas BoehlerUID:foobar3
48*a1a3b679SAndreas BoehlerTRANSP:TRANSPARENT
49*a1a3b679SAndreas BoehlerDTSTART:20110101T140000Z
50*a1a3b679SAndreas BoehlerDTEND:20110101T150000Z
51*a1a3b679SAndreas BoehlerEND:VEVENT
52*a1a3b679SAndreas BoehlerEND:VCALENDAR
53*a1a3b679SAndreas BoehlerICS;
54*a1a3b679SAndreas Boehler
55*a1a3b679SAndreas Boehler        $tests[] = array(
56*a1a3b679SAndreas Boehler            $blob,
57*a1a3b679SAndreas Boehler            null,
58*a1a3b679SAndreas Boehler        );
59*a1a3b679SAndreas Boehler
60*a1a3b679SAndreas Boehler        // cancelled, hidden
61*a1a3b679SAndreas Boehler        $blob = <<<ICS
62*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
63*a1a3b679SAndreas BoehlerBEGIN:VEVENT
64*a1a3b679SAndreas BoehlerUID:foobar4
65*a1a3b679SAndreas BoehlerSTATUS:CANCELLED
66*a1a3b679SAndreas BoehlerDTSTART:20110101T160000Z
67*a1a3b679SAndreas BoehlerDTEND:20110101T170000Z
68*a1a3b679SAndreas BoehlerEND:VEVENT
69*a1a3b679SAndreas BoehlerEND:VCALENDAR
70*a1a3b679SAndreas BoehlerICS;
71*a1a3b679SAndreas Boehler
72*a1a3b679SAndreas Boehler        $tests[] = array(
73*a1a3b679SAndreas Boehler            $blob,
74*a1a3b679SAndreas Boehler            null,
75*a1a3b679SAndreas Boehler        );
76*a1a3b679SAndreas Boehler
77*a1a3b679SAndreas Boehler        // tentative, shows up
78*a1a3b679SAndreas Boehler        $blob = <<<ICS
79*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
80*a1a3b679SAndreas BoehlerBEGIN:VEVENT
81*a1a3b679SAndreas BoehlerUID:foobar5
82*a1a3b679SAndreas BoehlerSTATUS:TENTATIVE
83*a1a3b679SAndreas BoehlerDTSTART:20110101T180000Z
84*a1a3b679SAndreas BoehlerDTEND:20110101T190000Z
85*a1a3b679SAndreas BoehlerEND:VEVENT
86*a1a3b679SAndreas BoehlerEND:VCALENDAR
87*a1a3b679SAndreas BoehlerICS;
88*a1a3b679SAndreas Boehler
89*a1a3b679SAndreas Boehler        $tests[] = array(
90*a1a3b679SAndreas Boehler            $blob,
91*a1a3b679SAndreas Boehler            '20110101T180000Z/20110101T190000Z',
92*a1a3b679SAndreas Boehler        );
93*a1a3b679SAndreas Boehler
94*a1a3b679SAndreas Boehler        // outside of time-range, hidden
95*a1a3b679SAndreas Boehler        $blob = <<<ICS
96*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
97*a1a3b679SAndreas BoehlerBEGIN:VEVENT
98*a1a3b679SAndreas BoehlerUID:foobar6
99*a1a3b679SAndreas BoehlerDTSTART:20110101T090000Z
100*a1a3b679SAndreas BoehlerDTEND:20110101T100000Z
101*a1a3b679SAndreas BoehlerEND:VEVENT
102*a1a3b679SAndreas BoehlerEND:VCALENDAR
103*a1a3b679SAndreas BoehlerICS;
104*a1a3b679SAndreas Boehler
105*a1a3b679SAndreas Boehler        $tests[] = array(
106*a1a3b679SAndreas Boehler            $blob,
107*a1a3b679SAndreas Boehler            null,
108*a1a3b679SAndreas Boehler        );
109*a1a3b679SAndreas Boehler
110*a1a3b679SAndreas Boehler        // outside of time-range, hidden
111*a1a3b679SAndreas Boehler        $blob = <<<ICS
112*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
113*a1a3b679SAndreas BoehlerBEGIN:VEVENT
114*a1a3b679SAndreas BoehlerUID:foobar7
115*a1a3b679SAndreas BoehlerDTSTART:20110104T090000Z
116*a1a3b679SAndreas BoehlerDTEND:20110104T100000Z
117*a1a3b679SAndreas BoehlerEND:VEVENT
118*a1a3b679SAndreas BoehlerEND:VCALENDAR
119*a1a3b679SAndreas BoehlerICS;
120*a1a3b679SAndreas Boehler
121*a1a3b679SAndreas Boehler        $tests[] = array(
122*a1a3b679SAndreas Boehler            $blob,
123*a1a3b679SAndreas Boehler            null,
124*a1a3b679SAndreas Boehler        );
125*a1a3b679SAndreas Boehler
126*a1a3b679SAndreas Boehler        // using duration, shows up
127*a1a3b679SAndreas Boehler        $blob = <<<ICS
128*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
129*a1a3b679SAndreas BoehlerBEGIN:VEVENT
130*a1a3b679SAndreas BoehlerUID:foobar8
131*a1a3b679SAndreas BoehlerDTSTART:20110101T190000Z
132*a1a3b679SAndreas BoehlerDURATION:PT1H
133*a1a3b679SAndreas BoehlerEND:VEVENT
134*a1a3b679SAndreas BoehlerEND:VCALENDAR
135*a1a3b679SAndreas BoehlerICS;
136*a1a3b679SAndreas Boehler
137*a1a3b679SAndreas Boehler        $tests[] = array(
138*a1a3b679SAndreas Boehler            $blob,
139*a1a3b679SAndreas Boehler            '20110101T190000Z/20110101T200000Z',
140*a1a3b679SAndreas Boehler        );
141*a1a3b679SAndreas Boehler
142*a1a3b679SAndreas Boehler        // Day-long event, shows up
143*a1a3b679SAndreas Boehler        $blob = <<<ICS
144*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
145*a1a3b679SAndreas BoehlerBEGIN:VEVENT
146*a1a3b679SAndreas BoehlerUID:foobar9
147*a1a3b679SAndreas BoehlerDTSTART;VALUE=DATE:20110102
148*a1a3b679SAndreas BoehlerEND:VEVENT
149*a1a3b679SAndreas BoehlerEND:VCALENDAR
150*a1a3b679SAndreas BoehlerICS;
151*a1a3b679SAndreas Boehler
152*a1a3b679SAndreas Boehler        $tests[] = array(
153*a1a3b679SAndreas Boehler            $blob,
154*a1a3b679SAndreas Boehler            '20110102T000000Z/20110103T000000Z',
155*a1a3b679SAndreas Boehler        );
156*a1a3b679SAndreas Boehler
157*a1a3b679SAndreas Boehler
158*a1a3b679SAndreas Boehler        // No duration, does not show up
159*a1a3b679SAndreas Boehler        $blob = <<<ICS
160*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
161*a1a3b679SAndreas BoehlerBEGIN:VEVENT
162*a1a3b679SAndreas BoehlerUID:foobar10
163*a1a3b679SAndreas BoehlerDTSTART:20110101T200000Z
164*a1a3b679SAndreas BoehlerEND:VEVENT
165*a1a3b679SAndreas BoehlerEND:VCALENDAR
166*a1a3b679SAndreas BoehlerICS;
167*a1a3b679SAndreas Boehler
168*a1a3b679SAndreas Boehler        $tests[] = array(
169*a1a3b679SAndreas Boehler            $blob,
170*a1a3b679SAndreas Boehler            null,
171*a1a3b679SAndreas Boehler        );
172*a1a3b679SAndreas Boehler
173*a1a3b679SAndreas Boehler        // encoded as object, shows up
174*a1a3b679SAndreas Boehler        $blob = <<<ICS
175*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
176*a1a3b679SAndreas BoehlerBEGIN:VEVENT
177*a1a3b679SAndreas BoehlerUID:foobar11
178*a1a3b679SAndreas BoehlerDTSTART:20110101T210000Z
179*a1a3b679SAndreas BoehlerDURATION:PT1H
180*a1a3b679SAndreas BoehlerEND:VEVENT
181*a1a3b679SAndreas BoehlerEND:VCALENDAR
182*a1a3b679SAndreas BoehlerICS;
183*a1a3b679SAndreas Boehler
184*a1a3b679SAndreas Boehler        $tests[] = array(
185*a1a3b679SAndreas Boehler            Reader::read($blob),
186*a1a3b679SAndreas Boehler            '20110101T210000Z/20110101T220000Z',
187*a1a3b679SAndreas Boehler        );
188*a1a3b679SAndreas Boehler
189*a1a3b679SAndreas Boehler        // Freebusy. Some parts show up
190*a1a3b679SAndreas Boehler        $blob = <<<ICS
191*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
192*a1a3b679SAndreas BoehlerBEGIN:VFREEBUSY
193*a1a3b679SAndreas BoehlerFREEBUSY:20110103T010000Z/20110103T020000Z
194*a1a3b679SAndreas BoehlerFREEBUSY;FBTYPE=FREE:20110103T020000Z/20110103T030000Z
195*a1a3b679SAndreas BoehlerFREEBUSY:20110103T030000Z/20110103T040000Z,20110103T040000Z/20110103T050000Z
196*a1a3b679SAndreas BoehlerFREEBUSY:20120101T000000Z/20120101T010000Z
197*a1a3b679SAndreas BoehlerFREEBUSY:20110103T050000Z/PT1H
198*a1a3b679SAndreas BoehlerEND:VFREEBUSY
199*a1a3b679SAndreas BoehlerEND:VCALENDAR
200*a1a3b679SAndreas BoehlerICS;
201*a1a3b679SAndreas Boehler
202*a1a3b679SAndreas Boehler        $tests[] = array(
203*a1a3b679SAndreas Boehler            Reader::read($blob),
204*a1a3b679SAndreas Boehler            array(
205*a1a3b679SAndreas Boehler                '20110103T010000Z/20110103T020000Z',
206*a1a3b679SAndreas Boehler                '20110103T030000Z/20110103T040000Z',
207*a1a3b679SAndreas Boehler                '20110103T040000Z/20110103T050000Z',
208*a1a3b679SAndreas Boehler                '20110103T050000Z/20110103T060000Z',
209*a1a3b679SAndreas Boehler            )
210*a1a3b679SAndreas Boehler        );
211*a1a3b679SAndreas Boehler
212*a1a3b679SAndreas Boehler
213*a1a3b679SAndreas Boehler        // Yearly recurrence rule, shows up
214*a1a3b679SAndreas Boehler        $blob = <<<ICS
215*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
216*a1a3b679SAndreas BoehlerBEGIN:VEVENT
217*a1a3b679SAndreas BoehlerUID:foobar13
218*a1a3b679SAndreas BoehlerDTSTART:20100101T220000Z
219*a1a3b679SAndreas BoehlerDTEND:20100101T230000Z
220*a1a3b679SAndreas BoehlerRRULE:FREQ=YEARLY
221*a1a3b679SAndreas BoehlerEND:VEVENT
222*a1a3b679SAndreas BoehlerEND:VCALENDAR
223*a1a3b679SAndreas BoehlerICS;
224*a1a3b679SAndreas Boehler
225*a1a3b679SAndreas Boehler        $tests[] = array(
226*a1a3b679SAndreas Boehler            Reader::read($blob),
227*a1a3b679SAndreas Boehler            '20110101T220000Z/20110101T230000Z',
228*a1a3b679SAndreas Boehler        );
229*a1a3b679SAndreas Boehler
230*a1a3b679SAndreas Boehler
231*a1a3b679SAndreas Boehler        // Yearly recurrence rule + duration, shows up
232*a1a3b679SAndreas Boehler        $blob = <<<ICS
233*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
234*a1a3b679SAndreas BoehlerBEGIN:VEVENT
235*a1a3b679SAndreas BoehlerUID:foobar14
236*a1a3b679SAndreas BoehlerDTSTART:20100101T230000Z
237*a1a3b679SAndreas BoehlerDURATION:PT1H
238*a1a3b679SAndreas BoehlerRRULE:FREQ=YEARLY
239*a1a3b679SAndreas BoehlerEND:VEVENT
240*a1a3b679SAndreas BoehlerEND:VCALENDAR
241*a1a3b679SAndreas BoehlerICS;
242*a1a3b679SAndreas Boehler
243*a1a3b679SAndreas Boehler        $tests[] = array(
244*a1a3b679SAndreas Boehler            Reader::read($blob),
245*a1a3b679SAndreas Boehler            '20110101T230000Z/20110102T000000Z',
246*a1a3b679SAndreas Boehler        );
247*a1a3b679SAndreas Boehler
248*a1a3b679SAndreas Boehler        // Floating time, no timezone
249*a1a3b679SAndreas Boehler        $blob = <<<ICS
250*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
251*a1a3b679SAndreas BoehlerBEGIN:VEVENT
252*a1a3b679SAndreas BoehlerUID:foobar
253*a1a3b679SAndreas BoehlerDTSTART:20110101T120000
254*a1a3b679SAndreas BoehlerDTEND:20110101T130000
255*a1a3b679SAndreas BoehlerEND:VEVENT
256*a1a3b679SAndreas BoehlerEND:VCALENDAR
257*a1a3b679SAndreas BoehlerICS;
258*a1a3b679SAndreas Boehler
259*a1a3b679SAndreas Boehler        $tests[] = array(
260*a1a3b679SAndreas Boehler            $blob,
261*a1a3b679SAndreas Boehler            "20110101T120000Z/20110101T130000Z"
262*a1a3b679SAndreas Boehler        );
263*a1a3b679SAndreas Boehler
264*a1a3b679SAndreas Boehler        // Floating time + reference timezone
265*a1a3b679SAndreas Boehler        $blob = <<<ICS
266*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
267*a1a3b679SAndreas BoehlerBEGIN:VEVENT
268*a1a3b679SAndreas BoehlerUID:foobar
269*a1a3b679SAndreas BoehlerDTSTART:20110101T120000
270*a1a3b679SAndreas BoehlerDTEND:20110101T130000
271*a1a3b679SAndreas BoehlerEND:VEVENT
272*a1a3b679SAndreas BoehlerEND:VCALENDAR
273*a1a3b679SAndreas BoehlerICS;
274*a1a3b679SAndreas Boehler
275*a1a3b679SAndreas Boehler        $tests[] = array(
276*a1a3b679SAndreas Boehler            $blob,
277*a1a3b679SAndreas Boehler            "20110101T170000Z/20110101T180000Z",
278*a1a3b679SAndreas Boehler            new \DateTimeZone('America/Toronto')
279*a1a3b679SAndreas Boehler        );
280*a1a3b679SAndreas Boehler
281*a1a3b679SAndreas Boehler        // All-day event
282*a1a3b679SAndreas Boehler        $blob = <<<ICS
283*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
284*a1a3b679SAndreas BoehlerBEGIN:VEVENT
285*a1a3b679SAndreas BoehlerUID:foobar
286*a1a3b679SAndreas BoehlerDTSTART;VALUE=DATE:20110101
287*a1a3b679SAndreas BoehlerEND:VEVENT
288*a1a3b679SAndreas BoehlerEND:VCALENDAR
289*a1a3b679SAndreas BoehlerICS;
290*a1a3b679SAndreas Boehler
291*a1a3b679SAndreas Boehler        $tests[] = array(
292*a1a3b679SAndreas Boehler            $blob,
293*a1a3b679SAndreas Boehler            "20110101T000000Z/20110102T000000Z"
294*a1a3b679SAndreas Boehler        );
295*a1a3b679SAndreas Boehler
296*a1a3b679SAndreas Boehler        // All-day event + reference timezone
297*a1a3b679SAndreas Boehler        $blob = <<<ICS
298*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
299*a1a3b679SAndreas BoehlerBEGIN:VEVENT
300*a1a3b679SAndreas BoehlerUID:foobar
301*a1a3b679SAndreas BoehlerDTSTART;VALUE=DATE:20110101
302*a1a3b679SAndreas BoehlerEND:VEVENT
303*a1a3b679SAndreas BoehlerEND:VCALENDAR
304*a1a3b679SAndreas BoehlerICS;
305*a1a3b679SAndreas Boehler
306*a1a3b679SAndreas Boehler        $tests[] = array(
307*a1a3b679SAndreas Boehler            $blob,
308*a1a3b679SAndreas Boehler            "20110101T050000Z/20110102T050000Z",
309*a1a3b679SAndreas Boehler            new \DateTimeZone('America/Toronto')
310*a1a3b679SAndreas Boehler        );
311*a1a3b679SAndreas Boehler
312*a1a3b679SAndreas Boehler        // Recurrence rule with no valid instances
313*a1a3b679SAndreas Boehler        $blob = <<<ICS
314*a1a3b679SAndreas BoehlerBEGIN:VCALENDAR
315*a1a3b679SAndreas BoehlerBEGIN:VEVENT
316*a1a3b679SAndreas BoehlerUID:foobar
317*a1a3b679SAndreas BoehlerDTSTART:20110101T100000Z
318*a1a3b679SAndreas BoehlerDTEND:20110103T120000Z
319*a1a3b679SAndreas BoehlerRRULE:FREQ=WEEKLY;COUNT=1
320*a1a3b679SAndreas BoehlerEXDATE:20110101T100000Z
321*a1a3b679SAndreas BoehlerEND:VEVENT
322*a1a3b679SAndreas BoehlerEND:VCALENDAR
323*a1a3b679SAndreas BoehlerICS;
324*a1a3b679SAndreas Boehler
325*a1a3b679SAndreas Boehler        $tests[] = array(
326*a1a3b679SAndreas Boehler            $blob,
327*a1a3b679SAndreas Boehler            array()
328*a1a3b679SAndreas Boehler            );
329*a1a3b679SAndreas Boehler        return $tests;
330*a1a3b679SAndreas Boehler
331*a1a3b679SAndreas Boehler    }
332*a1a3b679SAndreas Boehler
333*a1a3b679SAndreas Boehler    /**
334*a1a3b679SAndreas Boehler     * @dataProvider getInput
335*a1a3b679SAndreas Boehler     */
336*a1a3b679SAndreas Boehler    function testGenerator($input, $expected, $timeZone = null) {
337*a1a3b679SAndreas Boehler
338*a1a3b679SAndreas Boehler        $gen = new FreeBusyGenerator(
339*a1a3b679SAndreas Boehler            new \DateTime('20110101T110000Z', new \DateTimeZone('UTC')),
340*a1a3b679SAndreas Boehler            new \DateTime('20110103T110000Z', new \DateTimeZone('UTC')),
341*a1a3b679SAndreas Boehler            $input,
342*a1a3b679SAndreas Boehler            $timeZone
343*a1a3b679SAndreas Boehler        );
344*a1a3b679SAndreas Boehler
345*a1a3b679SAndreas Boehler        $result = $gen->getResult();
346*a1a3b679SAndreas Boehler
347*a1a3b679SAndreas Boehler        $expected = (array)$expected;
348*a1a3b679SAndreas Boehler
349*a1a3b679SAndreas Boehler        $freebusy = $result->VFREEBUSY->select('FREEBUSY');
350*a1a3b679SAndreas Boehler
351*a1a3b679SAndreas Boehler        foreach($freebusy as $fb) {
352*a1a3b679SAndreas Boehler
353*a1a3b679SAndreas Boehler            $this->assertContains((string)$fb, $expected, "$fb did not appear in our list of expected freebusy strings. This is concerning!");
354*a1a3b679SAndreas Boehler
355*a1a3b679SAndreas Boehler            $k = array_search((string)$fb, $expected);
356*a1a3b679SAndreas Boehler            unset($expected[$k]);
357*a1a3b679SAndreas Boehler
358*a1a3b679SAndreas Boehler        }
359*a1a3b679SAndreas Boehler        $this->assertTrue(
360*a1a3b679SAndreas Boehler            count($expected) === 0,
361*a1a3b679SAndreas Boehler            'There were elements in the expected array that were not found in the output: ' . "\n"  . print_r($expected,true) . "\n" . $result->serialize()
362*a1a3b679SAndreas Boehler        );
363*a1a3b679SAndreas Boehler
364*a1a3b679SAndreas Boehler    }
365*a1a3b679SAndreas Boehler
366*a1a3b679SAndreas Boehler    function testGeneratorBaseObject() {
367*a1a3b679SAndreas Boehler
368*a1a3b679SAndreas Boehler        $obj = new Component\VCalendar();
369*a1a3b679SAndreas Boehler        $obj->METHOD = 'PUBLISH';
370*a1a3b679SAndreas Boehler
371*a1a3b679SAndreas Boehler        $gen = new FreeBusyGenerator();
372*a1a3b679SAndreas Boehler        $gen->setObjects(array());
373*a1a3b679SAndreas Boehler        $gen->setBaseObject($obj);
374*a1a3b679SAndreas Boehler
375*a1a3b679SAndreas Boehler        $result = $gen->getResult();
376*a1a3b679SAndreas Boehler
377*a1a3b679SAndreas Boehler        $this->assertEquals('PUBLISH', $result->METHOD->getValue());
378*a1a3b679SAndreas Boehler
379*a1a3b679SAndreas Boehler    }
380*a1a3b679SAndreas Boehler
381*a1a3b679SAndreas Boehler    /**
382*a1a3b679SAndreas Boehler     * @expectedException InvalidArgumentException
383*a1a3b679SAndreas Boehler     */
384*a1a3b679SAndreas Boehler    function testInvalidArg() {
385*a1a3b679SAndreas Boehler
386*a1a3b679SAndreas Boehler        $gen = new FreeBusyGenerator(
387*a1a3b679SAndreas Boehler            new \DateTime('2012-01-01'),
388*a1a3b679SAndreas Boehler            new \DateTime('2012-12-31'),
389*a1a3b679SAndreas Boehler            new \StdClass()
390*a1a3b679SAndreas Boehler        );
391*a1a3b679SAndreas Boehler
392*a1a3b679SAndreas Boehler    }
393*a1a3b679SAndreas Boehler
394*a1a3b679SAndreas Boehler}
395