1
|
|
|
<?php |
2
|
|
|
declare(strict_types=1); |
3
|
|
|
/** |
4
|
|
|
* Created by PhpStorm. |
5
|
|
|
* User: benedikt |
6
|
|
|
* Date: 10/1/17 |
7
|
|
|
* Time: 11:03 AM |
8
|
|
|
*/ |
9
|
|
|
|
10
|
|
|
namespace Tfboe\FmLib\Tests\Unit\Helpers; |
11
|
|
|
|
12
|
|
|
use DateInterval; |
13
|
|
|
use DateTime; |
14
|
|
|
use DateTimeZone; |
15
|
|
|
use Exception; |
16
|
|
|
use Tfboe\FmLib\Helpers\DateTimeHelper; |
17
|
|
|
use Tfboe\FmLib\Tests\Helpers\UnitTestCase; |
18
|
|
|
|
19
|
|
|
/** |
20
|
|
|
* Class BasicEnumTest |
21
|
|
|
* @package Tfboe\FmLib\TestHelpers |
22
|
|
|
*/ |
23
|
|
|
class DateTimeTest extends UnitTestCase |
24
|
|
|
{ |
25
|
|
|
//<editor-fold desc="Public Methods"> |
26
|
|
|
|
27
|
|
|
/** |
28
|
|
|
* @covers \Tfboe\FmLib\Helpers\DateTimeHelper::eq |
29
|
|
|
* @throws Exception |
30
|
|
|
*/ |
31
|
|
|
public function testDateTimeEq() |
32
|
|
|
{ |
33
|
|
|
$d1 = new DateTime("2019-01-01 00:00:00", new DateTimeZone("+00:00")); |
34
|
|
|
$d2 = new DateTime("2019-01-01 00:00:00", new DateTimeZone("+00:00")); |
35
|
|
|
$d3 = new DateTime("2019-01-01 00:00:01", new DateTimeZone("+00:00")); |
36
|
|
|
$d4 = new DateTime("2019-01-01 00:00:00", new DateTimeZone("+00:30")); |
37
|
|
|
|
38
|
|
|
self::assertTrue(DateTimeHelper::eq($d1, $d1)); |
39
|
|
|
self::assertTrue(DateTimeHelper::eq($d1, $d2)); |
40
|
|
|
self::assertEquals($d1, $d2); |
41
|
|
|
self::assertFalse($d1 === $d2); |
42
|
|
|
self::assertFalse(DateTimeHelper::eq($d1, $d3)); |
43
|
|
|
self::assertFalse(DateTimeHelper::eq($d1, $d4)); |
44
|
|
|
|
45
|
|
|
|
46
|
|
|
$d2->setTimezone(new DateTimeZone("+00:30")); |
47
|
|
|
self::assertFalse(DateTimeHelper::eq($d1, $d2)); |
48
|
|
|
self::assertFalse(DateTimeHelper::eq($d4, $d2)); |
49
|
|
|
} |
50
|
|
|
|
51
|
|
|
/** |
52
|
|
|
* @covers \Tfboe\FmLib\Helpers\DateTimeHelper::future |
53
|
|
|
* @throws Exception |
54
|
|
|
*/ |
55
|
|
|
public function testFuture() |
56
|
|
|
{ |
57
|
|
|
$d1 = new DateTime(); |
58
|
|
|
$d1->add(new DateInterval('P50Y')); //50 years should be enough future for a while ;) |
59
|
|
|
self::assertGreaterThan($d1, DateTimeHelper::future()); |
60
|
|
|
} |
61
|
|
|
//</editor-fold desc="Public Methods"> |
62
|
|
|
} |