40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\Email\EmailConfirmationToken;
|
|
|
|
use App\Email\EmailConfirmationToken\EmailConfirmationToken;
|
|
use App\Shared\ValueObject\EmailAddress;
|
|
use App\User\User;
|
|
use DateTimeImmutable;
|
|
use DateTimeZone;
|
|
use Tests\TestCase;
|
|
|
|
class EmailConfirmationTokenTest extends TestCase
|
|
{
|
|
public function test_token_exposes_all_properties(): void
|
|
{
|
|
$availableTo = new DateTimeImmutable(
|
|
'2026-05-08T12:00:00',
|
|
new DateTimeZone('UTC'),
|
|
);
|
|
$user = new User(
|
|
id: 7,
|
|
email: new EmailAddress('alice@example.com'),
|
|
displayName: 'alice',
|
|
passwordHash: '',
|
|
isAdmin: false,
|
|
emailConfirmedAt: null,
|
|
);
|
|
$token = new EmailConfirmationToken(
|
|
id: 4,
|
|
user: $user,
|
|
availableTo: $availableTo,
|
|
token: 'abc123',
|
|
);
|
|
|
|
$this->assertSame(4, $token->getId());
|
|
$this->assertSame($user, $token->getUser());
|
|
$this->assertSame($availableTo, $token->getAvailableTo());
|
|
$this->assertSame('abc123', $token->getToken());
|
|
}
|
|
}
|