From b2fc6a7deda624519758f8521ff0666ca85a5b12 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Fri, 24 Apr 2026 13:16:02 +0300 Subject: [PATCH] test fake user repo find by email --- tests/Unit/User/FakeUserRepositoryTest.php | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 tests/Unit/User/FakeUserRepositoryTest.php diff --git a/tests/Unit/User/FakeUserRepositoryTest.php b/tests/Unit/User/FakeUserRepositoryTest.php new file mode 100644 index 0000000..20d8b73 --- /dev/null +++ b/tests/Unit/User/FakeUserRepositoryTest.php @@ -0,0 +1,50 @@ +create(new CreateUserDto( + email: new EmailAddress('test@test.com'), + )); + + $user = $userRepo->findByEmail(new EmailAddress('test@test.com')); + + $this->assertInstanceOf(User::class, $user); + $this->assertEquals('test@test.com', (string) $user->getEmail()); + } + + public function test_find_by_email_returns_null_when_not_found(): void + { + $userRepo = new FakeUserRepository(); + + $user = $userRepo->findByEmail( + new EmailAddress('missing@test.com') + ); + + $this->assertNull($user); + } + + public function test_find_by_email_returns_fresh_instance(): void + { + $userRepo = new FakeUserRepository(); + $created = $userRepo->create(new CreateUserDto( + email: new EmailAddress('test@test.com'), + )); + + $fetched = $userRepo->findByEmail( + new EmailAddress('test@test.com') + ); + + $this->assertNotSame($created, $fetched); + } +}