Beispiel #1
0
 /**
  * Call the bindings on the listener for a given event.
  *
  * @param  \JasonLewis\ResourceWatcher\Listener  $listener
  * @param  \JasonLewis\ResourceWatcher\Event  $event
  * @return void
  */
 protected function callListenerBindings(Listener $listener, Event $event)
 {
     $binding = $listener->determineEventBinding($event);
     if ($listener->hasBinding($binding)) {
         foreach ($listener->getBindings($binding) as $callback) {
             $resource = $event->getResource();
             call_user_func($callback, $resource, $resource->getPath());
         }
     }
     // If a listener has a binding for anything we'll also spin through
     // them and call each of them.
     if ($listener->hasBinding('*')) {
         foreach ($listener->getBindings('*') as $callback) {
             $resource = $event->getResource();
             call_user_func($callback, $event, $resource, $resource->getPath());
         }
     }
 }
 public function testCanRegisterBindings()
 {
     $listener = new Listener();
     $listener->onCreate(function () {
     });
     $listener->onModify(function () {
     });
     $listener->onDelete(function () {
     });
     $listener->onAnything(function () {
     });
     $this->assertArrayHasKey('modify', $listener->getBindings());
     $this->assertArrayHasKey('create', $listener->getBindings());
     $this->assertArrayHasKey('delete', $listener->getBindings());
     $this->assertArrayHasKey('*', $listener->getBindings());
     $this->assertTrue($listener->hasBinding('modify'));
     $this->assertTrue($listener->hasBinding('create'));
     $this->assertTrue($listener->hasBinding('delete'));
     $this->assertTrue($listener->hasBinding('*'));
     $listener = new Listener();
     $listener->create(function () {
     });
     $listener->modify(function () {
     });
     $listener->delete(function () {
     });
     $listener->anything(function () {
     });
     $this->assertArrayHasKey('modify', $listener->getBindings());
     $this->assertArrayHasKey('create', $listener->getBindings());
     $this->assertArrayHasKey('delete', $listener->getBindings());
     $this->assertArrayHasKey('*', $listener->getBindings());
     $this->assertTrue($listener->hasBinding('modify'));
     $this->assertTrue($listener->hasBinding('create'));
     $this->assertTrue($listener->hasBinding('delete'));
     $this->assertTrue($listener->hasBinding('*'));
 }