getCurrentUserMock($user, $timezone); } protected function getCurrentUserMock(User $user, ?string $timezone = null) { if (null !== $timezone) { $pref = new UserPreference(); $pref->setName('timezone'); $pref->setValue($timezone); $user->addPreference($pref); } $mock = $this->getMockBuilder(UserRepository::class)->onlyMethods(['getUserById'])->disableOriginalConstructor()->getMock(); $mock->expects(TestCase::atMost(1))->method('getUserById')->willReturn($user); /** @var UserRepository $repository */ $repository = $mock; $mock = $this->getMockBuilder(UsernamePasswordToken::class)->onlyMethods(['getUser'])->disableOriginalConstructor()->getMock(); $mock->method('getUser')->willReturn($user); /** @var UsernamePasswordToken $token */ $token = $mock; $tokenStorage = new TokenStorage(); $tokenStorage->setToken($token); return new CurrentUser($tokenStorage, $repository); } }