the whole shebang

This commit is contained in:
2014-11-25 16:42:40 +01:00
parent 7f74c0613e
commit ab1334c0cf
3686 changed files with 496409 additions and 1 deletions

163
vendor/nesbot/carbon/tests/AddTest.php vendored Normal file
View File

@@ -0,0 +1,163 @@
<?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\Carbon;
class AddTest extends TestFixture
{
public function testAddYearsPositive()
{
$this->assertSame(1976, Carbon::createFromDate(1975)->addYears(1)->year);
}
public function testAddYearsZero()
{
$this->assertSame(1975, Carbon::createFromDate(1975)->addYears(0)->year);
}
public function testAddYearsNegative()
{
$this->assertSame(1974, Carbon::createFromDate(1975)->addYears(-1)->year);
}
public function testAddYear()
{
$this->assertSame(1976, Carbon::createFromDate(1975)->addYear()->year);
}
public function testAddMonthsPositive()
{
$this->assertSame(1, Carbon::createFromDate(1975, 12)->addMonths(1)->month);
}
public function testAddMonthsZero()
{
$this->assertSame(12, Carbon::createFromDate(1975, 12)->addMonths(0)->month);
}
public function testAddMonthsNegative()
{
$this->assertSame(11, Carbon::createFromDate(1975, 12, 1)->addMonths(-1)->month);
}
public function testAddMonth()
{
$this->assertSame(1, Carbon::createFromDate(1975, 12)->addMonth()->month);
}
public function testAddMonthWithOverflow()
{
$this->assertSame(3, Carbon::createFromDate(2012, 1, 31)->addMonth()->month);
}
public function testAddDaysPositive()
{
$this->assertSame(1, Carbon::createFromDate(1975, 5, 31)->addDays(1)->day);
}
public function testAddDaysZero()
{
$this->assertSame(31, Carbon::createFromDate(1975, 5, 31)->addDays(0)->day);
}
public function testAddDaysNegative()
{
$this->assertSame(30, Carbon::createFromDate(1975, 5, 31)->addDays(-1)->day);
}
public function testAddDay()
{
$this->assertSame(1, Carbon::createFromDate(1975, 5, 31)->addDay()->day);
}
public function testAddWeekdaysPositive()
{
$this->assertSame(17, Carbon::createFromDate(2012, 1, 4)->addWeekdays(9)->day);
}
public function testAddWeekdaysZero()
{
$this->assertSame(4, Carbon::createFromDate(2012, 1, 4)->addWeekdays(0)->day);
}
public function testAddWeekdaysNegative()
{
$this->assertSame(18, Carbon::createFromDate(2012, 1, 31)->addWeekdays(-9)->day);
}
public function testAddWeekday()
{
$this->assertSame(9, Carbon::createFromDate(2012, 1, 6)->addWeekday()->day);
}
public function testAddWeeksPositive()
{
$this->assertSame(28, Carbon::createFromDate(1975, 5, 21)->addWeeks(1)->day);
}
public function testAddWeeksZero()
{
$this->assertSame(21, Carbon::createFromDate(1975, 5, 21)->addWeeks(0)->day);
}
public function testAddWeeksNegative()
{
$this->assertSame(14, Carbon::createFromDate(1975, 5, 21)->addWeeks(-1)->day);
}
public function testAddWeek()
{
$this->assertSame(28, Carbon::createFromDate(1975, 5, 21)->addWeek()->day);
}
public function testAddHoursPositive()
{
$this->assertSame(1, Carbon::createFromTime(0)->addHours(1)->hour);
}
public function testAddHoursZero()
{
$this->assertSame(0, Carbon::createFromTime(0)->addHours(0)->hour);
}
public function testAddHoursNegative()
{
$this->assertSame(23, Carbon::createFromTime(0)->addHours(-1)->hour);
}
public function testAddHour()
{
$this->assertSame(1, Carbon::createFromTime(0)->addHour()->hour);
}
public function testAddMinutesPositive()
{
$this->assertSame(1, Carbon::createFromTime(0, 0)->addMinutes(1)->minute);
}
public function testAddMinutesZero()
{
$this->assertSame(0, Carbon::createFromTime(0, 0)->addMinutes(0)->minute);
}
public function testAddMinutesNegative()
{
$this->assertSame(59, Carbon::createFromTime(0, 0)->addMinutes(-1)->minute);
}
public function testAddMinute()
{
$this->assertSame(1, Carbon::createFromTime(0, 0)->addMinute()->minute);
}
public function testAddSecondsPositive()
{
$this->assertSame(1, Carbon::createFromTime(0, 0, 0)->addSeconds(1)->second);
}
public function testAddSecondsZero()
{
$this->assertSame(0, Carbon::createFromTime(0, 0, 0)->addSeconds(0)->second);
}
public function testAddSecondsNegative()
{
$this->assertSame(59, Carbon::createFromTime(0, 0, 0)->addSeconds(-1)->second);
}
public function testAddSecond()
{
$this->assertSame(1, Carbon::createFromTime(0, 0, 0)->addSecond()->second);
}
}

View File

@@ -0,0 +1,134 @@
<?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\Carbon;
class ComparisonTest extends TestFixture
{
public function testEqualToTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1)->eq(Carbon::createFromDate(2000, 1, 1)));
}
public function testEqualToFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1)->eq(Carbon::createFromDate(2000, 1, 2)));
}
public function testEqualWithTimezoneTrue()
{
$this->assertTrue(Carbon::create(2000, 1, 1, 12, 0, 0, 'America/Toronto')->eq(Carbon::create(2000, 1, 1, 9, 0, 0, 'America/Vancouver')));
}
public function testEqualWithTimezoneFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1, 'America/Toronto')->eq(Carbon::createFromDate(2000, 1, 1, 'America/Vancouver')));
}
public function testNotEqualToTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1)->ne(Carbon::createFromDate(2000, 1, 2)));
}
public function testNotEqualToFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1)->ne(Carbon::createFromDate(2000, 1, 1)));
}
public function testNotEqualWithTimezone()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1, 'America/Toronto')->ne(Carbon::createFromDate(2000, 1, 1, 'America/Vancouver')));
}
public function testGreaterThanTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1)->gt(Carbon::createFromDate(1999, 12, 31)));
}
public function testGreaterThanFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1)->gt(Carbon::createFromDate(2000, 1, 2)));
}
public function testGreaterThanWithTimezoneTrue()
{
$dt1 = Carbon::create(2000, 1, 1, 12, 0, 0, 'America/Toronto');
$dt2 = Carbon::create(2000, 1, 1, 8, 59, 59, 'America/Vancouver');
$this->assertTrue($dt1->gt($dt2));
}
public function testGreaterThanWithTimezoneFalse()
{
$dt1 = Carbon::create(2000, 1, 1, 12, 0, 0, 'America/Toronto');
$dt2 = Carbon::create(2000, 1, 1, 9, 0, 1, 'America/Vancouver');
$this->assertFalse($dt1->gt($dt2));
}
public function testGreaterThanOrEqualTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1)->gte(Carbon::createFromDate(1999, 12, 31)));
}
public function testGreaterThanOrEqualTrueEqual()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1)->gte(Carbon::createFromDate(2000, 1, 1)));
}
public function testGreaterThanOrEqualFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1)->gte(Carbon::createFromDate(2000, 1, 2)));
}
public function testLessThanTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1)->lt(Carbon::createFromDate(2000, 1, 2)));
}
public function testLessThanFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1)->lt(Carbon::createFromDate(1999, 12, 31)));
}
public function testLessThanOrEqualTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1)->lte(Carbon::createFromDate(2000, 1, 2)));
}
public function testLessThanOrEqualTrueEqual()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 1)->lte(Carbon::createFromDate(2000, 1, 1)));
}
public function testLessThanOrEqualFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1)->lte(Carbon::createFromDate(1999, 12, 31)));
}
public function testBetweenEqualTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 15)->between(Carbon::createFromDate(2000, 1, 1), Carbon::createFromDate(2000, 1, 31), true));
}
public function testBetweenNotEqualTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 15)->between(Carbon::createFromDate(2000, 1, 1), Carbon::createFromDate(2000, 1, 31), false));
}
public function testBetweenEqualFalse()
{
$this->assertFalse(Carbon::createFromDate(1999, 12, 31)->between(Carbon::createFromDate(2000, 1, 1), Carbon::createFromDate(2000, 1, 31), true));
}
public function testBetweenNotEqualFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1)->between(Carbon::createFromDate(2000, 1, 1), Carbon::createFromDate(2000, 1, 31), false));
}
public function testBetweenEqualSwitchTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 15)->between(Carbon::createFromDate(2000, 1, 31), Carbon::createFromDate(2000, 1, 1), true));
}
public function testBetweenNotEqualSwitchTrue()
{
$this->assertTrue(Carbon::createFromDate(2000, 1, 15)->between(Carbon::createFromDate(2000, 1, 31), Carbon::createFromDate(2000, 1, 1), false));
}
public function testBetweenEqualSwitchFalse()
{
$this->assertFalse(Carbon::createFromDate(1999, 12, 31)->between(Carbon::createFromDate(2000, 1, 31), Carbon::createFromDate(2000, 1, 1), true));
}
public function testBetweenNotEqualSwitchFalse()
{
$this->assertFalse(Carbon::createFromDate(2000, 1, 1)->between(Carbon::createFromDate(2000, 1, 31), Carbon::createFromDate(2000, 1, 1), false));
}
}

