Skip to content

Commit 1c50b33

Browse files
authored
Merge pull request #73 from jrushlow/refactor/helper-tests
Refactor/helper tests
2 parents f78abd3 + 7b64959 commit 1c50b33

File tree

1 file changed

+31
-34
lines changed

1 file changed

+31
-34
lines changed

tests/UnitTests/ResetPasswordHelperTest.php

Lines changed: 31 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace SymfonyCasts\Bundle\ResetPassword\Tests\UnitTests;
1111

12+
use PHPUnit\Framework\MockObject\MockObject;
1213
use PHPUnit\Framework\TestCase;
1314
use SymfonyCasts\Bundle\ResetPassword\Exception\ExpiredResetPasswordTokenException;
1415
use SymfonyCasts\Bundle\ResetPassword\Exception\InvalidResetPasswordTokenException;
@@ -27,22 +28,22 @@
2728
class ResetPasswordHelperTest extends TestCase
2829
{
2930
/**
30-
* @var \PHPUnit\Framework\MockObject\MockObject|ResetPasswordRequestRepositoryInterface
31+
* @var MockObject|ResetPasswordRequestRepositoryInterface
3132
*/
3233
private $mockRepo;
3334

3435
/**
35-
* @var \PHPUnit\Framework\MockObject\MockObject|ResetPasswordTokenGenerator
36+
* @var MockObject|ResetPasswordTokenGenerator
3637
*/
3738
private $mockTokenGenerator;
3839

3940
/**
40-
* @var \PHPUnit\Framework\MockObject\MockObject|ResetPasswordRequestInterface
41+
* @var MockObject|ResetPasswordRequestInterface
4142
*/
4243
private $mockResetRequest;
4344

4445
/**
45-
* @var \PHPUnit\Framework\MockObject\MockObject|ResetPasswordCleaner
46+
* @var MockObject|ResetPasswordCleaner
4647
*/
4748
private $mockCleaner;
4849

@@ -51,11 +52,6 @@ class ResetPasswordHelperTest extends TestCase
5152
*/
5253
private $randomToken;
5354

54-
/**
55-
* @var object
56-
*/
57-
private $mockUser;
58-
5955
/**
6056
* {@inheritdoc}
6157
*/
@@ -66,18 +62,6 @@ protected function setUp(): void
6662
$this->mockCleaner = $this->createMock(ResetPasswordCleaner::class);
6763
$this->mockResetRequest = $this->createMock(ResetPasswordRequestInterface::class);
6864
$this->randomToken = \bin2hex(\random_bytes(20));
69-
$this->mockUser = new class() {};
70-
}
71-
72-
private function getPasswordResetHelper(): ResetPasswordHelper
73-
{
74-
return new ResetPasswordHelper(
75-
$this->mockTokenGenerator,
76-
$this->mockCleaner,
77-
$this->mockRepo,
78-
99999999,
79-
99999999
80-
);
8165
}
8266

8367
/**
@@ -98,12 +82,13 @@ public function testHasUserThrottlingReturnsFalseWithNoLastRequestDate(): void
9882
;
9983

10084
$this->mockRepo
85+
->expects($this->once())
10186
->method('createResetPasswordRequest')
10287
->willReturn(new ResetPasswordTestFixtureRequest())
10388
;
10489

10590
$helper = $this->getPasswordResetHelper();
106-
$helper->generateResetToken($this->mockUser);
91+
$helper->generateResetToken(new \stdClass());
10792
}
10893

10994
/**
@@ -131,12 +116,13 @@ public function testHasUserThrottlingReturnsFalseIfNotBeforeThrottleTime(): void
131116
;
132117

133118
$this->mockRepo
119+
->expects($this->once())
134120
->method('createResetPasswordRequest')
135121
->willReturn(new ResetPasswordTestFixtureRequest())
136122
;
137123

138124
$helper = $this->getPasswordResetHelper();
139-
$helper->generateResetToken($this->mockUser);
125+
$helper->generateResetToken(new \stdClass());
140126
}
141127

142128
public function testExceptionThrownIfRequestBeforeThrottleLimit(): void
@@ -157,7 +143,7 @@ public function testExceptionThrownIfRequestBeforeThrottleLimit(): void
157143
$this->expectException(TooManyPasswordRequestsException::class);
158144

159145
$helper = $this->getPasswordResetHelper();
160-
$helper->generateResetToken($this->mockUser);
146+
$helper->generateResetToken(new \stdClass());
161147
}
162148

163149
public function testRemoveResetRequestThrowsExceptionWithEmptyToken(): void
@@ -184,6 +170,7 @@ public function testRemoveResetRequestRetrievesTokenFromRepository(): void
184170
public function testRemoveResetRequestCallsRepositoryToRemoveResetRequestObject(): void
185171
{
186172
$this->mockRepo
173+
->expects($this->once())
187174
->method('findResetPasswordRequest')
188175
->willReturn($this->mockResetRequest)
189176
;
@@ -252,7 +239,7 @@ public function testValidateTokenFetchesUserIfTokenNotExpired(): void
252239
$this->mockResetRequest
253240
->expects($this->once())
254241
->method('getUser')
255-
->willReturn($this->mockUser)
242+
->willReturn(new \stdClass())
256243
;
257244

258245
$this->mockResetRequest
@@ -283,7 +270,7 @@ public function testValidateTokenThrowsExceptionIfTokenAndVerifierDoNotMatch():
283270
$this->mockResetRequest
284271
->expects($this->once())
285272
->method('getUser')
286-
->willReturn($this->mockUser)
273+
->willReturn(new \stdClass())
287274
;
288275

289276
$this->mockResetRequest
@@ -306,26 +293,36 @@ public function testValidateTokenThrowsExceptionIfTokenAndVerifierDoNotMatch():
306293

307294
public function testGenerateResetTokenCallsGarbageCollector(): void
308295
{
309-
$this->setMockCleanerExpectations();
296+
$this->mockCleaner
297+
->expects($this->once())
298+
->method('handleGarbageCollection')
299+
;
310300

311301
$helper = $this->getPasswordResetHelper();
312-
$helper->generateResetToken($this->mockUser);
302+
$helper->generateResetToken(new \stdClass());
313303
}
314304

315305
public function testGarbageCollectorCalledDuringValidation(): void
316306
{
317-
$this->setMockCleanerExpectations();
307+
$this->mockCleaner
308+
->expects($this->once())
309+
->method('handleGarbageCollection')
310+
;
311+
318312
$this->expectException(InvalidResetPasswordTokenException::class);
319313

320314
$helper = $this->getPasswordResetHelper();
321315
$helper->validateTokenAndFetchUser($this->randomToken);
322316
}
323317

324-
private function setMockCleanerExpectations(): void
318+
private function getPasswordResetHelper(): ResetPasswordHelper
325319
{
326-
$this->mockCleaner
327-
->expects($this->once())
328-
->method('handleGarbageCollection')
329-
;
320+
return new ResetPasswordHelper(
321+
$this->mockTokenGenerator,
322+
$this->mockCleaner,
323+
$this->mockRepo,
324+
99999999,
325+
99999999
326+
);
330327
}
331328
}

0 commit comments

Comments
 (0)