1*a1a3b679SAndreas Boehler<?php 2*a1a3b679SAndreas Boehler 3*a1a3b679SAndreas Boehlernamespace Sabre\VObject\Recur; 4*a1a3b679SAndreas Boehler 5*a1a3b679SAndreas Boehleruse DateTime; 6*a1a3b679SAndreas Boehleruse DateTimeZone; 7*a1a3b679SAndreas Boehler 8*a1a3b679SAndreas Boehlerclass RDateIteratorTest extends \PHPUnit_Framework_TestCase { 9*a1a3b679SAndreas Boehler 10*a1a3b679SAndreas Boehler function testSimple() { 11*a1a3b679SAndreas Boehler 12*a1a3b679SAndreas Boehler $utc = new DateTimeZone('UTC'); 13*a1a3b679SAndreas Boehler $it = new RDateIterator('20140901T000000Z,20141001T000000Z', new DateTime('2014-08-01 00:00:00', $utc)); 14*a1a3b679SAndreas Boehler 15*a1a3b679SAndreas Boehler $expected = array( 16*a1a3b679SAndreas Boehler new DateTime('2014-08-01 00:00:00', $utc), 17*a1a3b679SAndreas Boehler new DateTime('2014-09-01 00:00:00', $utc), 18*a1a3b679SAndreas Boehler new DateTime('2014-10-01 00:00:00', $utc), 19*a1a3b679SAndreas Boehler ); 20*a1a3b679SAndreas Boehler 21*a1a3b679SAndreas Boehler $this->assertEquals( 22*a1a3b679SAndreas Boehler $expected, 23*a1a3b679SAndreas Boehler iterator_to_array($it) 24*a1a3b679SAndreas Boehler ); 25*a1a3b679SAndreas Boehler 26*a1a3b679SAndreas Boehler $this->assertFalse($it->isInfinite()); 27*a1a3b679SAndreas Boehler 28*a1a3b679SAndreas Boehler } 29*a1a3b679SAndreas Boehler 30*a1a3b679SAndreas Boehler function testFastForward() { 31*a1a3b679SAndreas Boehler 32*a1a3b679SAndreas Boehler $utc = new DateTimeZone('UTC'); 33*a1a3b679SAndreas Boehler $it = new RDateIterator('20140901T000000Z,20141001T000000Z', new DateTime('2014-08-01 00:00:00', $utc)); 34*a1a3b679SAndreas Boehler 35*a1a3b679SAndreas Boehler $it->fastForward(new DateTime('2014-08-15 00:00:00')); 36*a1a3b679SAndreas Boehler 37*a1a3b679SAndreas Boehler $result = array(); 38*a1a3b679SAndreas Boehler while($it->valid()) { 39*a1a3b679SAndreas Boehler $result[] = $it->current(); 40*a1a3b679SAndreas Boehler $it->next(); 41*a1a3b679SAndreas Boehler } 42*a1a3b679SAndreas Boehler 43*a1a3b679SAndreas Boehler $expected = array( 44*a1a3b679SAndreas Boehler new DateTime('2014-09-01 00:00:00', $utc), 45*a1a3b679SAndreas Boehler new DateTime('2014-10-01 00:00:00', $utc), 46*a1a3b679SAndreas Boehler ); 47*a1a3b679SAndreas Boehler 48*a1a3b679SAndreas Boehler $this->assertEquals( 49*a1a3b679SAndreas Boehler $expected, 50*a1a3b679SAndreas Boehler $result 51*a1a3b679SAndreas Boehler ); 52*a1a3b679SAndreas Boehler 53*a1a3b679SAndreas Boehler $this->assertFalse($it->isInfinite()); 54*a1a3b679SAndreas Boehler 55*a1a3b679SAndreas Boehler } 56*a1a3b679SAndreas Boehler} 57