public function testSuccessfulAsyncRequestWithWait()
{
$promiseMock = Mockery::mock('Http\\Promise\\Promise');
$responseMock = Mockery::mock('Psr\\Http\\Message\\ResponseInterface');
$responseBodyMock = Mockery::mock();
$responseBody = ['results' => 'yay'];
$this->clientMock->shouldReceive('sendAsyncRequest')->once()->with(Mockery::type('GuzzleHttp\\Psr7\\Request'))->andReturn($promiseMock);
$promiseMock->shouldReceive('wait')->andReturn($responseMock);
$responseMock->shouldReceive('getStatusCode')->andReturn(200);
$responseMock->shouldReceive('getBody')->andReturn($responseBodyMock);
$responseBodyMock->shouldReceive('__toString')->andReturn(json_encode($responseBody));
$promise = $this->resource->asyncRequest('POST', 'transmissions', $this->postTransmissionPayload);
$response = $promise->wait();
$this->assertEquals($responseBody, $response->getBody());
$this->assertEquals(200, $response->getStatusCode());
}