public function testAddsNonRequestExceptions() { $e = new MultiTransferException(); $e->add(new \Exception('bar')); $e->addFailedRequestWithException(new Request('GET', 'http://www.foo.com'), new \Exception('foo')); $ce = CommandTransferException::fromMultiTransferException($e); $this->assertEquals(2, count($ce)); }
public function testAssociatesExceptionsWithRequests() { $r1 = new Request('GET', 'http://www.foo.com'); $re1 = new \Exception('foo'); $re2 = new \Exception('bar'); $e = new MultiTransferException(); $e->add($re2); $e->addFailedRequestWithException($r1, $re1); $this->assertSame($re1, $e->getExceptionForFailedRequest($r1)); $this->assertNull($e->getExceptionForFailedRequest(new Request('POST', '/foo'))); }
protected function throwMultiException(array $exceptions, array $successful) { $multiException = new MultiTransferException('Errors during multi transfer'); while ($e = array_shift($exceptions)) { $multiException->addFailedRequestWithException($e['request'], $e['exception']); } foreach ($successful as $request) { if (!$multiException->containsRequest($request)) { $multiException->addSuccessfulRequest($request); } } throw $multiException; }