assertArrayHasKey(FOSUserEvents::RESETTING_SEND_EMAIL_INITIALIZE, $events); $methodName = $events[FOSUserEvents::RESETTING_SEND_EMAIL_INITIALIZE][0]; $this->assertTrue(method_exists(ResetPasswordSubscriber::class, $methodName)); } public function testUnknownUserTypeIsIgnored() { $user = new TestUserEntity(); $user->setUsername('foo@bar'); $request = $this->createMock(Request::class); $event = new GetResponseNullableUserEvent($user, $request); $sut = new ResetPasswordSubscriber(); $sut->onInitializeResetPassword($event); self::assertNull($event->getResponse()); } public function testInternalAuthTypeIsIgnored() { $user = new User(); $user->setUsername('foo@bar'); $request = $this->createMock(Request::class); $event = new GetResponseNullableUserEvent($user, $request); $sut = new ResetPasswordSubscriber(); $sut->onInitializeResetPassword($event); self::assertNull($event->getResponse()); } /** * @dataProvider getAuthTypeData */ public function testNonInternalAuthTypeThrowsAccessDeniedException(string $authType) { $this->expectException(AccessDeniedHttpException::class); $this->expectExceptionMessage(sprintf('The user "foo@bar" tried to reset the password, but it is registered as "%s" auth-type.', $authType)); $user = new User(); $user->setUsername('foo@bar'); $user->setAuth($authType); $request = $this->createMock(Request::class); $event = new GetResponseNullableUserEvent($user, $request); $sut = new ResetPasswordSubscriber(); $sut->onInitializeResetPassword($event); } public function getAuthTypeData() { return [ [User::AUTH_SAML], [User::AUTH_LDAP], ]; } }