-
Notifications
You must be signed in to change notification settings - Fork 10.7k
/
WormholeTest.php
49 lines (37 loc) · 1.44 KB
/
WormholeTest.php
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
<?php
namespace Illuminate\Tests\Foundation\Testing;
use Carbon\CarbonImmutable;
use Illuminate\Foundation\Testing\Wormhole;
use Illuminate\Support\Facades\Date;
use PHPUnit\Framework\TestCase;
class WormholeTest extends TestCase
{
public function testCanTravelBackToPresent()
{
// Preserve the timelines we want to compare the reality with..
$present = now();
$future = now()->addDays(10);
// Travel in time..
(new Wormhole(10))->days();
// Assert we are now in the future..
$this->assertEquals($future->format('Y-m-d'), now()->format('Y-m-d'));
// Assert we can go back to the present..
$this->assertEquals($present->format('Y-m-d'), Wormhole::back()->format('Y-m-d'));
}
public function testCarbonImmutableCompatibility()
{
// Tell the Date Factory to use CarbonImmutable...
Date::use(CarbonImmutable::class);
// Record what time it is in 10 days...
$present = now();
$future = $present->addDays(10);
// Travel in time...
(new Wormhole(10))->days();
// Assert that the present time didn't get mutated...
$this->assertNotEquals($future->format('Y-m-d'), $present->format('Y-m-d'));
// Assert the time travel was successful...
$this->assertEquals($future->format('Y-m-d'), now()->format('Y-m-d'));
// Restore the default Date Factory...
Date::useDefault();
}
}