Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
23 / 23
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3// ╔════════════════════════════════════════════════════════════╗
4// ║ MIT Licence (#Expat) - https://opensource.org/licenses/MIT ║
5// ║ Copyright 2026 Frederic Poeydomenge <dyno@phexium.com>     ║
6// ╚════════════════════════════════════════════════════════════╝
7
8declare(strict_types=1);
9
10pest()->group('unit');
11
12use AppDemo\User\Domain\UserGroup;
13use Tests\AppDemo\Fixture\UserMother;
14
15describe('Creation', function (): void {
16    it('exposes its properties', function (): void {
17        $user = UserMother::create(id: 123, email: 'user@example.com', hashedPassword: '$plain$hashedvalue', group: UserGroup::User);
18
19        expect($user->getId()->getValue())->toBe(123)
20            ->and($user->getEmail()->getValue())->toBe('user@example.com')
21            ->and($user->getHashedPassword()->getValue())->toBe('$plain$hashedvalue')
22            ->and($user->getGroup())->toBe(UserGroup::User)
23        ;
24    });
25});
26
27describe('Equality', function (): void {
28    it('considers two users with the same ID as equal', function (): void {
29        $user1 = UserMother::user(123);
30        $user2 = UserMother::user(123);
31
32        expect($user1->equals($user2))->toBeTrue();
33    });
34
35    it('considers two users with different IDs as not equal', function (): void {
36        $user1 = UserMother::user(123);
37        $user2 = UserMother::user(234);
38
39        expect($user1->equals($user2))->toBeFalse();
40    });
41});