public function testVerifyPassword() { $user = new User(); $user->setPassword('qwerty1234'); $this->assertTrue($user->verifyPassword('qwerty1234')); $this->assertFalse($user->verifyPassword('wrong1234')); }
/** * @param User $user * @param string $password * @throws UserPasswordValidationException */ public function assertPasswordValid(User $user, $password) { if (strlen($password) < 8) { throw new UserPasswordValidationException('Password must be at least 8 characters'); } if ($user->verifyPassword($password)) { throw new UserPasswordValidationException('Invalid password'); } $tooSimilarValues = [$user->getFirstName(), $user->getLastName(), $user->getFullName(), $user->getEmail()]; foreach ($tooSimilarValues as $text) { if ($this->isTooSimilar($password, $text)) { throw new UserPasswordValidationException('Password is too similar to your name or email'); } } }