@@ -42,25 +42,17 @@ public static function setUpBeforeClass(): void
42
42
*/
43
43
public function testAuthenticate (bool |string $ expectedResult , array $ methods ): void
44
44
{
45
+ $ defaultMethods = ['loadByUsername ' => null ];
46
+ $ methods = array_merge ($ defaultMethods , $ methods );
47
+
45
48
$ mock = $ this ->getMockBuilder (Subject::class)
46
- ->setMethods ([
47
- 'loadByUsername ' ,
48
- 'getId ' ,
49
- 'getUsername ' ,
50
- 'getPassword ' ,
51
- 'getIsActive ' ,
52
- 'validatePasswordHash ' ,
53
- 'hasAssigned2Role ' ,
54
- ])
49
+ ->setMethods (array_keys ($ methods ))
55
50
->getMock ();
56
51
57
52
$ mock ->method ('loadByUsername ' )->willReturnSelf ();
58
- $ mock ->method ('getId ' )->willReturn ($ methods ['getId ' ]);
59
- // $mock->expects($this->any())->method('getUsername')->willReturn($methods['getUsername']);
60
- $ mock ->method ('getPassword ' )->willReturn ($ methods ['getPassword ' ]);
61
- $ mock ->method ('validatePasswordHash ' )->willReturn ($ methods ['validatePasswordHash ' ]);
62
- $ mock ->method ('getIsActive ' )->willReturn ($ methods ['getIsActive ' ]);
63
- $ mock ->method ('hasAssigned2Role ' )->willReturn ($ methods ['hasAssigned2Role ' ]);
53
+ foreach ($ methods as $ key => $ value ) {
54
+ $ mock ->method ($ key )->willReturn ($ value );
55
+ }
64
56
65
57
try {
66
58
static ::assertSame ($ expectedResult , $ mock ->authenticate ($ methods ['getUsername ' ], $ methods ['getPassword ' ]));
@@ -71,49 +63,46 @@ public function testAuthenticate(bool|string $expectedResult, array $methods): v
71
63
72
64
public function provideAuthenticateData (): Generator
73
65
{
66
+ $ validData = [
67
+ 'getId ' => '999 ' ,
68
+ 'getUsername ' => 'new ' ,
69
+ 'getPassword ' => 'veryl0ngpassw0rd ' ,
70
+ 'getIsActive ' => '1 ' ,
71
+ 'validatePasswordHash ' => true ,
72
+ 'hasAssigned2Role ' => true ,
73
+ ];
74
+
74
75
yield 'pass ' => [
75
76
true ,
76
- [
77
- 'getId ' => '1 ' ,
78
- 'getUsername ' => 'admin ' ,
79
- 'getPassword ' => 'veryl0ngpassw0rd ' ,
80
- 'getIsActive ' => '1 ' ,
81
- 'validatePasswordHash ' => true ,
82
- 'hasAssigned2Role ' => true ,
83
- ],
77
+ $ validData ,
84
78
];
79
+
80
+ $ data = $ validData ;
81
+ $ data ['getUsername ' ] = 'admin ' ;
82
+ yield 'fail #0 account exists ' => [
83
+ 'User Name already exists. ' ,
84
+ $ data ,
85
+ ];
86
+
87
+ $ data = $ validData ;
88
+ $ data ['getIsActive ' ] = '0 ' ;
85
89
yield 'fail #1 inactive ' => [
86
90
'This account is inactive. ' ,
87
- [
88
- 'getId ' => '1 ' ,
89
- 'getUsername ' => 'admin ' ,
90
- 'getPassword ' => 'veryl0ngpassw0rd ' ,
91
- 'getIsActive ' => '0 ' ,
92
- 'validatePasswordHash ' => true ,
93
- 'hasAssigned2Role ' => true ,
94
- ],
91
+ $ data ,
95
92
];
93
+
94
+ $ data = $ validData ;
95
+ $ data ['validatePasswordHash ' ] = false ;
96
96
yield 'fail #2 invalid hash ' => [
97
97
false ,
98
- [
99
- 'getId ' => '1 ' ,
100
- 'getUsername ' => 'admin ' ,
101
- 'getPassword ' => 'veryl0ngpassw0rd ' ,
102
- 'getIsActive ' => '1 ' ,
103
- 'validatePasswordHash ' => false ,
104
- 'hasAssigned2Role ' => true ,
105
- ],
98
+ $ data ,
106
99
];
100
+
101
+ $ data = $ validData ;
102
+ $ data ['hasAssigned2Role ' ] = false ;
107
103
yield 'fail #3 no role assigned ' => [
108
104
'Access denied. ' ,
109
- [
110
- 'getId ' => '1 ' ,
111
- 'getUsername ' => 'admin ' ,
112
- 'getPassword ' => 'veryl0ngpassw0rd ' ,
113
- 'getIsActive ' => '1 ' ,
114
- 'validatePasswordHash ' => true ,
115
- 'hasAssigned2Role ' => false ,
116
- ],
105
+ $ data ,
117
106
];
118
107
}
119
108
@@ -126,18 +115,13 @@ public function provideAuthenticateData(): Generator
126
115
public function testValidate ($ expectedResult , array $ methods ): void
127
116
{
128
117
$ mock = $ this ->getMockBuilder (Subject::class)
129
- ->setMethods ([
130
- 'hasNewPassword ' ,
131
- 'getNewPassword ' ,
132
- 'hasPassword ' ,
133
- 'getPassword ' ,
134
- ])
118
+ ->setMethods (array_keys ($ methods ))
135
119
->getMock ();
136
120
137
- $ mock -> method ( ' hasNewPassword ' )-> willReturn ( $ methods[ ' hasNewPassword ' ]);
138
- $ mock ->method (' getNewPassword ' )->willReturn ($ methods [ ' getNewPassword ' ] );
139
- $ mock -> method ( ' hasPassword ' )-> willReturn ( $ methods [ ' hasPassword ' ]);
140
- $ mock -> method ( ' getPassword ' )-> willReturn ( $ methods [ ' getPassword ' ]);
121
+ foreach ( $ methods as $ key => $ value ) {
122
+ $ mock ->method ($ key )->willReturn ($ value );
123
+ }
124
+
141
125
static ::assertSame ($ expectedResult , $ mock ->validate ());
142
126
}
143
127
@@ -222,14 +206,13 @@ public function testChangeResetPasswordLinkToken(): void
222
206
public function testIsResetPasswordLinkTokenExpired (bool $ expectedResult , array $ methods ): void
223
207
{
224
208
$ mock = $ this ->getMockBuilder (Subject::class)
225
- ->setMethods ([
226
- 'getRpToken ' ,
227
- 'getRpTokenCreatedAt ' ,
228
- ])
209
+ ->setMethods (array_keys ($ methods ))
229
210
->getMock ();
230
211
231
- $ mock ->method ('getRpToken ' )->willReturn ($ methods ['getRpToken ' ]);
232
- $ mock ->method ('getRpTokenCreatedAt ' )->willReturn ($ methods ['getRpTokenCreatedAt ' ]);
212
+ foreach ($ methods as $ key => $ value ) {
213
+ $ mock ->method ($ key )->willReturn ($ value );
214
+ }
215
+
233
216
static ::assertSame ($ expectedResult , $ mock ->isResetPasswordLinkTokenExpired ());
234
217
}
235
218
0 commit comments