/** * @dataProvider validProvider */ public function testValid($argument1, $argument2, Duration $duration, $iso8601 = null) { $object = null; if ($argument1 instanceof CalendarDate) { if ($argument2 instanceof CalendarDate) { $object = Interval::create($argument1, $argument2); } if ($argument2 instanceof Duration) { $object = Interval::createFromStartAndDuration($argument1, $argument2); } } if ($argument1 instanceof Duration) { if ($argument2 instanceof CalendarDate) { $object = Interval::createFromEndAndDuration($argument2, $argument1); } } static::assertEquals($object->duration()->year(), $duration->year()); static::assertEquals($object->duration()->month(), $duration->month()); static::assertEquals($object->duration()->day(), $duration->day()); static::assertEquals($object->duration()->hour(), $duration->hour()); static::assertEquals($object->duration()->minute(), $duration->minute()); static::assertEquals($object->duration()->second(), $duration->second()); if ($iso8601) { static::assertEquals($object->toIso8601Format(), $iso8601); } }
/** * @param DateTimeOfDay $start * @param DateTimeOfDay $end */ protected function __construct(CalendarDate $start, CalendarDate $end) { if (!$start instanceof DateTimeOfDay) { throw new NotMatchTypeException($start); } if (!$end instanceof DateTimeOfDay) { throw new NotMatchTypeException($end); } parent::__construct($start, $end); }