Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/tests/Unit/UserBundle/
Upload File :
Current File : /var/www/v3.cesa.co.za/tests/Unit/UserBundle/MemberPortalPasswordHasherTest.php

<?php

namespace App\Tests\Unit\UserBundle;

use App\UserBundle\Security\Hasher\MemberPortalPasswordHasher;
use PHPUnit\Framework\TestCase;

class MemberPortalPasswordHasherTest extends TestCase
{
    private MemberPortalPasswordHasher $hasher;

    protected function setUp(): void
    {
        $this->hasher = new MemberPortalPasswordHasher();
    }

    public function testVerifyPlainTextPassword(): void
    {
        $this->assertTrue($this->hasher->verify('secret123', 'secret123'));
        $this->assertFalse($this->hasher->verify('secret123', 'wrong'));
    }

    public function testVerifyWithSeparateSalt(): void
    {
        $salt = '$2y$10$' . substr(str_replace('+', '.', base64_encode(random_bytes(16))), 0, 22);
        $hash = crypt('mypass', $salt);

        $this->assertTrue($this->hasher->verifyWithSalt($salt, $hash, 'mypass'));
        $this->assertFalse($this->hasher->verifyWithSalt($salt, $hash, 'other'));
    }

    public function testVerifyCryptHashInPasswordColumn(): void
    {
        $hash = crypt('portalpass', '$2y$10$N9qo8uLOickgx2ZMRZoMye');

        $this->assertNotFalse($hash);
        $this->assertTrue($this->hasher->verify($hash, 'portalpass'));
        $this->assertFalse($this->hasher->verify($hash, 'wrong'));
    }
}