userChecker = new UserChecker(); } public function testDeletedUserIsRefused(): void { $user = (new User())->setRoles(['ROLE_TEAMER']); $user->setDeleted(); $this->expectException(CustomUserMessageAccountStatusException::class); $this->expectExceptionMessageMatches('/gelöscht/'); $this->userChecker->checkPreAuth($user); } /** * A deletion is the stronger statement, so its message has to win over the block * message when an account carries both. */ public function testDeletedAndDisabledUserIsRefusedWithTheDeletionMessage(): void { $user = (new User())->setRoles(['ROLE_TEAMER']); $user->setDisabled(true); $user->setDisabledReason('Disziplinarisch gesperrt'); $user->setDeleted(); $this->expectException(CustomUserMessageAccountStatusException::class); $this->expectExceptionMessageMatches('/gelöscht/'); $this->userChecker->checkPreAuth($user); } public function testDisabledUserStillGetsTheBlockMessage(): void { $user = (new User())->setRoles(['ROLE_TEAMER']); $user->setDisabled(true); $user->setDisabledReason('Disziplinarisch gesperrt'); $this->expectException(CustomUserMessageAccountStatusException::class); $this->expectExceptionMessage('Dein Account wurde gesperrt: Disziplinarisch gesperrt'); $this->userChecker->checkPreAuth($user); } public function testActiveUserWithValidRolePasses(): void { $user = (new User())->setRoles(['ROLE_TEAMER']); $this->userChecker->checkPreAuth($user); $this->assertFalse($user->isBlocked()); } }