public function testInvokesOnStatsOnSuccess()
{
Server::flush();
Server::enqueue([new Psr7\Response(200)]);
$req = new Psr7\Request('GET', Server::$url);
$gotStats = null;
$handler = new Handler\CurlHandler();
$promise = $handler($req, ['on_stats' => function (TransferStats $stats) use(&$gotStats) {
$gotStats = $stats;
}]);
$response = $promise->wait();
$this->assertEquals(200, $response->getStatusCode());
$this->assertEquals(200, $gotStats->getResponse()->getStatusCode());
$this->assertEquals(Server::$url, (string) $gotStats->getEffectiveUri());
$this->assertEquals(Server::$url, (string) $gotStats->getRequest()->getUri());
$this->assertGreaterThan(0, $gotStats->getTransferTime());
}