public function testUnsuccessfulAsyncRequestWithThen()
{
$responseBody = ['results' => 'failed'];
$exceptionMock = Mockery::mock('Http\\Client\\Exception\\HttpException');
$exceptionMock->shouldReceive('getResponse->getStatusCode')->andReturn(500);
$exceptionMock->shouldReceive('getResponse->getBody->__toString')->andReturn(json_encode($responseBody));
$guzzlePromise = new GuzzleRejectedPromise($exceptionMock);
$promise = new SparkPostPromise(new GuzzleAdapterPromise($guzzlePromise, $this->resource->buildRequest('POST', 'transmissions', $this->postTransmissionPayload, [])));
$promise->then(null, function ($exception) use($responseBody) {
$this->assertEquals(500, $exception->getCode());
$this->assertEquals($responseBody, $exception->getBody());
})->wait();
}