View File

@@ -0,0 +1,80 @@
<?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\Carbon;
class ConstructTest extends TestFixture
{
public function testCreatesAnInstanceDefaultToNow()
{
$c = new Carbon();
$now = Carbon::now();
$this->assertEquals('Carbon\Carbon', get_class($c));
$this->assertEquals($now->tzName, $c->tzName);
$this->assertCarbon($c, $now->year, $now->month, $now->day, $now->hour, $now->minute, $now->second);
}
public function testParseCreatesAnInstanceDefaultToNow()
{
$c = Carbon::parse();
$now = Carbon::now();
$this->assertEquals('Carbon\Carbon', get_class($c));
$this->assertEquals($now->tzName, $c->tzName);
$this->assertCarbon($c, $now->year, $now->month, $now->day, $now->hour, $now->minute, $now->second);
}
public function testWithFancyString()
{
$c = new Carbon('first day of January 2008');
$this->assertCarbon($c, 2008, 1, 1, 0, 0, 0);
}
public function testParseWithFancyString()
{
$c = Carbon::parse('first day of January 2008');
$this->assertCarbon($c, 2008, 1, 1, 0, 0, 0);
}
public function testDefaultTimezone()
{
$c = new Carbon('now');
$this->assertSame('America/Toronto', $c->tzName);
}
public function testParseWithDefaultTimezone()
{
$c = Carbon::parse('now');
$this->assertSame('America/Toronto', $c->tzName);
}
public function testSettingTimezone()
{
$c = new Carbon('now', new \DateTimeZone('Europe/London'));
$this->assertSame('Europe/London', $c->tzName);
$this->assertSame(1, $c->offsetHours);
}
public function testParseSettingTimezone()
{
$c = Carbon::parse('now', new \DateTimeZone('Europe/London'));
$this->assertSame('Europe/London', $c->tzName);
$this->assertSame(1, $c->offsetHours);
}
public function testSettingTimezoneWithString()
{
$c = new Carbon('now', 'Asia/Tokyo');
$this->assertSame('Asia/Tokyo', $c->tzName);
$this->assertSame(9, $c->offsetHours);
}
public function testParseSettingTimezoneWithString()
{
$c = Carbon::parse('now', 'Asia/Tokyo');
$this->assertSame('Asia/Tokyo', $c->tzName);
$this->assertSame(9, $c->offsetHours);
}
}

30
vendor/nesbot/carbon/tests/CopyTest.php vendored Normal file
View File

@@ -0,0 +1,30 @@
<?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\Carbon;
class CopyTest extends TestFixture
{
public function testCopy()
{
$dating = Carbon::now();
$dating2 = $dating->copy();
$this->assertNotSame($dating, $dating2);
}
public function testCopyEnsureTzIsCopied()
{
$dating = Carbon::createFromDate(2000, 1, 1, 'Europe/London');
$dating2 = $dating->copy();
$this->assertSame($dating->tzName, $dating2->tzName);
$this->assertSame($dating->offset, $dating2->offset);
}
}

View File

@@ -0,0 +1,59 @@
<?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\Carbon;
class CreateFromDateTest extends TestFixture
{
public function testCreateFromDateWithDefaults()
{
$d = Carbon::createFromDate();
$this->assertSame($d->timestamp, Carbon::create(null, null, null, null, null, null)->timestamp);
}
public function testCreateFromDate()
{
$d = Carbon::createFromDate(1975, 5, 21);
$this->assertCarbon($d, 1975, 5, 21);
}
public function testCreateFromDateWithYear()
{
$d = Carbon::createFromDate(1975);
$this->assertSame(1975, $d->year);
}
public function testCreateFromDateWithMonth()
{
$d = Carbon::createFromDate(null, 5);
$this->assertSame(5, $d->month);
}
public function testCreateFromDateWithDay()
{
$d = Carbon::createFromDate(null, null, 21);
$this->assertSame(21, $d->day);
}
public function testCreateFromDateWithTimezone()
{
$d = Carbon::createFromDate(1975, 5, 21, 'Europe/London');
$this->assertCarbon($d, 1975, 5, 21);
$this->assertSame('Europe/London', $d->tzName);
}
public function testCreateFromDateWithDateTimeZone()
{
$d = Carbon::createFromDate(1975, 5, 21, new \DateTimeZone('Europe/London'));
$this->assertCarbon($d, 1975, 5, 21);
$this->assertSame('Europe/London', $d->tzName);
}
}

View File

@@ -0,0 +1,36 @@
<?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\Carbon;
class CreateFromFormatTest extends TestFixture
{
public function testCreateFromFormatReturnsCarbon()
{
$d = Carbon::createFromFormat('Y-m-d H:i:s', '1975-05-21 22:32:11');
$this->assertCarbon($d, 1975, 5, 21, 22, 32, 11);
$this->assertTrue($d instanceof Carbon);
}
public function testCreateFromFormatWithTimezoneString()
{
$d = Carbon::createFromFormat('Y-m-d H:i:s', '1975-05-21 22:32:11', 'Europe/London');
$this->assertCarbon($d, 1975, 5, 21, 22, 32, 11);
$this->assertSame('Europe/London', $d->tzName);
}
public function testCreateFromFormatWithTimezone()
{
$d = Carbon::createFromFormat('Y-m-d H:i:s', '1975-05-21 22:32:11', new \DateTimeZone('Europe/London'));
$this->assertCarbon($d, 1975, 5, 21, 22, 32, 11);
$this->assertSame('Europe/London', $d->tzName);
}
}

View File

@@ -0,0 +1,60 @@
<?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\Carbon;
class CreateFromTimeTest extends TestFixture
{
public function testCreateFromDateWithDefaults()
{
$d = Carbon::createFromTime();
$this->assertSame($d->timestamp, Carbon::create(null, null, null, null, null, null)->timestamp);
}
public function testCreateFromDate()
{
$d = Carbon::createFromTime(23, 5, 21);
$this->assertCarbon($d, Carbon::now()->year, Carbon::now()->month, Carbon::now()->day, 23, 5, 21);
}
public function testCreateFromTimeWithHour()
{
$d = Carbon::createFromTime(22);
$this->assertSame(22, $d->hour);
$this->assertSame(0, $d->minute);
$this->assertSame(0, $d->second);
}
public function testCreateFromTimeWithMinute()
{
$d = Carbon::createFromTime(null, 5);
$this->assertSame(5, $d->minute);
}
public function testCreateFromTimeWithSecond()
{
$d = Carbon::createFromTime(null, null, 21);
$this->assertSame(21, $d->second);
}
public function testCreateFromTimeWithDateTimeZone()
{
$d = Carbon::createFromTime(12, 0, 0, new \DateTimeZone('Europe/London'));
$this->assertCarbon($d, Carbon::now()->year, Carbon::now()->month, Carbon::now()->day, 12, 0, 0);
$this->assertSame('Europe/London', $d->tzName);
}
public function testCreateFromTimeWithTimeZoneString()
{
$d = Carbon::createFromTime(12, 0, 0, 'Europe/London');
$this->assertCarbon($d, Carbon::now()->year, Carbon::now()->month, Carbon::now()->day, 12, 0, 0);
$this->assertSame('Europe/London', $d->tzName);
}
}

View File

@@ -0,0 +1,51 @@
<?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\Carbon;
class CreateFromTimestampTest extends TestFixture
{
public function testCreateReturnsDatingInstance()
{
$d = Carbon::createFromTimestamp(Carbon::create(1975, 5, 21, 22, 32, 5)->timestamp);
$this->assertCarbon($d, 1975, 5, 21, 22, 32, 5);
}
public function testCreateFromTimestampUsesDefaultTimezone()
{
$d = Carbon::createFromTimestamp(0);
// We know Toronto is -5 since no DST in Jan
$this->assertSame(1969, $d->year);
$this->assertSame(-5 * 3600, $d->offset);
}
public function testCreateFromTimestampWithDateTimeZone()
{
$d = Carbon::createFromTimestamp(0, new \DateTimeZone('UTC'));
$this->assertSame('UTC', $d->tzName);
$this->assertCarbon($d, 1970, 1, 1, 0, 0, 0);
}
public function testCreateFromTimestampWithString()
{
$d = Carbon::createFromTimestamp(0, 'UTC');
$this->assertCarbon($d, 1970, 1, 1, 0, 0, 0);
$this->assertTrue($d->offset === 0);
$this->assertSame('UTC', $d->tzName);
}
public function testCreateFromTimestampGMTDoesNotUseDefaultTimezone()
{
$d = Carbon::createFromTimestampUTC(0);
$this->assertCarbon($d, 1970, 1, 1, 0, 0, 0);
$this->assertTrue($d->offset === 0);
}
}

