1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
<?php
declare(strict_types=1);
/**
* 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.
*/
namespace Tests\CarbonImmutable;
use Carbon\CarbonImmutable as Carbon;
use DateTime;
use DateTimeImmutable;
use stdClass;
use Tests\AbstractTestCase;
class ObjectsTest extends AbstractTestCase
{
public function testToObject()
{
$dt = Carbon::now();
$dtToObject = $dt->toObject();
$this->assertInstanceOf(stdClass::class, $dtToObject);
$this->assertObjectHasAttribute('year', $dtToObject);
$this->assertSame($dt->year, $dtToObject->year);
$this->assertObjectHasAttribute('month', $dtToObject);
$this->assertSame($dt->month, $dtToObject->month);
$this->assertObjectHasAttribute('day', $dtToObject);
$this->assertSame($dt->day, $dtToObject->day);
$this->assertObjectHasAttribute('dayOfWeek', $dtToObject);
$this->assertSame($dt->dayOfWeek, $dtToObject->dayOfWeek);
$this->assertObjectHasAttribute('dayOfYear', $dtToObject);
$this->assertSame($dt->dayOfYear, $dtToObject->dayOfYear);
$this->assertObjectHasAttribute('hour', $dtToObject);
$this->assertSame($dt->hour, $dtToObject->hour);
$this->assertObjectHasAttribute('minute', $dtToObject);
$this->assertSame($dt->minute, $dtToObject->minute);
$this->assertObjectHasAttribute('second', $dtToObject);
$this->assertSame($dt->second, $dtToObject->second);
$this->assertObjectHasAttribute('micro', $dtToObject);
$this->assertSame($dt->micro, $dtToObject->micro);
$this->assertObjectHasAttribute('timestamp', $dtToObject);
$this->assertSame($dt->timestamp, $dtToObject->timestamp);
$this->assertObjectHasAttribute('timezone', $dtToObject);
$this->assertEquals($dt->timezone, $dtToObject->timezone);
$this->assertObjectHasAttribute('formatted', $dtToObject);
$this->assertSame($dt->format(Carbon::DEFAULT_TO_STRING_FORMAT), $dtToObject->formatted);
}
public function testToDateTime()
{
$dt = Carbon::create(2000, 3, 26);
$date = $dt->toDateTime();
$this->assertInstanceOf(DateTime::class, $date);
$this->assertSame('2000-03-26', $date->format('Y-m-d'));
$date = $dt->toDate();
$this->assertInstanceOf(DateTime::class, $date);
$this->assertSame('2000-03-26', $date->format('Y-m-d'));
}
public function testToDateTimeImmutable()
{
$dt = Carbon::create(2000, 3, 26);
$date = $dt->toDateTimeImmutable();
$this->assertInstanceOf(DateTimeImmutable::class, $date);
$this->assertSame('2000-03-26', $date->format('Y-m-d'));
}
}
|