public function testSuccessfulAsyncRequestWithThen()
{
$responseBody = ['results' => 'yay'];
$responseMock = Mockery::mock('Psr\\Http\\Message\\ResponseInterface');
$responseBodyMock = Mockery::mock();
$responseMock->shouldReceive('getStatusCode')->andReturn(200);
$responseMock->shouldReceive('getBody')->andReturn($responseBodyMock);
$responseBodyMock->shouldReceive('__toString')->andReturn(json_encode($responseBody));
$guzzlePromise = new GuzzleFulfilledPromise($responseMock);
$promise = new SparkPostPromise(new GuzzleAdapterPromise($guzzlePromise, $this->resource->buildRequest('POST', 'transmissions', $this->postTransmissionPayload, [])));
$promise->then(function ($exception) use($responseBody) {
$this->assertEquals(200, $exception->getStatusCode());
$this->assertEquals($responseBody, $exception->getBody());
}, null)->wait();
}