NinjaMutex\Tests\MutexLocksTest::testMultipleSelfAcquiredLocksRequiresMultipleReleasesToCompletelyReleaseMutex PHP Метод

testMultipleSelfAcquiredLocksRequiresMultipleReleasesToCompletelyReleaseMutex() публичный Метод

public testMultipleSelfAcquiredLocksRequiresMultipleReleasesToCompletelyReleaseMutex ( NinjaMutex\Lock\LockInterface $lockImplementor )
$lockImplementor NinjaMutex\Lock\LockInterface
    public function testMultipleSelfAcquiredLocksRequiresMultipleReleasesToCompletelyReleaseMutex(LockInterface $lockImplementor)
    {
        $mutex = new Mutex('forfiter', $lockImplementor);
        $mutex->acquireLock(0);
        // #1
        $mutex->acquireLock(0);
        // #2
        $mutex->acquireLock(0);
        // #3
        $this->assertTrue($mutex->releaseLock());
        // #2
        $this->assertTrue($mutex->isAcquired());
        $this->assertTrue($mutex->isLocked());
        $this->assertTrue($mutex->releaseLock());
        // #1
        $this->assertTrue($mutex->isAcquired());
        $this->assertTrue($mutex->isLocked());
        $this->assertTrue($mutex->releaseLock());
        // #0
        $this->assertFalse($mutex->isAcquired());
        $this->assertFalse($mutex->isLocked());
    }