malkusch\lock\mutex\RedisMutexTest::testFaultTolerance PHP Метод

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

Tests synchronized() does work if the majority of servers is up.
public testFaultTolerance ( integer $count, integer $available )
$count integer The total count of servers
$available integer The count of available servers.
    public function testFaultTolerance($count, $available)
    {
        $mutex = $this->buildRedisMutex($count);
        $mutex->expects($this->any())->method("evalScript")->willReturn(true);
        $i = 0;
        $mutex->expects($this->any())->method("add")->willReturnCallback(function () use(&$i, $available) {
            if ($i < $available) {
                $i++;
                return true;
            } else {
                throw new LockAcquireException();
            }
        });
        $mutex->synchronized(function () {
        });
    }