createMock(User::class); $user->method('has_access') ->with(AccessLevelEnum::CONTENT_MANAGER) ->willReturn(true); $this->userRepository->expects(static::once()) ->method('findByEmail') ->with('admin@example.com') ->willReturn($user); $this->passwordGenerator->expects(static::never()) ->method('generate'); self::assertFalse($this->subject->send('admin@example.com', '127.0.0.1')); } public function testSendReturnsFalseWhenUserNotFound(): void { $this->userRepository->expects(static::once()) ->method('findByEmail') ->with('nobody@example.com') ->willReturn(null); $this->passwordGenerator->expects(static::never()) ->method('generate'); self::assertFalse($this->subject->send('nobody@example.com', '127.0.0.1')); } protected function setUp(): void { $this->passwordGenerator = $this->createMock(PasswordGeneratorInterface::class); $this->userRepository = $this->createMock(UserRepositoryInterface::class); $this->subject = new NewPasswordSender( $this->passwordGenerator, $this->userRepository, ); } }