100 lines
2.8 KiB
PHP
Executable File
100 lines
2.8 KiB
PHP
Executable File
<?php
|
|
|
|
/*
|
|
* This file is part of the Carbon package.
|
|
*
|
|
* (c) Brian Nesbitt <brian@nesbot.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
use Carbon\CarbonInterval;
|
|
|
|
class CarbonIntervalSettersTest extends TestFixture
|
|
{
|
|
public function testYearsSetter()
|
|
{
|
|
$d = CarbonInterval::create(4, 5, 6, 5, 8, 9, 10);
|
|
$d->years = 2;
|
|
$this->assertSame(2, $d->years);
|
|
}
|
|
|
|
public function testMonthsSetter()
|
|
{
|
|
$d = CarbonInterval::create(4, 5, 6, 5, 8, 9, 10);
|
|
$d->months = 11;
|
|
$this->assertSame(11, $d->months);
|
|
}
|
|
|
|
public function testWeeksSetter()
|
|
{
|
|
$d = CarbonInterval::create(4, 5, 6, 5, 8, 9, 10);
|
|
$d->weeks = 11;
|
|
$this->assertSame(11, $d->weeks);
|
|
$this->assertSame(7 * 11, $d->dayz);
|
|
}
|
|
|
|
public function testDayzSetter()
|
|
{
|
|
$d = CarbonInterval::create(4, 5, 6, 5, 8, 9, 10);
|
|
$d->dayz = 11;
|
|
$this->assertSame(11, $d->dayz);
|
|
$this->assertSame(1, $d->weeks);
|
|
$this->assertSame(4, $d->dayzExcludeWeeks);
|
|
}
|
|
|
|
public function testHoursSetter()
|
|
{
|
|
$d = CarbonInterval::create(4, 5, 6, 5, 8, 9, 10);
|
|
$d->hours = 12;
|
|
$this->assertSame(12, $d->hours);
|
|
}
|
|
|
|
public function testMinutesSetter()
|
|
{
|
|
$d = CarbonInterval::create(4, 5, 6, 5, 8, 9, 10);
|
|
$d->minutes = 11;
|
|
$this->assertSame(11, $d->minutes);
|
|
}
|
|
|
|
public function testSecondsSetter()
|
|
{
|
|
$d = CarbonInterval::create(4, 5, 6, 5, 8, 9, 10);
|
|
$d->seconds = 34;
|
|
$this->assertSame(34, $d->seconds);
|
|
}
|
|
|
|
public function testFluentSetters()
|
|
{
|
|
$ci = CarbonInterval::years(4)->months(2)->dayz(5)->hours(3)->minute()->seconds(59);
|
|
$this->assertInstanceOfCarbonInterval($ci);
|
|
$this->assertCarbonInterval($ci, 4, 2, 5, 3, 1, 59);
|
|
|
|
$ci = CarbonInterval::years(4)->months(2)->weeks(2)->hours(3)->minute()->seconds(59);
|
|
$this->assertInstanceOfCarbonInterval($ci);
|
|
$this->assertCarbonInterval($ci, 4, 2, 14, 3, 1, 59);
|
|
}
|
|
|
|
public function testFluentSettersDaysOverwritesWeeks()
|
|
{
|
|
$ci = CarbonInterval::weeks(3)->days(5);
|
|
$this->assertCarbonInterval($ci, 0, 0, 5, 0, 0, 0);
|
|
}
|
|
|
|
public function testFluentSettersWeeksOverwritesDays()
|
|
{
|
|
$ci = CarbonInterval::days(5)->weeks(3);
|
|
$this->assertCarbonInterval($ci, 0, 0, 3 * 7, 0, 0, 0);
|
|
}
|
|
|
|
public function testFluentSettersWeeksAndDaysIsCumulative()
|
|
{
|
|
$ci = CarbonInterval::year(5)->weeksAndDays(2, 6);
|
|
$this->assertCarbonInterval($ci, 5, 0, 20, 0, 0, 0);
|
|
$this->assertSame(20, $ci->dayz);
|
|
$this->assertSame(2, $ci->weeks);
|
|
$this->assertSame(6, $ci->dayzExcludeWeeks);
|
|
}
|
|
}
|