RDateIteratorTest.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace Sabre\VObject\Recur;
  3. use DateTime;
  4. use DateTimeZone;
  5. class RDateIteratorTest extends \PHPUnit_Framework_TestCase {
  6. function testSimple() {
  7. $utc = new DateTimeZone('UTC');
  8. $it = new RDateIterator('20140901T000000Z,20141001T000000Z', new DateTime('2014-08-01 00:00:00', $utc));
  9. $expected = array(
  10. new DateTime('2014-08-01 00:00:00', $utc),
  11. new DateTime('2014-09-01 00:00:00', $utc),
  12. new DateTime('2014-10-01 00:00:00', $utc),
  13. );
  14. $this->assertEquals(
  15. $expected,
  16. iterator_to_array($it)
  17. );
  18. $this->assertFalse($it->isInfinite());
  19. }
  20. function testFastForward() {
  21. $utc = new DateTimeZone('UTC');
  22. $it = new RDateIterator('20140901T000000Z,20141001T000000Z', new DateTime('2014-08-01 00:00:00', $utc));
  23. $it->fastForward(new DateTime('2014-08-15 00:00:00'));
  24. $result = array();
  25. while($it->valid()) {
  26. $result[] = $it->current();
  27. $it->next();
  28. }
  29. $expected = array(
  30. new DateTime('2014-09-01 00:00:00', $utc),
  31. new DateTime('2014-10-01 00:00:00', $utc),
  32. );
  33. $this->assertEquals(
  34. $expected,
  35. $result
  36. );
  37. $this->assertFalse($it->isInfinite());
  38. }
  39. }