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 () {
});
}