Skip to content

Commit f1cbfc1

Browse files
committed
Add time helper and assertion
1 parent 39da10d commit f1cbfc1

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/Traits/AdditionalAssertions.php

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
namespace JMac\Testing\Traits;
44

5+
use Carbon\CarbonImmutable;
6+
use Carbon\CarbonInterface;
7+
use Illuminate\Support\Carbon;
58
use Illuminate\Support\Facades\Route;
69
use PHPUnit\Framework\Assert as PHPUnitAssert;
710
use Symfony\Component\HttpFoundation\Request as SymfonyRequest;
@@ -109,7 +112,14 @@ public function assertMiddlewareGroupUsesMiddleware(string $middlewareGroup, arr
109112

110113
$missingMiddlware = array_diff($middlewares, $middlewareGroups[$middlewareGroup]);
111114

112-
PHPUnitAssert::assertTrue(count($missingMiddlware) === 0, "Middlware Group `$middlewareGroup` does not use expected `".implode(', ', $missingMiddlware).'` middleware(s)');
115+
PHPUnitAssert::assertTrue(count($missingMiddlware) === 0, "Middleware Group `$middlewareGroup` does not use expected `".implode(', ', $missingMiddlware).'` middleware(s)');
116+
}
117+
118+
public function assertNow(CarbonInterface $datetime, ?CarbonInterface $now = null): void
119+
{
120+
$now ??= Carbon::now();
121+
122+
PHPUnitAssert::assertTrue($datetime->equalTo($now), 'Failed asserting that the current time ['.$datetime->toDateTimeString().'] is equal to now ['.$now->toDateTimeString().']');
113123
}
114124

115125
public function assertRouteUsesFormRequest(string $routeName, string $formRequest): void
@@ -191,6 +201,21 @@ public function createFormRequest(string $form_request, array $data = [])
191201
return $form_request::createFromBase(SymfonyRequest::create('', 'POST', $data));
192202
}
193203

204+
public function freezeNow($milliseconds = false): CarbonImmutable
205+
{
206+
$now = Carbon::now();
207+
208+
if (! $milliseconds) {
209+
$now = $now->startOfSecond();
210+
}
211+
212+
$now = $now->toImmutable();
213+
214+
Carbon::setTestNow($now);
215+
216+
return $now;
217+
}
218+
194219
private function expandRules($rule)
195220
{
196221
return is_string($rule) ? explode('|', $rule) : $rule;

0 commit comments

Comments
 (0)