예제 #1
0
 /**
  * @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);
 }