->
with($this->
identicalTo($originalUser)) ->
willReturn($refreshedUser);
$originalToken =
new UsernamePasswordToken($originalUser, 'key'
);
$this->tokenStorage->
setToken(new SwitchUserToken(new InMemoryUser('username', '',
['ROLE_USER'
]), 'key',
['ROLE_USER'
],
$originalToken));
$this->request->query->
set('_switch_user', SwitchUserListener::EXIT_VALUE
);
$dispatcher =
$this->
createMock(EventDispatcherInterface::
class);
$dispatcher ->
expects($this->
once()) ->
method('dispatch'
) ->
with( $this->
callback(fn (SwitchUserEvent
$event) =>
$event->
getTargetUser() ===
$refreshedUser),
SecurityEvents::SWITCH_USER
) ;
$listener =
new SwitchUserListener($this->tokenStorage,
$userProvider,
$this->userChecker, 'provider123',
$this->accessDecisionManager, null, '_switch_user', 'ROLE_ALLOWED_TO_SWITCH',
$dispatcher);
$listener($this->event
);
} public function testSwitchUserIsDisallowed() { $this->
expectException(AccessDeniedException::
class);