View File

@@ -0,0 +1,133 @@
<?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\Carbon;
class CreateTest extends TestFixture
{
public function testCreateReturnsDatingInstance()
{
$d = Carbon::create();
$this->assertTrue($d instanceof Carbon);
}
public function testCreateWithDefaults()
{
$d = Carbon::create();
$this->assertSame($d->timestamp, Carbon::now()->timestamp);
}
public function testCreateWithYear()
{
$d = Carbon::create(2012);
$this->assertSame(2012, $d->year);
}
public function testCreateWithInvalidYear()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::create(-3);
}
public function testCreateWithMonth()
{
$d = Carbon::create(null, 3);
$this->assertSame(3, $d->month);
}
public function testCreateWithInvalidMonth()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::create(null, -5);
}
public function testCreateMonthWraps()
{
$d = Carbon::create(2011, 0, 1, 0, 0, 0);
$this->assertCarbon($d, 2010, 12, 1, 0, 0, 0);
}
public function testCreateWithDay()
{
$d = Carbon::create(null, null, 21);
$this->assertSame(21, $d->day);
}
public function testCreateWithInvalidDay()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::create(null, null, -4);
}
public function testCreateDayWraps()
{
$d = Carbon::create(2011, 1, 40, 0, 0, 0);
$this->assertCarbon($d, 2011, 2, 9, 0, 0, 0);
}
public function testCreateWithHourAndDefaultMinSecToZero()
{
$d = Carbon::create(null, null, null, 14);
$this->assertSame(14, $d->hour);
$this->assertSame(0, $d->minute);
$this->assertSame(0, $d->second);
}
public function testCreateWithInvalidHour()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::create(null, null, null, -1);
}
public function testCreateHourWraps()
{
$d = Carbon::create(2011, 1, 1, 24, 0, 0);
$this->assertCarbon($d, 2011, 1, 2, 0, 0, 0);
}
public function testCreateWithMinute()
{
$d = Carbon::create(null, null, null, null, 58);
$this->assertSame(58, $d->minute);
}
public function testCreateWithInvalidMinute()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::create(2011, 1, 1, 0, -2, 0);
}
public function testCreateMinuteWraps()
{
$d = Carbon::create(2011, 1, 1, 0, 62, 0);
$this->assertCarbon($d, 2011, 1, 1, 1, 2, 0);
}
public function testCreateWithSecond()
{
$d = Carbon::create(null, null, null, null, null, 59);
$this->assertSame(59, $d->second);
}
public function testCreateWithInvalidSecond()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::create(null, null, null, null, null, -2);
}
public function testCreateSecondsWrap()
{
$d = Carbon::create(2012, 1, 1, 0, 0, 61);
$this->assertCarbon($d, 2012, 1, 1, 0, 1, 1);
}
public function testCreateWithDateTimeZone()
{
$d = Carbon::create(2012, 1, 1, 0, 0, 0, new \DateTimeZone('Europe/London'));
$this->assertCarbon($d, 2012, 1, 1, 0, 0, 0);
$this->assertSame('Europe/London', $d->tzName);
}
public function testCreateWithTimeZoneString()
{
$d = Carbon::create(2012, 1, 1, 0, 0, 0, 'Europe/London');
$this->assertCarbon($d, 2012, 1, 1, 0, 0, 0);
$this->assertSame('Europe/London', $d->tzName);
}
}

View File

@@ -0,0 +1,256 @@
<?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\Carbon;
class DayOfWeekModifiersTest extends TestFixture
{
public function testStartOfWeek()
{
$d = Carbon::create(1980, 8, 7, 12, 11, 9)->startOfWeek();
$this->assertCarbon($d, 1980, 8, 4, 0, 0, 0);
}
public function testStartOfWeekFromWeekStart()
{
$d = Carbon::createFromDate(1980, 8, 4)->startOfWeek();
$this->assertCarbon($d, 1980, 8, 4, 0, 0, 0);
}
public function testEndOfWeek()
{
$d = Carbon::create(1980, 8, 7, 11, 12, 13)->endOfWeek();
$this->assertCarbon($d, 1980, 8, 10, 23, 59, 59);
}
public function testEndOfWeekFromWeekEnd()
{
$d = Carbon::createFromDate(1980, 8, 9)->endOfWeek();
$this->assertCarbon($d, 1980, 8, 10, 23, 59, 59);
}
public function testNext()
{
$d = Carbon::createFromDate(1975, 5, 21)->next();
$this->assertCarbon($d, 1975, 5, 28, 0, 0, 0);
}
public function testNextMonday()
{
$d = Carbon::createFromDate(1975, 5, 21)->next(Carbon::MONDAY);
$this->assertCarbon($d, 1975, 5, 26, 0, 0, 0);
}
public function testNextSaturday()
{
$d = Carbon::createFromDate(1975, 5, 21)->next(6);
$this->assertCarbon($d, 1975, 5, 24, 0, 0, 0);
}
public function testNextTimestamp()
{
$d = Carbon::createFromDate(1975, 11, 14)->next();
$this->assertCarbon($d, 1975, 11, 21, 0, 0, 0);
}
public function testPrevious()
{
$d = Carbon::createFromDate(1975, 5, 21)->previous();
$this->assertCarbon($d, 1975, 5, 14, 0, 0, 0);
}
public function testPreviousMonday()
{
$d = Carbon::createFromDate(1975, 5, 21)->previous(Carbon::MONDAY);
$this->assertCarbon($d, 1975, 5, 19, 0, 0, 0);
}
public function testPreviousSaturday()
{
$d = Carbon::createFromDate(1975, 5, 21)->previous(6);
$this->assertCarbon($d, 1975, 5, 17, 0, 0, 0);
}
public function testPreviousTimestamp()
{
$d = Carbon::createFromDate(1975, 11, 28)->previous();
$this->assertCarbon($d, 1975, 11, 21, 0, 0, 0);
}
public function testFirstDayOfMonth()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfMonth();
$this->assertCarbon($d, 1975, 11, 1, 0, 0, 0);
}
public function testFirstWednesdayOfMonth()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfMonth(Carbon::WEDNESDAY);
$this->assertCarbon($d, 1975, 11, 5, 0, 0, 0);
}
public function testFirstFridayOfMonth()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfMonth(5);
$this->assertCarbon($d, 1975, 11, 7, 0, 0, 0);
}
public function testLastDayOfMonth()
{
$d = Carbon::createFromDate(1975, 12, 5)->lastOfMonth();
$this->assertCarbon($d, 1975, 12, 31, 0, 0, 0);
}
public function testLastTuesdayOfMonth()
{
$d = Carbon::createFromDate(1975, 12, 1)->lastOfMonth(Carbon::TUESDAY);
$this->assertCarbon($d, 1975, 12, 30, 0, 0, 0);
}
public function testLastFridayOfMonth()
{
$d = Carbon::createFromDate(1975, 12, 5)->lastOfMonth(5);
$this->assertCarbon($d, 1975, 12, 26, 0, 0, 0);
}
public function testNthOfMonthOutsideScope()
{
$this->assertFalse(Carbon::createFromDate(1975, 12, 5)->nthOfMonth(6, Carbon::MONDAY));
}
public function testNthOfMonthOutsideYear()
{
$this->assertFalse(Carbon::createFromDate(1975, 12, 5)->nthOfMonth(55, Carbon::MONDAY));
}
public function test2ndMondayOfMonth()
{
$d = Carbon::createFromDate(1975, 12, 5)->nthOfMonth(2, Carbon::MONDAY);
$this->assertCarbon($d, 1975, 12, 8, 0, 0, 0);
}
public function test3rdWednesdayOfMonth()
{
$d = Carbon::createFromDate(1975, 12, 5)->nthOfMonth(3, 3);
$this->assertCarbon($d, 1975, 12, 17, 0, 0, 0);
}
public function testFirstDayOfQuarter()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfQuarter();
$this->assertCarbon($d, 1975, 10, 1, 0, 0, 0);
}
public function testFirstWednesdayOfQuarter()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfQuarter(Carbon::WEDNESDAY);
$this->assertCarbon($d, 1975, 10, 1, 0, 0, 0);
}
public function testFirstFridayOfQuarter()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfQuarter(5);
$this->assertCarbon($d, 1975, 10, 3, 0, 0, 0);
}
public function testLastDayOfQuarter()
{
$d = Carbon::createFromDate(1975, 8, 5)->lastOfQuarter();
$this->assertCarbon($d, 1975, 9, 30, 0, 0, 0);
}
public function testLastTuesdayOfQuarter()
{
$d = Carbon::createFromDate(1975, 8, 1)->lastOfQuarter(Carbon::TUESDAY);
$this->assertCarbon($d, 1975, 9, 30, 0, 0, 0);
}
public function testLastFridayOfQuarter()
{
$d = Carbon::createFromDate(1975, 7, 5)->lastOfQuarter(5);
$this->assertCarbon($d, 1975, 9, 26, 0, 0, 0);
}
public function testNthOfQuarterOutsideScope()
{
$this->assertFalse(Carbon::createFromDate(1975, 1, 5)->nthOfQuarter(20, Carbon::MONDAY));
}
public function testNthOfQuarterOutsideYear()
{
$this->assertFalse(Carbon::createFromDate(1975, 1, 5)->nthOfQuarter(55, Carbon::MONDAY));
}
public function test2ndMondayOfQuarter()
{
$d = Carbon::createFromDate(1975, 8, 5)->nthOfQuarter(2, Carbon::MONDAY);
$this->assertCarbon($d, 1975, 7, 14, 0, 0, 0);
}
public function test3rdWednesdayOfQuarter()
{
$d = Carbon::createFromDate(1975, 8, 5)->nthOfQuarter(3, 3);
$this->assertCarbon($d, 1975, 7, 16, 0, 0, 0);
}
public function testFirstDayOfYear()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfYear();
$this->assertCarbon($d, 1975, 1, 1, 0, 0, 0);
}
public function testFirstWednesdayOfYear()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfYear(Carbon::WEDNESDAY);
$this->assertCarbon($d, 1975, 1, 1, 0, 0, 0);
}
public function testFirstFridayOfYear()
{
$d = Carbon::createFromDate(1975, 11, 21)->firstOfYear(5);
$this->assertCarbon($d, 1975, 1, 3, 0, 0, 0);
}
public function testLastDayOfYear()
{
$d = Carbon::createFromDate(1975, 8, 5)->lastOfYear();
$this->assertCarbon($d, 1975, 12, 31, 0, 0, 0);
}
public function testLastTuesdayOfYear()
{
$d = Carbon::createFromDate(1975, 8, 1)->lastOfYear(Carbon::TUESDAY);
$this->assertCarbon($d, 1975, 12, 30, 0, 0, 0);
}
public function testLastFridayOfYear()
{
$d = Carbon::createFromDate(1975, 7, 5)->lastOfYear(5);
$this->assertCarbon($d, 1975, 12, 26, 0, 0, 0);
}
public function testNthOfYearOutsideScope()
{
$this->assertFalse(Carbon::createFromDate(1975, 1, 5)->nthOfYear(55, Carbon::MONDAY));
}
public function test2ndMondayOfYear()
{
$d = Carbon::createFromDate(1975, 8, 5)->nthOfYear(2, Carbon::MONDAY);
$this->assertCarbon($d, 1975, 1, 13, 0, 0, 0);
}
public function test3rdWednesdayOfYear()
{
$d = Carbon::createFromDate(1975, 8, 5)->nthOfYear(3, 3);
$this->assertCarbon($d, 1975, 1, 15, 0, 0, 0);
}
}

