/** * @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); }