1515use Symfony \Component \HttpFoundation \Request ;
1616use Symfony \Component \PasswordHasher \Hasher \PasswordHasherFactoryInterface ;
1717use Symfony \Component \PasswordHasher \PasswordHasherInterface ;
18- use Symfony \Component \Security \Core \Authentication \Token \TokenInterface ;
1918use Symfony \Component \Security \Core \User \InMemoryUser ;
2019use Symfony \Component \Security \Core \User \PasswordAuthenticatedUserInterface ;
2120use Symfony \Component \Security \Core \User \PasswordUpgraderInterface ;
2221use Symfony \Component \Security \Core \User \UserInterface ;
2322use Symfony \Component \Security \Core \User \UserProviderInterface ;
24- use Symfony \Component \Security \Http \Authenticator \AuthenticatorInterface ;
2523use Symfony \Component \Security \Http \Authenticator \Passport \Badge \PasswordUpgradeBadge ;
2624use Symfony \Component \Security \Http \Authenticator \Passport \Badge \UserBadge ;
2725use Symfony \Component \Security \Http \Authenticator \Passport \PassportInterface ;
2826use Symfony \Component \Security \Http \Authenticator \Passport \SelfValidatingPassport ;
2927use Symfony \Component \Security \Http \Authenticator \Passport \UserPassportInterface ;
3028use Symfony \Component \Security \Http \Event \LoginSuccessEvent ;
3129use Symfony \Component \Security \Http \EventListener \PasswordMigratingListener ;
30+ use Symfony \Component \Security \Http \Tests \Fixtures \DummyAuthenticator ;
31+ use Symfony \Component \Security \Http \Tests \Fixtures \DummyToken ;
3232
3333class PasswordMigratingListenerTest extends TestCase
3434{
@@ -58,13 +58,13 @@ public function testUnsupportedEvents($event)
5858 $ this ->listener ->onLoginSuccess ($ event );
5959 }
6060
61- public function provideUnsupportedEvents ()
61+ public static function provideUnsupportedEvents ()
6262 {
6363 // no password upgrade badge
64- yield [$ this -> createEvent (new SelfValidatingPassport (new UserBadge ('test ' , function () { return $ this ->createMock (UserInterface::class); })))];
64+ yield [self :: createEvent (new SelfValidatingPassport (new UserBadge ('test ' , function () { return $ this ->createMock (UserInterface::class); })))];
6565
6666 // blank password
67- yield [$ this -> createEvent (new SelfValidatingPassport (new UserBadge ('test ' , function () { return $ this -> createMock (TestPasswordAuthenticatedUser::class ); }), [new PasswordUpgradeBadge ('' , $ this -> createPasswordUpgrader ())]))];
67+ yield [self :: createEvent (new SelfValidatingPassport (new UserBadge ('test ' , function () { return new DummyTestPasswordAuthenticatedUser ( ); }), [new PasswordUpgradeBadge ('' , self :: createPasswordUpgrader ())]))];
6868 }
6969
7070 /**
@@ -96,7 +96,7 @@ public function testUnsupportedPassport()
9696
9797 public function testUpgradeWithUpgrader ()
9898 {
99- $ passwordUpgrader = $ this ->createPasswordUpgrader ( );
99+ $ passwordUpgrader = $ this ->getMockForAbstractClass (TestMigratingUserProvider::class );
100100 $ passwordUpgrader ->expects ($ this ->once ())
101101 ->method ('upgradePassword ' )
102102 ->with ($ this ->user , 'new-hash ' )
@@ -133,14 +133,14 @@ public function testUserWithoutPassword()
133133 $ this ->listener ->onLoginSuccess ($ event );
134134 }
135135
136- private function createPasswordUpgrader ()
136+ private static function createPasswordUpgrader ()
137137 {
138- return $ this -> getMockForAbstractClass (TestMigratingUserProvider::class );
138+ return new DummyTestMigratingUserProvider ( );
139139 }
140140
141- private function createEvent (PassportInterface $ passport )
141+ private static function createEvent (PassportInterface $ passport )
142142 {
143- return new LoginSuccessEvent ($ this -> createMock (AuthenticatorInterface::class ), $ passport , $ this -> createMock (TokenInterface::class ), new Request (), null , 'main ' );
143+ return new LoginSuccessEvent (new DummyAuthenticator ( ), $ passport , new DummyToken ( ), new Request (), null , 'main ' );
144144 }
145145}
146146
@@ -151,9 +151,62 @@ abstract public function upgradePassword(PasswordAuthenticatedUserInterface $use
151151 abstract public function loadUserByIdentifier (string $ identifier ): UserInterface ;
152152}
153153
154+ class DummyTestMigratingUserProvider extends TestMigratingUserProvider
155+ {
156+ public function upgradePassword (PasswordAuthenticatedUserInterface $ user , string $ newHashedPassword ): void
157+ {
158+ }
159+
160+ public function loadUserByIdentifier (string $ identifier ): UserInterface
161+ {
162+ }
163+
164+ public function refreshUser (UserInterface $ user )
165+ {
166+ }
167+
168+ public function supportsClass (string $ class )
169+ {
170+ }
171+
172+ public function loadUserByUsername (string $ username )
173+ {
174+ }
175+ }
176+
154177abstract class TestPasswordAuthenticatedUser implements UserInterface, PasswordAuthenticatedUserInterface
155178{
156179 abstract public function getPassword (): ?string ;
157180
158181 abstract public function getSalt (): ?string ;
159182}
183+
184+ class DummyTestPasswordAuthenticatedUser extends TestPasswordAuthenticatedUser
185+ {
186+ public function getPassword (): ?string
187+ {
188+ return null ;
189+ }
190+
191+ public function getSalt (): ?string
192+ {
193+ return null ;
194+ }
195+
196+ public function getRoles (): array
197+ {
198+ return [];
199+ }
200+
201+ public function eraseCredentials ()
202+ {
203+ }
204+
205+ public function getUsername ()
206+ {
207+ }
208+
209+ public function getUserIdentifier (): string
210+ {
211+ }
212+ }
0 commit comments