436
vendor/nesbot/carbon/tests/DiffTest.php vendored Normal file
View File

@@ -0,0 +1,436 @@
<?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\Carbon;
class DiffTest extends TestFixture
{
public function testDiffInYearsPositive()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1, $dt->diffInYears($dt->copy()->addYear()));
}
public function testDiffInYearsNegativeWithSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(-1, $dt->diffInYears($dt->copy()->subYear(), false));
}
public function testDiffInYearsNegativeNoSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1, $dt->diffInYears($dt->copy()->subYear()));
}
public function testDiffInYearsVsDefaultNow()
{
$this->assertSame(1, Carbon::now()->subYear()->diffInYears());
}
public function testDiffInYearsEnsureIsTruncated()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1, $dt->diffInYears($dt->copy()->addYear()->addMonths(7)));
}
public function testDiffInMonthsPositive()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(13, $dt->diffInMonths($dt->copy()->addYear()->addMonth()));
}
public function testDiffInMonthsNegativeWithSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(-11, $dt->diffInMonths($dt->copy()->subYear()->addMonth(), false));
}
public function testDiffInMonthsNegativeNoSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(11, $dt->diffInMonths($dt->copy()->subYear()->addMonth()));
}
public function testDiffInMonthsVsDefaultNow()
{
$this->assertSame(12, Carbon::now()->subYear()->diffInMonths());
}
public function testDiffInMonthsEnsureIsTruncated()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1, $dt->diffInMonths($dt->copy()->addMonth()->addDays(16)));
}
public function testDiffInDaysPositive()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(366, $dt->diffInDays($dt->copy()->addYear()));
}
public function testDiffInDaysNegativeWithSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(-365, $dt->diffInDays($dt->copy()->subYear(), false));
}
public function testDiffInDaysNegativeNoSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(365, $dt->diffInDays($dt->copy()->subYear()));
}
public function testDiffInDaysVsDefaultNow()
{
$this->assertSame(7, Carbon::now()->subWeek()->diffInDays());
}
public function testDiffInDaysEnsureIsTruncated()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1, $dt->diffInDays($dt->copy()->addDay()->addHours(13)));
}
public function testDiffInHoursPositive()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(26, $dt->diffInHours($dt->copy()->addDay()->addHours(2)));
}
public function testDiffInHoursNegativeWithSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(-22, $dt->diffInHours($dt->copy()->subDay()->addHours(2), false));
}
public function testDiffInHoursNegativeNoSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(22, $dt->diffInHours($dt->copy()->subDay()->addHours(2)));
}
public function testDiffInHoursVsDefaultNow()
{
$this->assertSame(48, Carbon::now()->subDays(2)->diffInHours());
}
public function testDiffInHoursEnsureIsTruncated()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1, $dt->diffInHours($dt->copy()->addHour()->addMinutes(31)));
}
public function testDiffInMinutesPositive()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(62, $dt->diffInMinutes($dt->copy()->addHour()->addMinutes(2)));
}
public function testDiffInMinutesPositiveAlot()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1502, $dt->diffInMinutes($dt->copy()->addHours(25)->addMinutes(2)));
}
public function testDiffInMinutesNegativeWithSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(-58, $dt->diffInMinutes($dt->copy()->subHour()->addMinutes(2), false));
}
public function testDiffInMinutesNegativeNoSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(58, $dt->diffInMinutes($dt->copy()->subHour()->addMinutes(2)));
}
public function testDiffInMinutesVsDefaultNow()
{
$this->assertSame(60, Carbon::now()->subHour()->diffInMinutes());
}
public function testDiffInMinutesEnsureIsTruncated()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1, $dt->diffInMinutes($dt->copy()->addMinute()->addSeconds(31)));
}
public function testDiffInSecondsPositive()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(62, $dt->diffInSeconds($dt->copy()->addMinute()->addSeconds(2)));
}
public function testDiffInSecondsPositiveAlot()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(7202, $dt->diffInSeconds($dt->copy()->addHours(2)->addSeconds(2)));
}
public function testDiffInSecondsNegativeWithSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(-58, $dt->diffInSeconds($dt->copy()->subMinute()->addSeconds(2), false));
}
public function testDiffInSecondsNegativeNoSign()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(58, $dt->diffInSeconds($dt->copy()->subMinute()->addSeconds(2)));
}
public function testDiffInSecondsVsDefaultNow()
{
$this->assertSame(3600, Carbon::now()->subHour()->diffInSeconds());
}
public function testDiffInSecondsEnsureIsTruncated()
{
$dt = Carbon::createFromDate(2000, 1, 1);
$this->assertSame(1, $dt->diffInSeconds($dt->copy()->addSeconds(1.9)));
}
public function testDiffInSecondsWithTimezones()
{
$dtOttawa = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
$dtVancouver = Carbon::createFromDate(2000, 1, 1, 'America/Vancouver');
$this->assertSame(3*60*60, $dtOttawa->diffInSeconds($dtVancouver));
}
public function testDiffInSecondsWithTimezonesAndVsDefault()
{
$dt = Carbon::now('America/Vancouver');
$this->assertSame(0, $dt->diffInSeconds());
}
public function testDiffForHumansNowAndSecond()
{
$d = Carbon::now();
$this->assertSame('1 second ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndSecondWithTimezone()
{
$d = Carbon::now('America/Vancouver');
$this->assertSame('1 second ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndSeconds()
{
$d = Carbon::now()->subSeconds(2);
$this->assertSame('2 seconds ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndMinute()
{
$d = Carbon::now()->subMinute();
$this->assertSame('1 minute ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndMinutes()
{
$d = Carbon::now()->subMinutes(2);
$this->assertSame('2 minutes ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndHour()
{
$d = Carbon::now()->subHour();
$this->assertSame('1 hour ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndHours()
{
$d = Carbon::now()->subHours(2);
$this->assertSame('2 hours ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndDay()
{
$d = Carbon::now()->subDay();
$this->assertSame('1 day ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndDays()
{
$d = Carbon::now()->subDays(2);
$this->assertSame('2 days ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndMonth()
{
$d = Carbon::now()->subMonth();
$this->assertSame('1 month ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndMonths()
{
$d = Carbon::now()->subMonths(2);
$this->assertSame('2 months ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndYear()
{
$d = Carbon::now()->subYear();
$this->assertSame('1 year ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndYears()
{
$d = Carbon::now()->subYears(2);
$this->assertSame('2 years ago', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureSecond()
{
$d = Carbon::now()->addSecond();
$this->assertSame('1 second from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureSeconds()
{
$d = Carbon::now()->addSeconds(2);
$this->assertSame('2 seconds from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureMinute()
{
$d = Carbon::now()->addMinute();
$this->assertSame('1 minute from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureMinutes()
{
$d = Carbon::now()->addMinutes(2);
$this->assertSame('2 minutes from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureHour()
{
$d = Carbon::now()->addHour();
$this->assertSame('1 hour from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureHours()
{
$d = Carbon::now()->addHours(2);
$this->assertSame('2 hours from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureDay()
{
$d = Carbon::now()->addDay();
$this->assertSame('1 day from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureDays()
{
$d = Carbon::now()->addDays(2);
$this->assertSame('2 days from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureMonth()
{
$d = Carbon::now()->addMonth();
$this->assertSame('1 month from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureMonths()
{
$d = Carbon::now()->addMonths(2);
$this->assertSame('2 months from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureYear()
{
$d = Carbon::now()->addYear();
$this->assertSame('1 year from now', $d->diffForHumans());
}
public function testDiffForHumansNowAndFutureYears()
{
$d = Carbon::now()->addYears(2);
$this->assertSame('2 years from now', $d->diffForHumans());
}
public function testDiffForHumansOtherAndSecond()
{
$d = Carbon::now()->addSecond();
$this->assertSame('1 second before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndSeconds()
{
$d = Carbon::now()->addSeconds(2);
$this->assertSame('2 seconds before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndMinute()
{
$d = Carbon::now()->addMinute();
$this->assertSame('1 minute before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndMinutes()
{
$d = Carbon::now()->addMinutes(2);
$this->assertSame('2 minutes before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndHour()
{
$d = Carbon::now()->addHour();
$this->assertSame('1 hour before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndHours()
{
$d = Carbon::now()->addHours(2);
$this->assertSame('2 hours before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndDay()
{
$d = Carbon::now()->addDay();
$this->assertSame('1 day before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndDays()
{
$d = Carbon::now()->addDays(2);
$this->assertSame('2 days before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndMonth()
{
$d = Carbon::now()->addMonth();
$this->assertSame('1 month before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndMonths()
{
$d = Carbon::now()->addMonths(2);
$this->assertSame('2 months before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndYear()
{
$d = Carbon::now()->addYear();
$this->assertSame('1 year before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndYears()
{
$d = Carbon::now()->addYears(2);
$this->assertSame('2 years before', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureSecond()
{
$d = Carbon::now()->subSecond();
$this->assertSame('1 second after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureSeconds()
{
$d = Carbon::now()->subSeconds(2);
$this->assertSame('2 seconds after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureMinute()
{
$d = Carbon::now()->subMinute();
$this->assertSame('1 minute after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureMinutes()
{
$d = Carbon::now()->subMinutes(2);
$this->assertSame('2 minutes after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureHour()
{
$d = Carbon::now()->subHour();
$this->assertSame('1 hour after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureHours()
{
$d = Carbon::now()->subHours(2);
$this->assertSame('2 hours after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureDay()
{
$d = Carbon::now()->subDay();
$this->assertSame('1 day after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureDays()
{
$d = Carbon::now()->subDays(2);
$this->assertSame('2 days after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureMonth()
{
$d = Carbon::now()->subMonth();
$this->assertSame('1 month after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureMonths()
{
$d = Carbon::now()->subMonths(2);
$this->assertSame('2 months after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureYear()
{
$d = Carbon::now()->subYear();
$this->assertSame('1 year after', Carbon::now()->diffForHumans($d));
}
public function testDiffForHumansOtherAndFutureYears()
{
$d = Carbon::now()->subYears(2);
$this->assertSame('2 years after', Carbon::now()->diffForHumans($d));
}
}

View File

@@ -0,0 +1,108 @@
<?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\Carbon;
class FluidSettersTest extends TestFixture
{
public function testFluidYearSetter()
{
$d = Carbon::now();
$this->assertTrue($d->year(1995) instanceof Carbon);
$this->assertSame(1995, $d->year);
}
public function testFluidMonthSetter()
{
$d = Carbon::now();
$this->assertTrue($d->month(3) instanceof Carbon);
$this->assertSame(3, $d->month);
}
public function testFluidMonthSetterWithWrap()
{
$d = Carbon::createFromDate(2012, 8, 21);
$this->assertTrue($d->month(13) instanceof Carbon);
$this->assertSame(1, $d->month);
}
public function testFluidDaySetter()
{
$d = Carbon::now();
$this->assertTrue($d->day(2) instanceof Carbon);
$this->assertSame(2, $d->day);
}
public function testFluidDaySetterWithWrap()
{
$d = Carbon::createFromDate(2000, 1, 1);
$this->assertTrue($d->day(32) instanceof Carbon);
$this->assertSame(1, $d->day);
}
public function testFluidSetDate()
{
$d = Carbon::createFromDate(2000, 1, 1);
$this->assertTrue($d->setDate(1995, 13, 32) instanceof Carbon);
$this->assertCarbon($d, 1996, 2, 1);
}
public function testFluidHourSetter()
{
$d = Carbon::now();
$this->assertTrue($d->hour(2) instanceof Carbon);
$this->assertSame(2, $d->hour);
}
public function testFluidHourSetterWithWrap()
{
$d = Carbon::now();
$this->assertTrue($d->hour(25) instanceof Carbon);
$this->assertSame(1, $d->hour);
}
public function testFluidMinuteSetter()
{
$d = Carbon::now();
$this->assertTrue($d->minute(2) instanceof Carbon);
$this->assertSame(2, $d->minute);
}
public function testFluidMinuteSetterWithWrap()
{
$d = Carbon::now();
$this->assertTrue($d->minute(61) instanceof Carbon);
$this->assertSame(1, $d->minute);
}
public function testFluidSecondSetter()
{
$d = Carbon::now();
$this->assertTrue($d->second(2) instanceof Carbon);
$this->assertSame(2, $d->second);
}
public function testFluidSecondSetterWithWrap()
{
$d = Carbon::now();
$this->assertTrue($d->second(62) instanceof Carbon);
$this->assertSame(2, $d->second);
}
public function testFluidSetTime()
{
$d = Carbon::createFromDate(2000, 1, 1);
$this->assertTrue($d->setTime(25, 61, 61) instanceof Carbon);
$this->assertCarbon($d, 2000, 1, 2, 2, 2, 1);
}
public function testFluidTimestampSetter()
{
$d = Carbon::now();
$this->assertTrue($d->timestamp(10) instanceof Carbon);
$this->assertSame(10, $d->timestamp);
}
}

View File

@@ -0,0 +1,198 @@
<?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\Carbon;
class GettersTest extends TestFixture
{
public function testGettersThrowExceptionOnUnknownGetter()
{
$this->setExpectedException('InvalidArgumentException');
Carbon::create(1234, 5, 6, 7, 8, 9)->sdfsdfss;
}
public function testYearGetter()
{
$d = Carbon::create(1234, 5, 6, 7, 8, 9);
$this->assertSame(1234, $d->year);
}
public function testMonthGetter()
{
$d = Carbon::create(1234, 5, 6, 7, 8, 9);
$this->assertSame(5, $d->month);
}
public function testDayGetter()
{
$d = Carbon::create(1234, 5, 6, 7, 8, 9);
$this->assertSame(6, $d->day);
}
public function testHourGetter()
{
$d = Carbon::create(1234, 5, 6, 7, 8, 9);
$this->assertSame(7, $d->hour);
}
public function testMinuteGetter()
{
$d = Carbon::create(1234, 5, 6, 7, 8, 9);
$this->assertSame(8, $d->minute);
}
public function testSecondGetter()
{
$d = Carbon::create(1234, 5, 6, 7, 8, 9);
$this->assertSame(9, $d->second);
}
public function testDayOfWeeGetter()
{
$d = Carbon::create(2012, 5, 7, 7, 8, 9);
$this->assertSame(Carbon::MONDAY, $d->dayOfWeek);
}
public function testDayOfYearGetter()
{
$d = Carbon::createFromDate(2012, 5, 7);
$this->assertSame(127, $d->dayOfYear);
}
public function testDaysInMonthGetter()
{
$d = Carbon::createFromDate(2012, 5, 7);
$this->assertSame(31, $d->daysInMonth);
}
public function testTimestampGetter()
{
$d = Carbon::create();
$d->setTimezone('GMT');
$this->assertSame(0, $d->setDateTime(1970, 1, 1, 0, 0, 0)->timestamp);
}
public function testGetAge()
{
$d = Carbon::now();
$this->assertSame(0, $d->age);
}
public function testGetAgeWithRealAge()
{
$d = Carbon::createFromDate(1975, 5, 21);
$age = intval(substr(date('Ymd') - date('Ymd', $d->timestamp), 0, -4));
$this->assertSame($age, $d->age);
}
public function testGetQuarterFirst()
{
$d = Carbon::createFromDate(2012, 1, 1);
$this->assertSame(1, $d->quarter);
}
public function testGetQuarterFirstEnd()
{
$d = Carbon::createFromDate(2012, 3, 31);
$this->assertSame(1, $d->quarter);
}
public function testGetQuarterSecond()
{
$d = Carbon::createFromDate(2012, 4, 1);
$this->assertSame(2, $d->quarter);
}
public function testGetQuarterThird()
{
$d = Carbon::createFromDate(2012, 7, 1);
$this->assertSame(3, $d->quarter);
}
public function testGetQuarterFourth()
{
$d = Carbon::createFromDate(2012, 10, 1);
$this->assertSame(4, $d->quarter);
}
public function testGetQuarterFirstLast()
{
$d = Carbon::createFromDate(2012, 12, 31);
$this->assertSame(4, $d->quarter);
}
public function testGetDstFalse()
{
$this->assertFalse(Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->dst);
}
public function testGetDstTrue()
{
$this->assertTrue(Carbon::createFromDate(2012, 7, 1, 'America/Toronto')->dst);
}
public function testOffsetForTorontoWithDST()
{
$this->assertSame(-18000, Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->offset);
}
public function testOffsetForTorontoNoDST()
{
$this->assertSame(-14400, Carbon::createFromDate(2012, 6, 1, 'America/Toronto')->offset);
}
public function testOffsetForGMT()
{
$this->assertSame(0, Carbon::createFromDate(2012, 6, 1, 'GMT')->offset);
}
public function testOffsetHoursForTorontoWithDST()
{
$this->assertSame(-5, Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->offsetHours);
}
public function testOffsetHoursForTorontoNoDST()
{
$this->assertSame(-4, Carbon::createFromDate(2012, 6, 1, 'America/Toronto')->offsetHours);
}
public function testOffsetHoursForGMT()
{
$this->assertSame(0, Carbon::createFromDate(2012, 6, 1, 'GMT')->offsetHours);
}
public function testIsLeapYearTrue()
{
$this->assertTrue(Carbon::createFromDate(2012, 1, 1)->isLeapYear());
}
public function testIsLeapYearFalse()
{
$this->assertFalse(Carbon::createFromDate(2011, 1, 1)->isLeapYear());
}
public function testWeekOfYearFirstWeek()
{
$this->assertSame(52, Carbon::createFromDate(2012, 1, 1)->weekOfYear);
$this->assertSame(1, Carbon::createFromDate(2012, 1, 2)->weekOfYear);
}
public function testWeekOfYearLastWeek()
{
$this->assertSame(52, Carbon::createFromDate(2012, 12, 30)->weekOfYear);
$this->assertSame(1, Carbon::createFromDate(2012, 12, 31)->weekOfYear);
}
public function testGetTimezone()
{
$dt = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
$this->assertSame('America/Toronto', $dt->timezone->getName());
}
public function testGetTz()
{
$dt = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
$this->assertSame('America/Toronto', $dt->tz->getName());
}
public function testGetTimezoneName()
{
$dt = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
$this->assertSame('America/Toronto', $dt->timezoneName);
}
public function testGetTzName()
{
$dt = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
$this->assertSame('America/Toronto', $dt->tzName);
}
public function testInvalidGetter()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::now();
$bb = $d->doesNotExit;
}
}

View File

@@ -0,0 +1,27 @@
<?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\Carbon;
class InstanceTest extends TestFixture
{
public function testInstanceFromDateTime()
{
$dating = Carbon::instance(\DateTime::createFromFormat('Y-m-d H:i:s', '1975-05-21 22:32:11'));
$this->assertCarbon($dating, 1975, 5, 21, 22, 32, 11);
}
public function testInstanceFromDateTimeKeepsTimezoneName()
{
$dating = Carbon::instance(\DateTime::createFromFormat('Y-m-d H:i:s', '1975-05-21 22:32:11')->setTimezone(new \DateTimeZone('America/Vancouver')));
$this->assertSame('America/Vancouver', $dating->tzName);
}
}

97
vendor/nesbot/carbon/tests/IsTest.php vendored Normal file
View File

@@ -0,0 +1,97 @@
<?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\Carbon;
class IsTest extends TestFixture
{
public function testIsWeekdayTrue()
{
$this->assertTrue(Carbon::createFromDate(2012, 1, 2)->isWeekday());
}
public function testIsWeekdayFalse()
{
$this->assertFalse(Carbon::createFromDate(2012, 1, 1)->isWeekday());
}
public function testIsWeekendTrue()
{
$this->assertTrue(Carbon::createFromDate(2012, 1, 1)->isWeekend());
}
public function testIsWeekendFalse()
{
$this->assertFalse(Carbon::createFromDate(2012, 1, 2)->isWeekend());
}
public function testIsYesterdayTrue()
{
$this->assertTrue(Carbon::now()->subDay()->isYesterday());
}
public function testIsYesterdayFalseWithToday()
{
$this->assertFalse(Carbon::now()->endOfDay()->isYesterday());
}
public function testIsYesterdayFalseWith2Days()
{
$this->assertFalse(Carbon::now()->subDays(2)->startOfDay()->isYesterday());
}
public function testIsTodayTrue()
{
$this->assertTrue(Carbon::now()->isToday());
}
public function testIsTodayFalseWithYesterday()
{
$this->assertFalse(Carbon::now()->subDay()->endOfDay()->isToday());
}
public function testIsTodayFalseWithTomorrow()
{
$this->assertFalse(Carbon::now()->addDay()->startOfDay()->isToday());
}
public function testIsTodayWithTimezone()
{
$this->assertTrue(Carbon::now('Asia/Tokyo')->isToday());
}
public function testIsTomorrowTrue()
{
$this->assertTrue(Carbon::now()->addDay()->isTomorrow());
}
public function testIsTomorrowFalseWithToday()
{
$this->assertFalse(Carbon::now()->endOfDay()->isTomorrow());
}
public function testIsTomorrowFalseWith2Days()
{
$this->assertFalse(Carbon::now()->addDays(2)->startOfDay()->isTomorrow());
}
public function testIsFutureTrue()
{
$this->assertTrue(Carbon::now()->addSecond()->isFuture());
}
public function testIsFutureFalse()
{
$this->assertFalse(Carbon::now()->isFuture());
}
public function testIsFutureFalseInThePast()
{
$this->assertFalse(Carbon::now()->subSecond()->isFuture());
}
public function testIsPastTrue()
{
$this->assertTrue(Carbon::now()->subSecond()->isPast());
}
public function testIsPast()
{
$this->assertFalse(Carbon::now()->addSecond()->isPast());
}
}

View File

@@ -0,0 +1,27 @@
<?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\Carbon;
class IssetTest extends TestFixture
{
public function testIssetReturnFalseForUnknownProperty()
{
$this->assertFalse(isset(Carbon::create(1234, 5, 6, 7, 8, 9)->sdfsdfss));
}
public function testIssetReturnTrueForProperties()
{
$properties = array('year', 'month', 'day', 'hour', 'minute', 'second', 'dayOfWeek', 'dayOfYear', 'daysInMonth', 'timestamp', 'age', 'quarter', 'dst', 'offset', 'offsetHours', 'timezone', 'timezoneName', 'tz', 'tzName');
foreach ($properties as $property) {
$this->assertTrue(isset(Carbon::create(1234, 5, 6, 7, 8, 9)->$property));
}
}
}

View File

@@ -0,0 +1,65 @@
<?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\Carbon;
class NowAndOtherStaticHelpersTest extends TestFixture
{
public function testNow()
{
$dt = Carbon::now();
$this->assertSame(time(), $dt->timestamp);
}
public function testNowWithTimezone()
{
$dt = Carbon::now('Europe/London');
$this->assertSame(time(), $dt->timestamp);
$this->assertSame('Europe/London', $dt->tzName);
}
public function testToday()
{
$dt = Carbon::today();
$this->assertSame(date('Y-m-d 00:00:00'), $dt->toDateTimeString());
}
public function testTodayWithTimezone()
{
$dt = Carbon::today('Europe/London');
$dt2 = new \DateTime('now', new \DateTimeZone('Europe/London'));
$this->assertSame($dt2->format('Y-m-d 00:00:00'), $dt->toDateTimeString());
}
public function testTomorrow()
{
$dt = Carbon::tomorrow();
$dt2 = new \DateTime('tomorrow');
$this->assertSame($dt2->format('Y-m-d 00:00:00'), $dt->toDateTimeString());
}
public function testTomorrowWithTimezone()
{
$dt = Carbon::tomorrow('Europe/London');
$dt2 = new \DateTime('tomorrow', new \DateTimeZone('Europe/London'));
$this->assertSame($dt2->format('Y-m-d 00:00:00'), $dt->toDateTimeString());
}
public function testYesterday()
{
$dt = Carbon::yesterday();
$dt2 = new \DateTime('yesterday');
$this->assertSame($dt2->format('Y-m-d 00:00:00'), $dt->toDateTimeString());
}
public function testYesterdayWithTimezone()
{
$dt = Carbon::yesterday('Europe/London');
$dt2 = new \DateTime('yesterday', new \DateTimeZone('Europe/London'));
$this->assertSame($dt2->format('Y-m-d 00:00:00'), $dt->toDateTimeString());
}
}

View File

@@ -0,0 +1,187 @@
<?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\Carbon;
class SettersTest extends TestFixture
{
public function testYearSetter()
{
$d = Carbon::now();
$d->year = 1995;
$this->assertSame(1995, $d->year);
}
public function testMonthSetter()
{
$d = Carbon::now();
$d->month = 3;
$this->assertSame(3, $d->month);
}
public function testMonthSetterWithWrap()
{
$d = Carbon::now();
$d->month = 13;
$this->assertSame(1, $d->month);
}
public function testDaySetter()
{
$d = Carbon::now();
$d->day = 2;
$this->assertSame(2, $d->day);
}
public function testDaySetterWithWrap()
{
$d = Carbon::createFromDate(2012, 8, 5);
$d->day = 32;
$this->assertSame(1, $d->day);
}
public function testHourSetter()
{
$d = Carbon::now();
$d->hour = 2;
$this->assertSame(2, $d->hour);
}
public function testHourSetterWithWrap()
{
$d = Carbon::now();
$d->hour = 25;
$this->assertSame(1, $d->hour);
}
public function testMinuteSetter()
{
$d = Carbon::now();
$d->minute = 2;
$this->assertSame(2, $d->minute);
}
public function testMinuteSetterWithWrap()
{
$d = Carbon::now();
$d->minute = 65;
$this->assertSame(5, $d->minute);
}
public function testSecondSetter()
{
$d = Carbon::now();
$d->second = 2;
$this->assertSame(2, $d->second);
}
public function testSecondSetterWithWrap()
{
$d = Carbon::now();
$d->second = 65;
$this->assertSame(5, $d->second);
}
public function testTimestampSetter()
{
$d = Carbon::now();
$d->timestamp = 10;
$this->assertSame(10, $d->timestamp);
$d->setTimestamp(11);
$this->assertSame(11, $d->timestamp);
}
public function testSetTimezoneWithInvalidTimezone()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::now();
$d->setTimezone('sdf');
}
public function testTimezoneWithInvalidTimezone()
{
$d = Carbon::now();
try {
$d->timezone = 'sdf';
$this->fail('InvalidArgumentException was not been raised.');
} catch (InvalidArgumentException $expected) {}
try {
$d->timezone('sdf');
$this->fail('InvalidArgumentException was not been raised.');
} catch (InvalidArgumentException $expected) {}
}
public function testTzWithInvalidTimezone()
{
$d = Carbon::now();
try {
$d->tz = 'sdf';
$this->fail('InvalidArgumentException was not been raised.');
} catch (InvalidArgumentException $expected) {}
try {
$d->tz('sdf');
$this->fail('InvalidArgumentException was not been raised.');
} catch (InvalidArgumentException $expected) {}
}
public function testSetTimezoneUsingString()
{
$d = Carbon::now();
$d->setTimezone('America/Toronto');
$this->assertSame('America/Toronto', $d->tzName);
}
public function testTimezoneUsingString()
{
$d = Carbon::now();
$d->timezone = 'America/Toronto';
$this->assertSame('America/Toronto', $d->tzName);
$d->timezone('America/Vancouver');
$this->assertSame('America/Vancouver', $d->tzName);
}
public function testTzUsingString()
{
$d = Carbon::now();
$d->tz = 'America/Toronto';
$this->assertSame('America/Toronto', $d->tzName);
$d->tz('America/Vancouver');
$this->assertSame('America/Vancouver', $d->tzName);
}
public function testSetTimezoneUsingDateTimeZone()
{
$d = Carbon::now();
$d->setTimezone(new \DateTimeZone('America/Toronto'));
$this->assertSame('America/Toronto', $d->tzName);
}
public function testTimezoneUsingDateTimeZone()
{
$d = Carbon::now();
$d->timezone = new \DateTimeZone('America/Toronto');
$this->assertSame('America/Toronto', $d->tzName);
$d->timezone(new \DateTimeZone('America/Vancouver'));
$this->assertSame('America/Vancouver', $d->tzName);
}
public function testTzUsingDateTimeZone()
{
$d = Carbon::now();
$d->tz = new \DateTimeZone('America/Toronto');
$this->assertSame('America/Toronto', $d->tzName);
$d->tz(new \DateTimeZone('America/Vancouver'));
$this->assertSame('America/Vancouver', $d->tzName);
}
public function testInvalidSetter()
{
$this->setExpectedException('InvalidArgumentException');
$d = Carbon::now();
$d->doesNotExit = 'bb';
}
}

View File

@@ -0,0 +1,60 @@
<?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\Carbon;
class StartEndOfTest extends TestFixture
{
public function testStartOfDay()
{
$dt = Carbon::now();
$this->assertTrue($dt->startOfDay() instanceof Carbon);
$this->assertCarbon($dt, $dt->year, $dt->month, $dt->day, 0, 0, 0);
}
public function testEndOfDay()
{
$dt = Carbon::now();
$this->assertTrue($dt->endOfDay() instanceof Carbon);
$this->assertCarbon($dt, $dt->year, $dt->month, $dt->day, 23, 59, 59);
}
public function testStartOfMonthIsFluid()
{
$dt = Carbon::now();
$this->assertTrue($dt->startOfMonth() instanceof Carbon);
}
public function testStartOfMonthFromNow()
{
$dt = Carbon::now()->startOfMonth();
$this->assertCarbon($dt, $dt->year, $dt->month, 1, 0, 0, 0);
}
public function testStartOfMonthFromLastDay()
{
$dt = Carbon::create(2000, 1, 31, 2, 3, 4)->startOfMonth();
$this->assertCarbon($dt, 2000, 1, 1, 0, 0, 0);
}
public function testEndOfMonthIsFluid()
{
$dt = Carbon::now();
$this->assertTrue($dt->endOfMonth() instanceof Carbon);
}
public function testEndOfMonth()
{
$dt = Carbon::create(2000, 1, 1, 2, 3, 4)->endOfMonth();
$this->assertCarbon($dt, 2000, 1, 31, 23, 59, 59);
}
public function testEndOfMonthFromLastDay()
{
$dt = Carbon::create(2000, 1, 31, 2, 3, 4)->endOfMonth();
$this->assertCarbon($dt, 2000, 1, 31, 23, 59, 59);
}
}

View File

@@ -0,0 +1,124 @@
<?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\Carbon;
class StringsTest extends TestFixture
{
public function testToString()
{
$d = Carbon::now();
$this->assertSame(Carbon::now()->toDateTimeString(), ''.$d);
}
public function testToDateString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('1975-12-25', $d->toDateString());
}
public function testToFormattedDateString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Dec 25, 1975', $d->toFormattedDateString());
}
public function testToLocalizedFormattedDateString()
{
/****************
Working out a Travis issue on how to set a different locale
other than EN to test this.
$cache = setlocale(LC_TIME, 0);
setlocale(LC_TIME, 'German');
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Donnerstag 25 Dezember 1975', $d->formatLocalized('%A %d %B %Y'));
setlocale(LC_TIME, $cache);
*****************/
}
public function testToTimeString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('14:15:16', $d->toTimeString());
}
public function testToDateTimeString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('1975-12-25 14:15:16', $d->toDateTimeString());
}
public function testToDateTimeStringWithPaddedZeroes()
{
$d = Carbon::create(2000, 5, 2, 4, 3, 4);
$this->assertSame('2000-05-02 04:03:04', $d->toDateTimeString());
}
public function testToDayDateTimeString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Thu, Dec 25, 1975 2:15 PM', $d->toDayDateTimeString());
}
public function testToATOMString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('1975-12-25T14:15:16-05:00', $d->toATOMString());
}
public function testToCOOKIEString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Thursday, 25-Dec-75 14:15:16 EST', $d->toCOOKIEString());
}
public function testToISO8601String()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('1975-12-25T14:15:16-0500', $d->toISO8601String());
}
public function testToRC822String()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Thu, 25 Dec 75 14:15:16 -0500', $d->toRFC822String());
}
public function testToRFC850String()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Thursday, 25-Dec-75 14:15:16 EST', $d->toRFC850String());
}
public function testToRFC1036String()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Thu, 25 Dec 75 14:15:16 -0500', $d->toRFC1036String());
}
public function testToRFC1123String()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Thu, 25 Dec 1975 14:15:16 -0500', $d->toRFC1123String());
}
public function testToRFC2822String()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Thu, 25 Dec 1975 14:15:16 -0500', $d->toRFC2822String());
}
public function testToRFC3339String()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('1975-12-25T14:15:16-05:00', $d->toRFC3339String());
}
public function testToRSSString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('Thu, 25 Dec 1975 14:15:16 -0500', $d->toRSSString());
}
public function testToW3CString()
{
$d = Carbon::create(1975, 12, 25, 14, 15, 16);
$this->assertSame('1975-12-25T14:15:16-05:00', $d->toW3CString());
}
}

159
vendor/nesbot/carbon/tests/SubTest.php vendored Normal file
View File

@@ -0,0 +1,159 @@
<?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\Carbon;
class SubTest extends TestFixture
{
public function testSubYearsPositive()
{
$this->assertSame(1974, Carbon::createFromDate(1975)->subYears(1)->year);
}
public function testSubYearsZero()
{
$this->assertSame(1975, Carbon::createFromDate(1975)->subYears(0)->year);
}
public function testSubYearsNegative()
{
$this->assertSame(1976, Carbon::createFromDate(1975)->subYears(-1)->year);
}
public function testSubYear()
{
$this->assertSame(1974, Carbon::createFromDate(1975)->subYear()->year);
}
public function testSubMonthsPositive()
{
$this->assertSame(12, Carbon::createFromDate(1975, 1, 1)->subMonths(1)->month);
}
public function testSubMonthsZero()
{
$this->assertSame(1, Carbon::createFromDate(1975, 1, 1)->subMonths(0)->month);
}
public function testSubMonthsNegative()
{
$this->assertSame(2, Carbon::createFromDate(1975, 1, 1)->subMonths(-1)->month);
}
public function testSubMonth()
{
$this->assertSame(12, Carbon::createFromDate(1975, 1, 1)->subMonth()->month);
}
public function testSubDaysPositive()
{
$this->assertSame(30, Carbon::createFromDate(1975, 5, 1)->subDays(1)->day);
}
public function testSubDaysZero()
{
$this->assertSame(1, Carbon::createFromDate(1975, 5, 1)->subDays(0)->day);
}
public function testSubDaysNegative()
{
$this->assertSame(2, Carbon::createFromDate(1975, 5, 1)->subDays(-1)->day);
}
public function testSubDay()
{
$this->assertSame(30, Carbon::createFromDate(1975, 5, 1)->subDay()->day);
}
public function testSubWeekdaysPositive()
{
$this->assertSame(22, Carbon::createFromDate(2012, 1, 4)->subWeekdays(9)->day);
}
public function testSubWeekdaysZero()
{
$this->assertSame(4, Carbon::createFromDate(2012, 1, 4)->subWeekdays(0)->day);
}
public function testSubWeekdaysNegative()
{
$this->assertSame(13, Carbon::createFromDate(2012, 1, 31)->subWeekdays(-9)->day);
}
public function testSubWeekday()
{
$this->assertSame(6, Carbon::createFromDate(2012, 1, 9)->subWeekday()->day);
}
public function testSubWeeksPositive()
{
$this->assertSame(14, Carbon::createFromDate(1975, 5, 21)->subWeeks(1)->day);
}
public function testSubWeeksZero()
{
$this->assertSame(21, Carbon::createFromDate(1975, 5, 21)->subWeeks(0)->day);
}
public function testSubWeeksNegative()
{
$this->assertSame(28, Carbon::createFromDate(1975, 5, 21)->subWeeks(-1)->day);
}
public function testSubWeek()
{
$this->assertSame(14, Carbon::createFromDate(1975, 5, 21)->subWeek()->day);
}
public function testSubHoursPositive()
{
$this->assertSame(23, Carbon::createFromTime(0)->subHours(1)->hour);
}
public function testSubHoursZero()
{
$this->assertSame(0, Carbon::createFromTime(0)->subHours(0)->hour);
}
public function testSubHoursNegative()
{
$this->assertSame(1, Carbon::createFromTime(0)->subHours(-1)->hour);
}
public function testSubHour()
{
$this->assertSame(23, Carbon::createFromTime(0)->subHour()->hour);
}
public function testSubMinutesPositive()
{
$this->assertSame(59, Carbon::createFromTime(0, 0)->subMinutes(1)->minute);
}
public function testSubMinutesZero()
{
$this->assertSame(0, Carbon::createFromTime(0, 0)->subMinutes(0)->minute);
}
public function testSubMinutesNegative()
{
$this->assertSame(1, Carbon::createFromTime(0, 0)->subMinutes(-1)->minute);
}
public function testSubMinute()
{
$this->assertSame(59, Carbon::createFromTime(0, 0)->subMinute()->minute);
}
public function testSubSecondsPositive()
{
$this->assertSame(59, Carbon::createFromTime(0, 0, 0)->subSeconds(1)->second);
}
public function testSubSecondsZero()
{
$this->assertSame(0, Carbon::createFromTime(0, 0, 0)->subSeconds(0)->second);
}
public function testSubSecondsNegative()
{
$this->assertSame(1, Carbon::createFromTime(0, 0, 0)->subSeconds(-1)->second);
}
public function testSubSecond()
{
$this->assertSame(59, Carbon::createFromTime(0, 0, 0)->subSecond()->second);
}
}

View File

@@ -0,0 +1,51 @@
<?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.
*/
require __DIR__.'/../vendor/autoload.php';
use Carbon\Carbon;
class TestFixture extends \PHPUnit_Framework_TestCase
{
private $saveTz;
protected function setUp()
{
//save current timezone
$this->saveTz = date_default_timezone_get();
date_default_timezone_set('America/Toronto');
}
protected function tearDown()
{
date_default_timezone_set($this->saveTz);
}
protected function assertCarbon(Carbon $d, $year, $month, $day, $hour = null, $minute = null, $second = null)
{
$this->assertSame($year, $d->year, 'Carbon->year');
$this->assertSame($month, $d->month, 'Carbon->month');
$this->assertSame($day, $d->day, 'Carbon->day');
if ($hour !== null) {
$this->assertSame($hour, $d->hour, 'Carbon->hour');
}
if ($minute !== null) {
$this->assertSame($minute, $d->minute, 'Carbon->minute');
}
if ($second !== null) {
$this->assertSame($second, $d->second, 'Carbon->second');
}
}
}

View File

@@ -0,0 +1,61 @@
<?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\Carbon;
class TestingAidsTest extends TestFixture
{
public function testTestingAidsWithTestNowNotSet()
{
Carbon::setTestNow();
$this->assertFalse(Carbon::hasTestNow());
$this->assertNull(Carbon::getTestNow());
}
public function testTestingAidsWithTestNowSet()
{
$notNow = Carbon::yesterday();
Carbon::setTestNow($notNow);
$this->assertTrue(Carbon::hasTestNow());
$this->assertSame($notNow, Carbon::getTestNow());
}
public function testConstructorWithTestValueSet()
{
$notNow = Carbon::yesterday();
Carbon::setTestNow($notNow);
$this->assertEquals($notNow, new Carbon());
$this->assertEquals($notNow, new Carbon(null));
$this->assertEquals($notNow, new Carbon(''));
$this->assertEquals($notNow, new Carbon('now'));
}
public function testNowWithTestValueSet()
{
$notNow = Carbon::yesterday();
Carbon::setTestNow($notNow);
$this->assertEquals($notNow, Carbon::now());
}
public function testParseWithTestValueSet()
{
$notNow = Carbon::yesterday();
Carbon::setTestNow($notNow);
$this->assertEquals($notNow, Carbon::parse());
$this->assertEquals($notNow, Carbon::parse(null));
$this->assertEquals($notNow, Carbon::parse(''));
$this->assertEquals($notNow, Carbon::parse('now'));
}
}