HoursFieldTest.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace Cron\Tests;
  3. use Cron\HoursField;
  4. use DateTime;
  5. /**
  6. * @author Michael Dowling <mtdowling@gmail.com>
  7. */
  8. class HoursFieldTest extends \PHPUnit_Framework_TestCase
  9. {
  10. /**
  11. * @covers Cron\HoursField::validate
  12. */
  13. public function testValdatesField()
  14. {
  15. $f = new HoursField();
  16. $this->assertTrue($f->validate('1'));
  17. $this->assertTrue($f->validate('*'));
  18. $this->assertTrue($f->validate('*/3,1,1-12'));
  19. }
  20. /**
  21. * @covers Cron\HoursField::increment
  22. */
  23. public function testIncrementsDate()
  24. {
  25. $d = new DateTime('2011-03-15 11:15:00');
  26. $f = new HoursField();
  27. $f->increment($d);
  28. $this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
  29. $d->setTime(11, 15, 0);
  30. $f->increment($d, true);
  31. $this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
  32. }
  33. /**
  34. * @covers Cron\HoursField::increment
  35. */
  36. public function testIncrementsDateWithThirtyMinuteOffsetTimezone()
  37. {
  38. $tz = date_default_timezone_get();
  39. date_default_timezone_set('America/St_Johns');
  40. $d = new DateTime('2011-03-15 11:15:00');
  41. $f = new HoursField();
  42. $f->increment($d);
  43. $this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
  44. $d->setTime(11, 15, 0);
  45. $f->increment($d, true);
  46. $this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
  47. date_default_timezone_set($tz);
  48. }
  49. /**
  50. * @covers Cron\HoursField::increment
  51. */
  52. public function testIncrementDateWithFifteenMinuteOffsetTimezone()
  53. {
  54. $tz = date_default_timezone_get();
  55. date_default_timezone_set('Asia/Kathmandu');
  56. $d = new DateTime('2011-03-15 11:15:00');
  57. $f = new HoursField();
  58. $f->increment($d);
  59. $this->assertEquals('2011-03-15 12:00:00', $d->format('Y-m-d H:i:s'));
  60. $d->setTime(11, 15, 0);
  61. $f->increment($d, true);
  62. $this->assertEquals('2011-03-15 10:59:00', $d->format('Y-m-d H:i:s'));
  63. date_default_timezone_set($tz);
  64. }
  65. }