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')));
 }
예제 #3
0
 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;
 }