/** * @covers Guzzle\Service\Builder\ServiceBuilder::getAllEvents * @covers Guzzle\Service\Builder\ServiceBuilder::get */ public function testEmitsEventsWhenClientsAreCreated() { // Ensure that the client signals that it emits an event $this->assertEquals(array('service_builder.create_client'), ServiceBuilder::getAllEvents()); // Create a test service builder $builder = ServiceBuilder::factory(array('a' => array('class' => 'Guzzle\\Tests\\Service\\Mock\\MockClient', 'params' => array('username' => 'test', 'password' => '123', 'subdomain' => 'z')))); // Add an event listener to pick up client creation events $emits = 0; $builder->getEventDispatcher()->addListener('service_builder.create_client', function ($event) use(&$emits) { $emits++; }); // Get the 'a' client by name $client = $builder->get('a'); // Ensure that the event was emitted once, and that the client was present $this->assertEquals(1, $emits); $this->assertInstanceOf('Guzzle\\Tests\\Service\\Mock\\MockClient', $client); }