public function testExecutesCommandsInParallel() { $client = $this->getMockBuilder('GuzzleHttp\\Client')->setMethods(['sendAll'])->getMock(); $description = new Description(['operations' => ['Foo' => []]]); $guzzle = new GuzzleClient($client, $description); $command = $guzzle->getCommand('foo'); $request = $client->createRequest('GET', 'http://httbin.org'); $command->getEmitter()->on('prepare', function (PrepareEvent $e) use($request) { $e->setRequest($request); }, 1); $client->expects($this->once())->method('sendAll')->will($this->returnCallback(function ($requests, $options) use($request) { $this->assertEquals(10, $options['parallel']); $this->assertTrue($requests->valid()); $this->assertSame($request, $requests->current()); })); $guzzle->executeAll([$command], ['parallel' => 10]); }