TIDE/backend/tests/Unit/Email/EmailConfirmationToken/EmailConfirmationTokenTest.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());
}
}