|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / vendor / magento / framework / Stdlib / Test / Unit / DateTime / |
Filename | /home/dev2.destoffenstraat.com/vendor/magento/framework/Stdlib/Test/Unit/DateTime/DateTimeTest.php |
Size | 3.19 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 07-Jan-2021 21:08 |
Last accessed | 23-Aug-2025 03:56 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Framework\Stdlib\Test\Unit\DateTime;
use DateTimeImmutable;
use DateTimeInterface;
use Exception;
use Magento\Framework\Stdlib\DateTime\DateTime;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
/**
* Tests for @see DateTime
*/
class DateTimeTest extends TestCase
{
/**
* @var string
*/
private $testDate = '2015-04-02 21:03:00';
/**
* @param int|string|DateTimeInterface $input
* @throws Exception
*
* @dataProvider dateTimeInputDataProvider
*/
public function testGmtTimestamp($input)
{
/** @var TimezoneInterface|MockObject $timezone */
$timezone = $this->getMockBuilder(TimezoneInterface::class)
->getMock();
$timezone->method('date')->willReturn(new \DateTime($this->testDate));
$expected = gmdate('U', strtotime($this->testDate));
$this->assertEquals($expected, (new DateTime($timezone))->gmtTimestamp($input));
}
/**
* @param int|string|DateTimeInterface $input
* @throws Exception
*
* @dataProvider dateTimeInputDataProvider
*/
public function testTimestamp($input)
{
/** @var TimezoneInterface|MockObject $timezone */
$timezone = $this->getMockBuilder(TimezoneInterface::class)
->getMock();
$timezone->method('date')->willReturn(new \DateTime($this->testDate));
$expected = gmdate('U', strtotime($this->testDate));
$this->assertEquals($expected, (new DateTime($timezone))->timestamp($input));
}
public function testGtmOffset()
{
/** @var TimezoneInterface|MockObject $timezone */
$timezone = $this->getMockBuilder(TimezoneInterface::class)
->getMock();
$timezone->method('getConfigTimezone')->willReturn('Europe/Amsterdam');
/** @var DateTime|MockObject $dateTime */
$dateTime = $this->getMockBuilder(DateTime::class)
->setConstructorArgs([$timezone])
->setMethods(null)
->getMock();
$this->assertEquals(
$this->getExpectedGtmOffset($timezone->getConfigTimezone()),
$dateTime->getGmtOffset()
);
}
/**
* Returns expected offset according to Daylight Saving Time in timezone
*
* @param string $timezoneIdentifier
* @return int
*/
private function getExpectedGtmOffset(string $timezoneIdentifier): int
{
$timeZoneToReturn = date_default_timezone_get();
date_default_timezone_set($timezoneIdentifier);
$expectedOffset = (date('I', time()) + 1) * 3600;
date_default_timezone_set($timeZoneToReturn);
return (int) $expectedOffset;
}
/**
* Data provider
*
* @return array
* @throws Exception
*/
public function dateTimeInputDataProvider()
{
return [
'string' => [$this->testDate],
'int' => [strtotime($this->testDate)],
DateTimeInterface::class => [new DateTimeImmutable($this->testDate)],
];
}
}
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\Framework\Stdlib\Test\Unit\DateTime;
use DateTimeImmutable;
use DateTimeInterface;
use Exception;
use Magento\Framework\Stdlib\DateTime\DateTime;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
/**
* Tests for @see DateTime
*/
class DateTimeTest extends TestCase
{
/**
* @var string
*/
private $testDate = '2015-04-02 21:03:00';
/**
* @param int|string|DateTimeInterface $input
* @throws Exception
*
* @dataProvider dateTimeInputDataProvider
*/
public function testGmtTimestamp($input)
{
/** @var TimezoneInterface|MockObject $timezone */
$timezone = $this->getMockBuilder(TimezoneInterface::class)
->getMock();
$timezone->method('date')->willReturn(new \DateTime($this->testDate));
$expected = gmdate('U', strtotime($this->testDate));
$this->assertEquals($expected, (new DateTime($timezone))->gmtTimestamp($input));
}
/**
* @param int|string|DateTimeInterface $input
* @throws Exception
*
* @dataProvider dateTimeInputDataProvider
*/
public function testTimestamp($input)
{
/** @var TimezoneInterface|MockObject $timezone */
$timezone = $this->getMockBuilder(TimezoneInterface::class)
->getMock();
$timezone->method('date')->willReturn(new \DateTime($this->testDate));
$expected = gmdate('U', strtotime($this->testDate));
$this->assertEquals($expected, (new DateTime($timezone))->timestamp($input));
}
public function testGtmOffset()
{
/** @var TimezoneInterface|MockObject $timezone */
$timezone = $this->getMockBuilder(TimezoneInterface::class)
->getMock();
$timezone->method('getConfigTimezone')->willReturn('Europe/Amsterdam');
/** @var DateTime|MockObject $dateTime */
$dateTime = $this->getMockBuilder(DateTime::class)
->setConstructorArgs([$timezone])
->setMethods(null)
->getMock();
$this->assertEquals(
$this->getExpectedGtmOffset($timezone->getConfigTimezone()),
$dateTime->getGmtOffset()
);
}
/**
* Returns expected offset according to Daylight Saving Time in timezone
*
* @param string $timezoneIdentifier
* @return int
*/
private function getExpectedGtmOffset(string $timezoneIdentifier): int
{
$timeZoneToReturn = date_default_timezone_get();
date_default_timezone_set($timezoneIdentifier);
$expectedOffset = (date('I', time()) + 1) * 3600;
date_default_timezone_set($timeZoneToReturn);
return (int) $expectedOffset;
}
/**
* Data provider
*
* @return array
* @throws Exception
*/
public function dateTimeInputDataProvider()
{
return [
'string' => [$this->testDate],
'int' => [strtotime($this->testDate)],
DateTimeInterface::class => [new DateTimeImmutable($this->testDate)],
];
}
}