public function mustRetry(Handler $handler) { $mustRetry = false; $written = $handler->getLastResult(); list($fh, $text) = $handler->getArguments(); if ($written === false) { // we try 3 times before abandoning $mustRetry = ++$this->nbErrors <= 3; } else { $this->written += $written; if ($written !== strlen($text)) { $mustRetry = true; $handler->setArguments(array($fh, substr($text, $written))); } else { // we force the result with the total written length $handler->setResult($this->written); } } return $mustRetry; }
public function testArgumentsAreInArray() { $h = new Handler(); $this->assertEquals(array(), $h->getArguments()); $array = array('foo' => 'bar'); $this->assertEquals($h, $h->setArguments($array)); $this->assertEquals($array, $h->getArguments()); $string = 'not an array'; $this->assertEquals($h, $h->setArguments($string)); $this->assertEquals(array($string), $h->getArguments()); }