/**
  * @expectedException \Facebook\Exceptions\FacebookSDKException
  */
 public function testThrowsExceptionOnClientError()
 {
     $requestMock = m::mock('GuzzleHttp\\Message\\RequestInterface');
     $exceptionMock = m::mock('GuzzleHttp\\Exception\\RequestException', ['Foo Error', $requestMock, null, m::mock('GuzzleHttp\\Exception\\AdapterException')]);
     $this->guzzleMock->shouldReceive('createRequest')->once()->with('GET', 'http://foo.com/', [])->andReturn($requestMock);
     $this->guzzleMock->shouldReceive('send')->once()->with($requestMock)->andThrow($exceptionMock);
     $this->guzzleClient->send('http://foo.com/');
 }
 /**
  * @expectedException \Facebook\Exceptions\FacebookSDKException
  */
 public function testThrowsExceptionOnClientError()
 {
     $request = new Request('GET', 'http://foo.com');
     $this->guzzleMock->shouldReceive('createRequest')->once()->with('GET', 'http://foo.com/', m::on(function ($arg) {
         // array_diff_assoc() will sometimes trigger error on child-arrays
         if ([] !== $arg['headers']) {
             return false;
         }
         unset($arg['headers']);
         $caInfo = array_diff_assoc($arg, ['body' => 'foo_body', 'timeout' => 60, 'connect_timeout' => 10]);
         if (count($caInfo) !== 1) {
             return false;
         }
         if (1 !== preg_match('/.+\\/certs\\/DigiCertHighAssuranceEVRootCA\\.pem$/', $caInfo['verify'])) {
             return false;
         }
         return true;
     }))->andReturn($request);
     $this->guzzleMock->shouldReceive('send')->once()->with($request)->andThrow(new RequestException('Foo', $request));
     $this->guzzleClient->send('http://foo.com/', 'GET', 'foo_body', [], 60);
 }