public function testUnsuccessfulSyncRequest() { $exceptionMock = Mockery::mock('Http\\Client\\Exception\\HttpException'); $responseBody = ['results' => 'failed']; $this->clientMock->shouldReceive('sendRequest')->once()->with(Mockery::type('GuzzleHttp\\Psr7\\Request'))->andThrow($exceptionMock); $exceptionMock->shouldReceive('getResponse->getStatusCode')->andReturn(500); $exceptionMock->shouldReceive('getResponse->getBody->__toString')->andReturn(json_encode($responseBody)); try { $this->resource->syncRequest('POST', 'transmissions', $this->postTransmissionPayload); } catch (\Exception $e) { $this->assertEquals($responseBody, $e->getBody()); $this->assertEquals(500, $e->getCode()); } }