18
18
use CoopTilleuls \ForgotPasswordBundle \Manager \PasswordTokenManager ;
19
19
use CoopTilleuls \ForgotPasswordBundle \Provider \ProviderChainInterface ;
20
20
use CoopTilleuls \ForgotPasswordBundle \Provider \ProviderInterface ;
21
+ use CoopTilleuls \ForgotPasswordBundle \TokenGenerator \TokenGeneratorInterface ;
21
22
use PHPUnit \Framework \TestCase ;
22
23
use Symfony \Component \Security \Core \User \UserInterface ;
23
24
@@ -35,6 +36,7 @@ final class PasswordTokenManagerTest extends TestCase
35
36
private $ tokenMock ;
36
37
private $ providerChainMock ;
37
38
private $ providerMock ;
39
+ private $ tokenGeneratorMock ;
38
40
39
41
protected function setUp (): void
40
42
{
@@ -43,33 +45,36 @@ protected function setUp(): void
43
45
$ this ->tokenMock = $ this ->createMock (AbstractPasswordToken::class);
44
46
$ this ->providerChainMock = $ this ->createMock (ProviderChainInterface::class);
45
47
$ this ->providerMock = $ this ->createMock (ProviderInterface::class);
48
+ $ this ->tokenGeneratorMock = $ this ->createMock (TokenGeneratorInterface::class);
46
49
47
- $ this ->manager = new PasswordTokenManager ($ this ->providerChainMock );
50
+ $ this ->manager = new PasswordTokenManager ($ this ->providerChainMock , $ this -> tokenGeneratorMock );
48
51
}
49
52
50
53
public function testCreatePasswordToken (): void
51
54
{
52
55
$ this ->managerMock ->expects ($ this ->once ())->method ('persist ' )->with ($ this ->callback (fn ($ object ) => $ object instanceof AbstractPasswordToken
53
56
&& '2016-10-11 10:00:00 ' === $ object ->getExpiresAt ()->format ('Y-m-d H:i:s ' )
54
- && preg_match ( ' /^[A-z\d]{50}$/ ' , $ object ->getToken () )
57
+ && ' 12345 ' === $ object ->getToken ()
55
58
&& $ this ->userMock === $ object ->getUser ()));
56
59
57
60
$ this ->providerChainMock ->expects ($ this ->once ())->method ('get ' )->willReturn ($ this ->providerMock );
58
61
$ this ->providerMock ->expects ($ this ->once ())->method ('getPasswordTokenClass ' )->willReturn (PasswordToken::class);
59
62
$ this ->providerMock ->expects ($ this ->once ())->method ('getManager ' )->willReturn ($ this ->managerMock );
63
+ $ this ->tokenGeneratorMock ->expects ($ this ->once ())->method ('generate ' )->willReturn ('12345 ' );
60
64
61
65
$ this ->manager ->createPasswordToken ($ this ->userMock , new \DateTime ('2016-10-11 10:00:00 ' ));
62
66
}
63
67
64
68
public function testCreatePasswordTokenWithoutExpirationDate (): void
65
69
{
66
70
$ this ->managerMock ->expects ($ this ->once ())->method ('persist ' )->with ($ this ->callback (fn ($ object ) => $ object instanceof AbstractPasswordToken
67
- && preg_match ( ' /^[A-z\d]{50}$/ ' , $ object ->getToken () )
71
+ && ' 12345 ' === $ object ->getToken ()
68
72
&& $ this ->userMock === $ object ->getUser ()));
69
73
70
74
$ this ->providerChainMock ->expects ($ this ->once ())->method ('get ' )->willReturn ($ this ->providerMock );
71
75
$ this ->providerMock ->expects ($ this ->once ())->method ('getPasswordTokenClass ' )->willReturn (PasswordToken::class);
72
76
$ this ->providerMock ->expects ($ this ->once ())->method ('getManager ' )->willReturn ($ this ->managerMock );
77
+ $ this ->tokenGeneratorMock ->expects ($ this ->once ())->method ('generate ' )->willReturn ('12345 ' );
73
78
74
79
$ this ->manager ->createPasswordToken ($ this ->userMock );
75
80
}
0 commit comments