2
namespace GuzzleHttp\Tests\Adapter;
4
use GuzzleHttp\Adapter\FakeParallelAdapter;
5
use GuzzleHttp\Adapter\MockAdapter;
6
use GuzzleHttp\Adapter\TransactionIterator;
8
use GuzzleHttp\Event\ErrorEvent;
9
use GuzzleHttp\Exception\RequestException;
10
use GuzzleHttp\Message\Response;
13
* @covers GuzzleHttp\Adapter\FakeParallelAdapter
15
class FakeParallelAdapterTest extends \PHPUnit_Framework_TestCase
17
public function testSendsAllTransactions()
19
$client = new Client();
21
$client->createRequest('GET', 'http://httbin.org'),
22
$client->createRequest('HEAD', 'http://httbin.org'),
26
$f = new FakeParallelAdapter(new MockAdapter(function ($trans) use (&$sent) {
27
$sent[] = $trans->getRequest()->getMethod();
28
return new Response(200);
31
$tIter = new TransactionIterator($requests, $client, []);
32
$f->sendAll($tIter, 2);
33
$this->assertContains('GET', $sent);
34
$this->assertContains('HEAD', $sent);
37
public function testThrowsImmediatelyIfInstructed()
39
$client = new Client();
40
$request = $client->createRequest('GET', 'http://httbin.org');
41
$request->getEmitter()->on('error', function (ErrorEvent $e) {
42
$e->throwImmediately(true);
45
$f = new FakeParallelAdapter(
46
new MockAdapter(function ($trans) use (&$sent) {
47
$sent[] = $trans->getRequest()->getMethod();
48
return new Response(404);
51
$tIter = new TransactionIterator([$request], $client, []);
53
$f->sendAll($tIter, 1);
54
$this->fail('Did not throw');
55
} catch (RequestException $e) {
56
$this->assertSame($request, $e->getRequest());