mirror of
https://github.com/guzzle/guzzle.git
synced 2025-02-24 18:13:00 +01:00
Updating MockPlugin to throw an exception if queue is empty
This commit is contained in:
parent
8d39ffa70a
commit
64aee32bb5
@ -226,17 +226,20 @@ class MockPlugin extends AbstractHasDispatcher implements EventSubscriberInterfa
|
||||
* Called when a request is about to be sent
|
||||
*
|
||||
* @param Event $event
|
||||
* @throws \OutOfBoundsException When queue is empty
|
||||
*/
|
||||
public function onRequestBeforeSend(Event $event)
|
||||
{
|
||||
if ($this->queue) {
|
||||
$request = $event['request'];
|
||||
$this->received[] = $request;
|
||||
// Detach the filter from the client so it's a one-time use
|
||||
if ($this->temporary && count($this->queue) == 1 && $request->getClient()) {
|
||||
$request->getClient()->getEventDispatcher()->removeSubscriber($this);
|
||||
}
|
||||
$this->dequeue($request);
|
||||
if (!$this->queue) {
|
||||
throw new \OutOfBoundsException('Mock queue is empty');
|
||||
}
|
||||
|
||||
$request = $event['request'];
|
||||
$this->received[] = $request;
|
||||
// Detach the filter from the client so it's a one-time use
|
||||
if ($this->temporary && count($this->queue) == 1 && $request->getClient()) {
|
||||
$request->getClient()->getEventDispatcher()->removeSubscriber($this);
|
||||
}
|
||||
$this->dequeue($request);
|
||||
}
|
||||
}
|
||||
|
@ -421,7 +421,10 @@ class HttpRequestFactoryTest extends \Guzzle\Tests\GuzzleTestCase
|
||||
|
||||
public function testCanAddPlugins()
|
||||
{
|
||||
$mock = new MockPlugin(array(new Response(200)));
|
||||
$mock = new MockPlugin(array(
|
||||
new Response(200),
|
||||
new Response(200)
|
||||
));
|
||||
$client = new Client();
|
||||
$client->addSubscriber($mock);
|
||||
$request = $client->get('/', array(), array(
|
||||
|
@ -176,6 +176,7 @@ class DefaultRevalidationTest extends \Guzzle\Tests\GuzzleTestCase
|
||||
'Last-Modified' => $lm,
|
||||
'Content-Length' => 2
|
||||
), 'hi'),
|
||||
new CurlException('Bleh'),
|
||||
new CurlException('Bleh')
|
||||
));
|
||||
$client->addSubscriber(new CachePlugin());
|
||||
@ -184,7 +185,7 @@ class DefaultRevalidationTest extends \Guzzle\Tests\GuzzleTestCase
|
||||
$response = $client->get()->send();
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('hi', $response->getBody(true));
|
||||
$this->assertEquals(2, count($mock->getReceivedRequests()));
|
||||
$this->assertEquals(3, count($mock->getReceivedRequests()));
|
||||
$this->assertEquals(0, count($mock->getQueue()));
|
||||
}
|
||||
|
||||
@ -198,6 +199,7 @@ class DefaultRevalidationTest extends \Guzzle\Tests\GuzzleTestCase
|
||||
'Last-Modified' => $lm,
|
||||
'Content-Length' => 2
|
||||
), 'hi'),
|
||||
new CurlException('Oh no!'),
|
||||
new CurlException('Oh no!')
|
||||
));
|
||||
$cache = new CachePlugin();
|
||||
|
@ -119,8 +119,9 @@ class MockPluginTest extends \Guzzle\Tests\GuzzleTestCase
|
||||
|
||||
/**
|
||||
* @depends testAddsResponseFilesToQueue
|
||||
* @expectedException \OutOfBoundsException
|
||||
*/
|
||||
public function testUpdateIgnoresWhenEmpty()
|
||||
public function testUpdateThrowsExceptionWhenEmpty()
|
||||
{
|
||||
$p = new MockPlugin();
|
||||
$p->onRequestBeforeSend(new Event());
|
||||
|
Loading…
x
Reference in New Issue
Block a user