create(new CreateUserDto( email: new EmailAddress('test@test.com'), passwordHash: '', )); $user = $userRepo->findByEmail(new EmailAddress('test@test.com')); $this->assertInstanceOf(User::class, $user); $this->assertEquals('test@test.com', $user->getEmail()->value()); } 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'), passwordHash: '', )); $fetched = $userRepo->findByEmail( new EmailAddress('test@test.com') ); $this->assertNotSame($created, $fetched); } }