1
0
mirror of https://github.com/guzzle/guzzle.git synced 2025-02-24 18:13:00 +01:00
guzzle/tests/Guzzle/Tests/Mock/MockObserver.php
Michael Dowling c0dc85de35 Breaking / Potentially breaking changes:
1. Adopting a marker interface for Guzzle exceptions.
        A. All exceptions emitted from Guzzle are now wrapped with a Guzzle namespaced exception.
        B. Guzzle\Common\GuzzleExceptionInterface was renamed to Guzzle\Common\GuzzleException
        C. Guzzle\Common\ExceptionCollection was renamed to Guzzle\Common\Exception\ExceptionCollection
    2. Using Header objects for Request and Response objects
        A. When you call $request->getHeader('X'), you will get back a Guzzle\Http\Message\Header object that contains all of the headers that case insensitively match.  This object can be cast to a string or iterated like an array.  You can pass true in the second argument to retrieve the header as a string.
        B. Removing the old Guzzle\Common\Collection based searching arguments from most of the request and response header methods.  All retrievals are case-insensitive and return Header objects.
    3. Changing the two headers added by the cache plugin to just one header with key and ttl.
    4. Changing Guzzle\Http\Message\Response::factory() to fromMessage().
    5. Removing the NullObject return value from ServiceDescriptions and instead simply returning null

New Features / enhancements:

    1. Adding Guzzle\Http\Message\AbstractMessage::addHeaders()
    2. Making it simpler to create service descriptions using a unified factory method that delegates to other factories.
    3. Better handling of ports and hosts in Guzzle\Http\Url

Note: This is a noisy diff because I'm removing trailing whitespace and adding a new line at the end of each source file.
2012-04-22 00:17:49 -07:00

71 lines
1.4 KiB
PHP

<?php
namespace Guzzle\Tests\Mock;
use Guzzle\Common\Event;
use Guzzle\Common\Event\EventManager;
use Guzzle\Common\Event\ObserverInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class MockObserver implements \Countable, EventSubscriberInterface
{
public $events = array();
public static function getSubscribedEvents()
{
return array();
}
public function has($eventName)
{
foreach ($this->events as $event) {
if ($event->getName() == $eventName) {
return true;
}
}
return false;
}
public function getLastEvent()
{
return end($this->events);
}
public function count()
{
return count($this->events);
}
public function getGrouped()
{
$events = array();
foreach ($this->events as $event) {
if (!isset($events[$event->getName()])) {
$events[$event->getName()] = array();
}
$events[$event->getName()][] = $event;
}
return $events;
}
public function getData($event, $key, $occurence = 0)
{
$grouped = $this->getGrouped();
if (isset($grouped[$event])) {
return $grouped[$event][$occurence][$key];
}
return null;
}
/**
* {@inheritdoc}
*/
public function update(Event $event)
{
$this->events[] = $event;
}
}